背景
DHCP從大學上網絡課時就開始知道了,當時只知道,能讓計算機上網,要不就靜態配IP,要不就DHCP獲取,就能上網。
2021年時,畢業好幾年了,想學習下網絡知識,就準備考一個軟考網工。按要求了解了DHCP的4個交互過程。
今天(2025年),準備把這4個交互過程使用Wirshark抓取出來,分析下。
知識點
DHCP 全稱動態主機配置協議(Dynamic Host Configuration Protocol),是一種網絡管理協議。它能自動為接入網絡的設備(如手機、電腦)分配 IP 地址、子網掩碼、網關、DNS 服務器等關鍵網絡參數,無需手動配置。
設備接入時會向 DHCP 服務器發送請求,服務器根據規則分配地址并設定租期,租期到后可續租或重新分配,有效避免 IP 沖突,簡化網絡運維,是局域網和廣域網中保障設備聯網的核心協議。
下面再給出2021年4月11號,做的筆記
這個比較重要,看看Wireshark是不是按照這個邏輯走的。
DHCP客戶端與DHCP服務端交互過程
① DHCP客戶端會發起DHCPDiscover廣播消息,向所有DHCP服務器請求IP地址租約,此時源IP地址為0.0.0.0,廣播地址為255.255.255.255,請求數據包會客戶端的MAC和計算機名。
② 所有接收到DHCPDiscover廣播包的服務器,會檢測自己的配置,如果富余的IP地址,則DHCP服務器發起DHCPOffer廣播消息來應答DHCP客戶端,如果有多個DHCP服務器給予此DHCP客戶端DHCPOffer消息,則DHCP客戶端接收第一個DHCPOffer消息中的IP地址。
③ 當DHCP客戶端收到DHCP服務器的租約時,它將發起DHCPRequest廣播消息,告訴所有DHCP服務器自己已經做出選擇,接受了某個DHCP服務器的租約。在此DHCPRequest廣播消息中包含了DHCP服務端的MAC地址、接受的租約中的IP地址、提供此租約的DHCP服務器地址等,所有其他的DHCP服務器收到其廣播包后,收回它們以此DHCP客戶端所保留的IP地址租約。此時由于沒有得到DHCP服務器確認,DHCP客戶端仍然不能使用租約中提供的IP地址,所以在此數據包中仍然使用0.0.0.0作為源IP地址,廣播地址255.255.255.255作為目的地址。
④? 提供的租約被接受的DHCP服務器在接收到DHCP客戶端發起的DHCPRequest廣播消息后,會發送DHCPAck廣播消息進行最后的確認,在這個消息中同樣包含了租約期限及其他TCP/IP選項信息。
過程
Wireshark抓包如下:
在Wireshark的Info中可以看到邏輯上與知識點保持一致。
Discover -> Offer -> Request -> Ack
現在來看下Discover
從中可知,發送了廣播包(這里很好理解,因為沒有ip地址,他想與其他計算機通信,只能發廣播包)
其中包含了MAC地址和主機名。其他比較有意思點:
Option 61(Client Identifier):唯一標識客戶端(避免多網卡 / 虛擬環境的 IP 沖突)。
Option 60(Vendor class identifier):MSFT 5.0 → 客戶端廠商標識(此處為Windows 系統,服務器可據此下發專屬配置)。
Transaction ID:0x95903b9c,會話標識(與客戶端 Discover 報文中的 ID 一致,確保請求 - 響應配對)。
接下來看Offer?
可知關鍵的信息:
Your (client) IP:192.168.23.101,服務器分配給客戶端的 IP 地址(核心內容)。
Next server IP:192.168.23.138,DHCP 服務器自身 IP(告訴客戶端:后續交互找我)。
Client MAC:74:d8:3e:ed:8d:61 客戶端網卡 MAC(精準定位請求者,避免沖突)。
Transaction ID:0x95903b9c,會話標識(與客戶端 Discover 報文中的 ID 一致,確保請求 - 響應配對)。
接下來看Request?
Option 50(請求 IP):192.168.23.101,客戶端明確請求 Offer 中分配的 IP(告訴服務器:“我就要這個 IP”)。
Option 54(服務器 ID):192.168.23.138,客戶端指定 響應的服務器(排除其他 Offer 的服務器,避免干擾)。
Option 61(客戶端 ID):客戶端 MAC(唯一標識,防止冒充)。
Transaction ID:0x95903b9c,會話標識(與客戶端 Discover 報文中的 ID 一致,確保請求 - 響應配對)。
最后看下ACK
當DHCP服務端回ACK后,說明是正式授權。重要的字段和上面3個包都一樣。說下最后那兩個:
Option 1(子網掩碼):255.255.255.0,客戶端的子網掩碼(劃分網絡范圍,如 192.168.23.xxx 屬同一子網)。
Option 28(廣播地址):192.168.23.255,本網段的廣播地址(客戶端發廣播包時使用,如 DHCP 續租)。