DHCP協(xié)議的工作原理你了解了嗎?
DHCP協(xié)議是一個(gè)非常重要的協(xié)議在很多網(wǎng)絡(luò)中都有所應(yīng)用。如果大家想要對(duì)這方面了解,對(duì)于它的基本工作原理就要有所掌握。那么這里我們就來(lái)對(duì)這部分內(nèi)容進(jìn)行一下介紹吧。
DHCP協(xié)議的工作原理
根據(jù)客戶端是否第一次登錄網(wǎng)絡(luò),DHCP的工作形式會(huì)有所不同。 第一次登錄的時(shí)候:
尋找 Server
當(dāng) DHCP客戶端第一次登錄網(wǎng)絡(luò)的時(shí)候,也就是客戶發(fā)現(xiàn)本機(jī)上沒有任何IP數(shù)據(jù)設(shè)定,它會(huì)向網(wǎng)絡(luò)發(fā)出一個(gè) DHCPDISCOVER 封包。因?yàn)榭蛻舳诉€不知道自己屬于哪一個(gè)網(wǎng)絡(luò),所以封包的來(lái)源地址會(huì)為 0.0.0.0 ,而目的地址則為 255.255.255.255 ,然后再附上 DHCPdiscover 的信息,向網(wǎng)絡(luò)進(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服務(wù)器的響應(yīng),客戶端則會(huì)顯示錯(cuò)誤信息,宣告 DHCPdiscover 的失敗。之后,基于使用者的選擇,系統(tǒng)會(huì)繼續(xù)在 5 分鐘之后再重復(fù)一次 DHCPdiscover 的過程。
提供IP租用地址
當(dāng)DHCP協(xié)議服務(wù)器監(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)來(lái)辨別該封包,DHCP服務(wù)器響應(yīng)的 DHCPoffer 封包則會(huì)根據(jù)這些資料傳遞給要求租約的客戶。根據(jù)服務(wù)器端的設(shè)定,DHCPoffer 封包會(huì)包含一個(gè)租約期限的信息。
接受IP租約
如果客戶端收到網(wǎng)絡(luò)上多臺(tái)DHCP協(xié)議服務(wù)器的響應(yīng),只會(huì)挑選其中一個(gè) DHCPoffer 而已(通常是最先抵達(dá)的那個(gè)),并且會(huì)向網(wǎng)絡(luò)發(fā)送一個(gè)DHCPrequest廣播封包,告訴所有 DHCP服務(wù)器它將指定接受哪一臺(tái)服務(wù)器提供的IP地址。
同時(shí),客戶端還會(huì)向網(wǎng)絡(luò)發(fā)送一個(gè) ARP 封包,查詢網(wǎng)絡(luò)上面有沒有其它機(jī)器使用該IP地址;如果發(fā)現(xiàn)該IP已經(jīng)被占用,客戶端則會(huì)送出一個(gè) DHCPDECLIENT 封包給 DHCP服務(wù)器,拒絕接受其 DHCPoffer ,并重新發(fā)送 DHCPdiscover 信息。
事實(shí)上,并不是所有 DHCP客戶端都會(huì)無(wú)條件接受 DHCP服務(wù)器的 offer ,尤其這些主機(jī)安裝有其它TCP/IP相關(guān)的客戶軟件??蛻舳艘部梢杂?DHCPrequest 向服務(wù)器提出 DHCP選擇,而這些選擇會(huì)以不同的號(hào)碼填寫在 DHCPOption Field 里面: 換一句話說(shuō),在 DHCP服務(wù)器上面的設(shè)定,未必是客戶端全都接受,客戶端可以保留自己的一些TCP/IP設(shè)定。而主動(dòng)權(quán)永遠(yuǎn)在客戶端這邊。