DHCP相關知識以及報文具體封裝分析

2021-10-11 19:08:13 字數 1409 閱讀 9851

乙個pc機器連線乙個交換機 後面有兩個dhcp伺服器。其中dhcp1給這個pc分配的位址是10.1.1.1 dhcp2給這個主機分配的位址是10.1.1.2

1)主機a-------傳送dhcp discover 報文(廣播)----------dhcp伺服器

2) dhcp伺服器--------傳送dhcp offer報文(單播)---------主機a

3)主機a--------傳送dhcp request報文(廣播)---------dhcp伺服器

4) dhcp伺服器------傳送dhcp ack報文(單播)---------主機a

主機a傳送discover報文,向dhcp伺服器請求乙個ip位址。

dhcp伺服器收到請求後,會給主機a回乙個offer報文。offer報文可能很多,主機a只會要第乙個。

主機a收到offer報文之後,會傳送乙個dhcp request報文 請求這個位址的使用。

dhcp伺服器給回乙個ack報文,確定主機a可以使用這個位址。

原ip為0.0.0.0(剛開始沒有ip) 目的ip:255.255.255.255(原因是: 在不知道dhcp伺服器位址的前提下 只能選擇0.0.0.0和255.255.255.255。 但是如果封0.0.0.0的話發出去之後dhcp伺服器不會看 因為交換機和路由器都是**裝置 不是自己的不會看)發255.255.255.255廣播位址的話,所有人都要看。 (三層的協議欄位是17 因為是udp)

交換機在收到之後百分百** 兩個伺服器都收到之後。 乙個給分10.1.1.1 乙個給分10.1.1.2 。這個時候他們都會給ip主機回offer報文

要封乙個offer報文(單播發的) 從應用層開始發: 原ip:(伺服器1就是1的ip 伺服器2就是2的ip) 目的ip是0.0.0.0 目的mac是pc1 (0.0.0.0 不是必須所有人都要拆開 只有廣播是必須拆開的 因為這個時候pc機還沒有位址 作為終端裝置 想得到乙個位址 這個時候即使不是給自己的 看見是0.0.0.0 也會拆開看看有沒有udp的資訊 有的話就會留下 沒有就丟棄)

offer報文是兩份 offer報文是單播的 pc機是會要第乙個offer 其餘的都會丟棄

客戶端收到offer報文之後,會發乙個廣播的請求報文(因為收到offer的時候,這個ip還不能用 所以還是要發廣播) 那廣播發出去之後 這兩個伺服器怎麼知道是自己的? 因為每個伺服器都有乙個身份id 是自動生成的 這個會在傳送offer的時候就放在裡面 兩個伺服器都收到拆開之後 等拆到udp之上的時候看是不是自己的id 是就會收下並且給回乙個單播 不是就丟棄

服務端傳送乙個單播的ack確定報文 主機只有收到ack之後才有權使用這個位址

pc機還會傳送乙個免費arp 檢測這個位址是否有衝突

十 DHCP與DHCP中繼相關知識

dhcp dynamic host configuration protocol,動態主機配置協議 是乙個區域網的網路協議,使用udp協議工作,dhcp監聽67埠,客戶端監聽68埠 主要2個用途 1.給內部網路或網路服務 商自動分配ip位址 2.給使用者或者內部網路管理員作為對所有計算機作 管理的手...

8583報文相關(知識小結)

1 開頭第乙個位元組為開始標識,後面兩個位元組為再後面的資料長度 符號為位元組,可能要從16位折算為10位,也可能為直接顯示,目前來看公司是直接顯示 和結尾2個位元組用於校驗 2 在tpdu 5位元組 和報文頭 6位元組 之後的是訊息型別 2位元組 訊息型別可在報文格式的 請求一欄 看到對應的 3 ...

單鏈表相關知識以及指標引用相關知識

include include typedef char elemtype typedef struct lnode linknode 宣告單鏈表節點型別 頭插法相對簡便,但插入的資料與插入的順序相反 尾插法操作相對複雜,但插入的資料與插入順序相同。頭插法建立鍊錶時候,就相當於後來居上。後面的結點不...