不知道看官大人是否有過這樣的疑惑?一臺計算機,插上網線是不是就可以直接上網了呢?其實沒有這么簡單,需要配置本機IP地址、子網IP地址、網關IP地址和DNS地址等。配置有兩種方式,一種是手動配置,采用靜態IP上網方式,可是這種方式怎么能讓致力于世界更美好的工程師大大心滿意足呢?
于是,就有了今天的主角,基于UDP的DHCP(Dynamic Host Configuration Protcol),動態主機配置協議,其有簡單的六個階段,Discover(發現)、Offer(提供)、Request(請求)、Ack(確認)和Relogin(重新登錄)以及Update(更新租約)。看官們,跟著小采風的腳步,一起來學習一下吧!
一、發現階段:客戶機尋找DHCP服務器
截圖分析:
1)客戶端不知道自己的IP,以0.0.0.0標識,DHCP服務器IP地址不清楚,以255.255.255.255廣播地址標識;客戶機以00:0b:72:01:fc:42來標識MAC地址,以FF:FF:FF:FF:FF:FF廣播地址來尋找DHCP;
2)其他主機接收到此包,直接丟棄;DHCP服務器明確自己需要接受此包,(注可以被多臺DHCP服務器接收);
3)客戶機端口為68,DHCP端口為67,為默認端口號;
二、提供階段:DHCP服務器提供IP地址
截圖分析:
1)此包仍在發送中,客戶機并不具備192.168.0.10的IP地址;
2)DHCP服務器優先基于ARP協議與之通信,如果失敗,直接提供廣播方式發送;
三、請求階段:客戶機確認DHCP提供的IP地址
若多臺DHCP服務器為其提供Offer信息,則客戶機只接收第一臺DHCP服務器的IP地址,那么第一臺DHCP服務器如何知道自己提供的IP地址被接收?其他DHCP服務器如何知道自己提供的IP地址沒有被接收呢?
截圖分析:
1)客戶機雖然接收到分配的IP地址,但是沒有與DHCP服務端進行確認,并不能開始使用;
2)這是一個與圖1相同的廣播形式的數據包,目的在于與第一個DHCP服務器進行確認,與其他DHCP服務器進行通信,告知其分配的IP地址并未采用,這是如何實現的呢?截圖分析:
3)圖3的數據包,相應網絡范圍內的DHCP服務器均會收到,每臺DHCP服務器檢查DHCP Sever Identifier字段,如果是本機IP,則確認其分配的即Requested IP Address有效;如果不是本機IP,則其分配的IP地址則無效;
四、確認階段:DHCP服務器確認IP字段有效
截圖分析:
1)僅圖4中確認IP地址有效的DHCP服務器,返回Ack數據包;
2)此數據包包含在本文開頭時強調的上網的基本信息,實現動態上網;
故事到這里是否就可以圓滿結束了呢?那動態主機配置如何體現其動態過程呢?看官切勿著急,工程師們熱愛的是全面的系統,怎么會置之不理呢?
五、重新登錄與更新租約
1)客戶機重新啟動后,不再直接發送Discover信息,而是發送Request信息;DHCP服務器會優先嘗試,允許其繼續使用IP地址,發送Ack數據包;如果該IP不能再使用,返回Nack數據包,客戶機重新開始Discover階段;
2)DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息,與1)中過程相同;
DHCP協議簡析就到這里啦,本次的內容簡單實用,重點在于Request階段的那個具備廣播屬性的數據包,作用有二,其一是與第一個DHCP服務器確認其IP地址的有效性,其二是與其他DHCP服務器說明其IP地址并未被采用。
?最美人間四月天。不經意間,已是四月的尾巴了。小采風不由得感嘆,時光之短暫。四月,對于小采風來說,意味深長。不過,收獲一個相約一起跑步的隊友,讓原本柳絮蕩漾的校園里,更平添了許多歡笑。五一小長假,節后見。