0

我目前正在开发一个嵌入式设备,它使用 TCP-IP,并通过 DHCP 获取它的 IP 地址。我在示例中看到,时不时地,我需要检查租约是否已经结束,但我没有找到任何关于多久检查一次的参考,因为有实施者每 8 天检查一次,并且实施每24小时检查一次。所以基本上,在您的实现中,您多久检查一次 DHCP 租约?关于这个问题的标准是什么?

4

1 回答 1

1

您实际上必须检查 DHCPREQUEST 的 ACK 中的“IP 租用时间”字段。RFC 规定该 ACK 消息必须包含租用时间。一些客户端也可能选择在 DHCPDISCOVER 或 DHCPREQUEST 消息中建议租用时间(取决于实现)。

从客户端的角度来看,在租用期限 (T1) 的 50% 时,客户端必须向服务器发送 DHCP 请求以请求更新其租用时间。当客户端从服务器接收到 DHCP ACK 时,客户端将租用到期时间计算为客户端发送 DHCPREQUEST 消息的时间与 DHCPACK 消息中的租用持续时间之和。

如果在租用时间 (T2) 的 87.5% 之前没有 DHCPACK 到达,则客户端(通过广播)发送 DHCPREQUEST 消息以延长其租用时间。

如果在客户端收到 DHCPACK (T3) 之前租约到期,客户端必须立即停止任何其他网络处理并请求网络初始化参数,就像客户端未初始化一样。

因此,您必须牢记 T1、T2 和 T3。

于 2012-03-30T01:13:37.067 回答