我目前正在开发一个嵌入式设备,它使用TCP- IP,并使用DHCP获取它的IP地址。我在示例中看到,我需要时不时地检查租约是否已经结束,但我没有找到任何关于多久检查一次的参考,因为有8天检查一次的实现和每24小时检查一次的实现。因此,基本上,在您的实现中,您多久检查一次DHCP租约?这个问题的标准是什么?
发布于 2012-03-30 09:13:37
实际上,您必须检查DHCPREQUEST的ACK中的"IP Lease time“字段。RFC规定该确认消息必须包含租用时间。某些客户端还可能选择在DHCPDISCOVER或DHCPREQUEST消息中建议租用时间(取决于实施)。
从客户端的角度来看,在租用持续时间(T1)的50%时,客户端必须向服务器发送DHCP请求,以请求续订其租用时间。当客户端从服务器收到DHCP ACK时,客户端将租用到期时间计算为客户端发送DHCPREQUEST消息的时间与DHCPACK消息中的租用持续时间之和。
如果在租用时间(T2)的87.5%之前没有DHCPACK到达,则客户端发送(通过广播) DHCPREQUEST消息以延长其租用。
如果租约在客户端收到DHCPACK (T3)之前到期,则客户端必须立即停止任何其他网络处理,并请求网络初始化参数,就像客户端未初始化一样。
因此,您必须牢记T1、T2和T3。
https://stackoverflow.com/questions/8474376
复制相似问题