DCHP協議的工作流程簡述

DHCP:全稱是 Dynamic Host Configuration Protocol﹐中文名爲動態主機配置協議,它的前身是 BOOTP,它工作在OSI的應用層,是一種幫助計算機從指定的DHCP服務器獲取它們的配置信息的自舉協議。   DHCP使用客戶端/服務器模式,請求配置信息的計算機叫做DHCP客戶端,而提供信息的叫做DHCP的服務器。

DHCP爲客戶端分配地址的方法有三種:手工配置、自動配置、動態配置。

DHCP最重要的功能就是動態分配。除了IP地址,DHCP分組還爲客戶端提供其他的配置信息,比如子網掩碼。這使得客戶端無需用戶動手就能自動配置連接網絡。

 

二、工作流程細分理解

1. 發現階段,即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因爲DHCP服務器的IP地址對於客戶機來說是未知的)發送DHCP discover發現信息來尋找DHCP服務器,即向地址255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器纔會做出響應。


2. 提供階段,即DHCP服務器提供IP地址的階段。在網絡中接收到DHCP discover發現信息的DHCP服務器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置的DHCP offer提供信息。  

         

3. 選擇階段,即DHCP客戶機選擇某臺DHCP服務器提供的IP地址的階段。如果有多臺DHCP服務器向DHCP客戶機發來的DHCP offer提供信息,則DHCP客戶機只接受第一個收到的DHCP offer提供信息,然後它就以廣播方式回答一個DHCP request請求信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是爲了通知所有的DHCP服務器,他將選擇某臺DHCP服務器所提供的IP地址。    

       

4. 確認階段,即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP request請求信息之後,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設置的DHCP ACK確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除DHCP客戶機選中的服務器外,其他的DHCP服務器都將收回曾提供的IP地址。        

   

5. 重新登錄,以後DHCP客戶機每次重新登錄網絡時,就不需要再發送DHCP discover發現信息了,而是直接發送包含前一次所分配的IP地址的

DHCP request請求信息。當DHCP服務器收到這一信息後,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,並回答一個DHCP ACK確認信息。如果此IP地址已無法再分配給原來的DHCP客戶機使用時(比如此IP地址已分配給其它DHCP客戶機使用),則DHCP服務器給DHCP客戶機回答一個DHCP NACK否認信息。當原來的DHCP客戶機收到此DHCP NACK否認信息後,它就必須重新發送DHCP discover發現信息來請求新的IP地址。         

  更新租約,DHCP服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿後DHCP服務器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啓動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息。

 

粘貼百度釋義:

DHCP協議採用UDP作爲傳輸協議,主機發送請求消息到DHCP服務器的67號端口,DHCP服務器迴應應答消息給主機的68號端口。詳細的交互過程如下圖。 [4] 

1、DHCP Client以廣播的方式發出DHCP Discover報文。 

2、所有的DHCP Server都能夠接收到DHCP Client發送的DHCP Discover報文,所有的DHCP Server都會給出響應,向DHCP Client發送一個DHCP Offer報文。 

DHCP Offer報文中“Your(Client) IP Address”字段就是DHCP Server能夠提供給DHCP Client使用的IP地址,且DHCP Server會將自己的IP地址放在“option”字段中以便DHCP Client區分不同的DHCP Server。DHCP Server在發出此報文後會存在一個已分配IP地址的紀錄。 

3、DHCP Client只能處理其中的一個DHCP Offer報文,一般的原則是DHCP Client處理最先收到的DHCP Offer報文。 

DHCP Client會發出一個廣播的DHCP Request報文,在選項字段中會加入選中的DHCP Server的IP地址和需要的IP地址。

4、DHCP Server收到DHCP Request報文後,判斷選項字段中的IP地址是否與自己的地址相同。如果不相同,DHCP Server不做任何處理只清除相應IP地址分配記錄;如果相同,DHCP Server就會向DHCP Client響應一個DHCP ACK報文,並在選項字段中增加IP地址的使用租期信息。 

5、DHCP Client接收到DHCP ACK報文後,檢查DHCP Server分配的IP地址是否能夠使用。如果可以使用,則DHCP Client成功獲得IP地址並根據IP地址使用租期自動啓動續延過程;如果DHCP Client發現分配的IP地址已經被使用,則DHCP Client向DHCPServer發出DHCP Decline報文,通知DHCP Server禁用這個IP地址,然後DHCP Client開始新的地址申請過程。 

6、DHCP Client在成功獲取IP地址後,隨時可以通過發送DHCP Release報文釋放自己的IP地址,DHCP Server收到DHCP Release報文後,會回收相應的IP地址並重新分配。 

在使用租期超過50%時刻處,DHCP Client會以單播形式向DHCP Server發送DHCPRequest報文來續租IP地址。如果DHCP Client成功收到DHCP Server發送的DHCP ACK報文,則按相應時間延長IP地址租期;如果沒有收到DHCP Server發送的DHCP ACK報文,則DHCP Client繼續使用這個IP地址。 

在使用租期超過87.5%時刻處,DHCP Client會以廣播形式向DHCP Server發送DHCPRequest報文來續租IP地址。如果DHCP Client成功收到DHCP Server發送的DHCP ACK報文,則按相應時間延長IP地址租期;如果沒有收到DHCP Server發送的DHCP ACK報文,則DHCP Client繼續使用這個IP地址,直到IP地址使用租期到期時,DHCP Client纔會向DHCP Server發送DHCP Release報文來釋放這個IP地址,並開始新的IP地址申請過程。 

需要說明的是:DHCP客戶端可以接收到多個DHCP服務器的DHCPOFFER數據包,然後可能接受任何一個DHCPOFFER數據包,但客戶端通常只接受收到的第一個DHCPOFFER數據包。另外,DHCP服務器DHCPOFFER中指定的地址不一定爲最終分配的地址,通常情況下,DHCP服務器會保留該地址直到客戶端發出正式請求。 

正式請求DHCP服務器分配地址DHCPREQUEST採用廣播包,是爲了讓其它所有發送DHCPOFFER數據包的DHCP服務器也能夠接收到該數據包,然後釋放已經OFFER(預分配)給客戶端的IP地址。 

如果發送給DHCP客戶端的地址已經被其他DHCP客戶端使用,客戶端會向服務器發送DHCPDECLINE信息包拒絕接受已經分配的地址信息。 

在協商過程中,如果DHCP客戶端發送的REQUEST消息中的地址信息不正確,如客戶端已經遷移到新的子網或者租約已經過期,DHCP服務器會發送DHCPNAK消息給DHCP客戶 端,讓客戶端重新發起地址請求過程。 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章