DHCP协议原理及其实现流程
DHCP(Dynamic?Host?Configuration?Protocol):動態(tài)主機配置協(xié)議
在常見的小型網(wǎng)絡(luò)中(例如家庭網(wǎng)絡(luò)和學(xué)生宿舍網(wǎng)),網(wǎng)絡(luò)管理員都是采用手工分配IP地址的方法,而到了中、大型網(wǎng)絡(luò),這種方法就不太適用了。在中、大型網(wǎng)絡(luò),特別是大型網(wǎng)絡(luò)中,往往有超過100臺的客戶機,手動分配IP地址的方法就不太合適了。因此,我們必須引入一種高效的IP地址分配方法,幸好,DHCP(Dynamic?Host?Configuration?Protocol)為我們解決了這一難題。
DHCP的優(yōu)缺點
DHCP服務(wù)優(yōu)點不少:網(wǎng)絡(luò)管理員可以驗證IP地址和其它配置參數(shù),而不用去檢查每個主機;DHCP不會同時租借相同的IP地址給兩臺主機;DHCP管理員可以約束特定的計算機使用特定的IP地址;可以為每個DHCP作用域設(shè)置很多選項;客戶機在不同子網(wǎng)間移動時不需要重新設(shè)置IP地址。
但同時也存在不少缺點:DHCP不能發(fā)現(xiàn)網(wǎng)絡(luò)上非DHCP客戶機已經(jīng)在使用的IP地址;當網(wǎng)絡(luò)上存在多個DHCP服務(wù)器時,一個DHCP服務(wù)器不能查出已被其它服務(wù)器租出去的IP地址;DHCP服務(wù)器不能跨路由器與客戶機通信,除非路由器允許BOOTP轉(zhuǎn)發(fā)。
工作流程
DHCP服務(wù)的工作過程是這樣的:
1.?發(fā)現(xiàn)階段,即DHCP客戶機尋找DHCP服務(wù)器的階段。DHCP客戶機以廣播方式(因為DHCP服務(wù)器的IP地址對于客戶機來說是未知的)發(fā)送DHCP?discover發(fā)現(xiàn)信息來尋找DHCP服務(wù)器,即向地址255.255.255.255發(fā)送特定的廣播信息。網(wǎng)絡(luò)上每一臺安裝了TCP/IP協(xié)議的主機都會接收到這種廣播信息,但只有DHCP服務(wù)器才會做出響應(yīng)。
????
2.?提供階段,即DHCP服務(wù)器提供IP地址的階段。在網(wǎng)絡(luò)中接收到DHCP?discover發(fā)現(xiàn)信息的DHCP服務(wù)器都會做出響應(yīng),它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發(fā)送一個包含出租的IP地址和其他設(shè)置的DHCP?offer提供信息。
???
3.?選擇階段,即DHCP客戶機選擇某臺DHCP服務(wù)器提供的IP地址的階段。如果有多臺DHCP服務(wù)器向DHCP客戶機發(fā)來的DHCP?offer提供信息,則DHCP客戶機只接受第一個收到的DHCP?offer提供信息,然后它就以廣播方式回答一個DHCP?request請求信息,該信息中包含向它所選定的DHCP服務(wù)器請求IP地址的內(nèi)容。之所以要以廣播方式回答,是為了通知所有的DHCP服務(wù)器,他將選擇某臺DHCP服務(wù)器所提供的IP地址。
???
4.?確認階段,即DHCP服務(wù)器確認所提供的IP地址的階段。當DHCP服務(wù)器收到DHCP客戶機回答的DHCP?request請求信息之后,它便向DHCP客戶機發(fā)送一個包含它所提供的IP地址和其他設(shè)置的DHCP?ack確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然后DHCP客戶機便將其TCP/IP協(xié)議與網(wǎng)卡綁定,另外,除DHCP客戶機選中的服務(wù)器外,其他的DHCP服務(wù)器都將收回曾提供的IP地址。
???
5.?重新登錄。以后DHCP客戶機每次重新登錄網(wǎng)絡(luò)時,就不需要再發(fā)送DHCP?discover發(fā)現(xiàn)信息了,而是直接發(fā)送包含前一次所分配的IP地址的DHCP?request請求信息。當DHCP服務(wù)器收到這一信息后,它會嘗試讓DHCP客戶機繼續(xù)使用原來的IP地址,并回答一個DHCP?ack確認信息。如果此IP地址已無法再分配給原來的DHCP客戶機使用時(比如此IP地址已分配給其它DHCP客戶機使用),則DHCP服務(wù)器給DHCP客戶機回答一個DHCP?nack否認信息。當原來的DHCP客戶機收到此DHCP?nack否認信息后,它就必須重新發(fā)送DHCP?discover發(fā)現(xiàn)信息來請求新的IP地址。
6.?更新租約。DHCP服務(wù)器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿后DHCP服務(wù)器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務(wù)器發(fā)送更新其IP租約的信息。
為了便于理解,我們把DHCP客戶機比做餐館里的客人,DHCP服務(wù)器比做服務(wù)員(一個餐館里也可以有多個服務(wù)員),IP地址比做客戶需要的食物。那么可以這樣描述整個過程:客人走進餐館,問:“有沒有服務(wù)員啊?”(DHCP?discover),多個服務(wù)員同時回答:“有,我這有雞翅”“有,我這有漢堡”(DHCP?offer)。客人說:“好吧,我要一份漢堡”(DHCP?request,這個客人比較死板,總是選擇第一次聽到的食物),端著漢堡的服務(wù)員回應(yīng)了一聲:“來啦”(DHCP?ack),并把食物端到客人面前,供其享用(將網(wǎng)卡和IP地址綁定)。客人下次來的時候,就直接找上次那個服務(wù)員點自己喜歡的漢堡了(DHCP?request),如果還有漢堡,服務(wù)員會再次確認并上菜(DHCP?ack),而如果已經(jīng)賣完了,服務(wù)員則會告訴客人:“不好意思,已經(jīng)賣完了”(DHCP?nack)。當然,服務(wù)員隔一段時間會來收拾一次桌子,除非客人特別說明這菜還要繼續(xù)吃的,服務(wù)員會將剩菜端走。
DHCP?CLIENT的行為
所有支持DHCP?協(xié)議并能夠發(fā)起DHCP過程的終端都稱之為DHCP?CLIENT,包括普通PC機,各種特殊設(shè)備,如CABLE?MODEM,IDT等。DHCP?CLIENT自己必須能夠發(fā)出DHCPDISCOVER,DHCPREQUEST,DHCPDECLINE等報文(DHCPINFORM報文也是DHCP?CLIENT發(fā)出但實際中很少見),并且必須能夠處理從服務(wù)器收到的以下幾種報文:DHCPOFFER,DHCPACK和DHCPNAK。
??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖?DHCP?CLIENT?行為圖
DHCP交互過程
?????標準的DHCP?server?和client的交互過程如下圖所示,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖?DHCP交互過程時序圖
如果客戶通過別的手段獲得了網(wǎng)絡(luò)地址,它可以使用DHCPINFORM請求獲得其它配置參數(shù),服務(wù)器接收到DHCPINFORM包,并建立一個DHCPACK消息,在其中包括一些合適客戶的配置參數(shù),只是不包括分配網(wǎng)絡(luò)地址,檢查現(xiàn)有的綁定,在信息中不填充'yiaddr'字段或租用時間參數(shù)。服務(wù)器取得DHCPINFORM包內(nèi)的'ciaddr'地址,而返回DHCPACK包。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的DHCP协议原理及其实现流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多个局域网共享DHCP服务器
- 下一篇: chrome友好显示json字符串