2011-12-12 126 views
0

我目前正在開發一個嵌入式設備,它使用TCP-IP,並通過DHCP獲取它的IP地址。 我在例子中看到,我需要檢查租約是否已經結束,但我沒有找到任何關於檢查頻率的參考信息,因爲有實施人員在8天內檢查一次,並且每24小時檢查一次。 所以基本上,在你的實現中,你多久檢查DHCP租約?關於這個問題的標準是什麼?DHCP租約檢查

+0

DHCP服務器通常會發出他租約有效的時間 - 您不應該使用這個時間嗎? – codeling

+0

據我瞭解,這是可選的,所以可以有實現DHCP協議的路由器不發送選項51:IP租約時間 – stdcall

回答

1

實際上您必須在DHCPREQUEST的ACK中檢查「IP Lease time」字段。 RFC規定這個ACK消息包含租約時間。某些客戶端也可能選擇在DHCPDISCOVER或DHCPREQUEST消息中提出租用時間(取決於實施情況)。

從客戶端的角度來看,在租期(T1)的50%時,客戶端必須向服務器發送DHCP請求以請求續租其租約時間。當客戶端從服務器接收到DHCP ACK時,客戶端計算租約到期時間爲客戶端發送DHCPREQUEST消息的時間與DHCPACK消息中租期的總和。

如果沒有通過DHCPACK的租用時間(T2),客戶端發送(經由廣播)87.5%DHCPREQUEST消息來擴展它的租用時間之前到達。

如果客戶端接收DHCPACK(T3)之前租約到期,客戶端必須立即停止任何其他網絡處理和網絡請求初始化參數如,如果客戶端爲未初始化。

因此,你必須記住T1,T2和T3。