掃盲:DHCP的工作原理
視乎客戶端是否***次登錄網(wǎng)路,DHCP 的工作形式會(huì)有所不同。
***次登錄的時(shí)候:
1. 尋找 Server。當(dāng) DHCP 客戶端***次登錄網(wǎng)路的時(shí)候,也就是客戶發(fā)現(xiàn)本機(jī)上沒有任何 IP 資料設(shè)定,它會(huì)向網(wǎng)路發(fā)出一個(gè) DHCPDISCOVER 封包。因?yàn)榭蛻舳诉€不知道自己屬于哪一個(gè)網(wǎng)路,所以封包的來源位址會(huì)為 0.0.0.0 ,而目的位址則為 255.255.255.255 ,然后再附上 Dhcpdiscover 的信息,向網(wǎng)路進(jìn)行廣播。
在 Windows 的預(yù)設(shè)情形下,Dhcpdiscover 的等待時(shí)間預(yù)設(shè)為 1 秒,也就是當(dāng)客戶端將***個(gè) Dhcpdiscover 封包送出去之后,在 1 秒之內(nèi)沒有得到回應(yīng)的話,就會(huì)進(jìn)行第二次 Dhcpdiscover 廣播。若一直得不到回應(yīng)的情況下,客戶端一共會(huì)有四次 Dhcpdiscover 廣播(包括***次在內(nèi)),除了***次會(huì)等待 1 秒之外,其余三次的等待時(shí)間分別是 9、13、16 秒。如果都沒有得到 DHCP 伺服器的回應(yīng),客戶端則會(huì)顯示錯(cuò)誤信息,宣告 Dhcpdiscover 的失敗。之后,基于使用者的選擇,系統(tǒng)會(huì)繼續(xù)在 5 分鐘之后再重復(fù)一次 Dhcpdiscover 的過程。
2. 提供 IP 租用位址。當(dāng) DHCP 伺服器監(jiān)聽到客戶端發(fā)出的 Dhcpdiscover 廣播后,它會(huì)從那些還沒有租出的位址范圍內(nèi),選擇最前面的的空置 IP ,連同其它 TCP/IP 設(shè)定,回應(yīng)給客戶端一個(gè) DHCPOFFER 封包。
由于客戶端在開始的時(shí)候還沒有 IP 位址,所以在其 Dhcpdiscover 封包內(nèi)會(huì)帶有其 MAC 位址信息,并且有一個(gè) XID 編號(hào)來辨別該封包,DHCP 伺服器回應(yīng)的 Dhcpoffer 封包則會(huì)根據(jù)這些資料傳遞給要求租約的客戶。根據(jù)伺服器端的設(shè)定,Dhcpoffer 封包會(huì)包含一個(gè)租約期限的信息。
3. 接受 IP 租約。如果客戶端收到網(wǎng)路上多臺(tái) DHCP 伺服器的回應(yīng),只會(huì)挑選其中一個(gè) Dhcpoffer 而已(通常是***抵達(dá)的那個(gè)),并且會(huì)向網(wǎng)路發(fā)送一個(gè)Dhcprequest廣播封包,告訴所有 DHCP 伺服器它將指定接受哪一臺(tái)伺服器提供的 IP 位址。
同時(shí),客戶端還會(huì)向網(wǎng)路發(fā)送一個(gè) ARP 封包,查詢網(wǎng)路上面有沒有其它機(jī)器使用該 IP 位址;如果發(fā)現(xiàn)該 IP 已經(jīng)被占用,客戶端則會(huì)送出一個(gè) DHCPDECLINE 封包給 DHCP 伺服器,拒絕接受其 Dhcpoffer ,并重新發(fā)送 Dhcpdiscover 信息。
【編輯推薦】



















