dhcp流程涉及到8個(gè)報(bào)文,分別是 discovery, offer, request, ack, release, decline, nak,inform 8種。
1)discovery:第一個(gè)報(bào)文,client 廣播發(fā)送discovery報(bào)文請(qǐng)求server端獲取地址,此時(shí)client ip:0.0.0.0 (可能存在多個(gè)DHCP Server)
2)offer : 對(duì)dhcpdiscovery的響應(yīng),當(dāng)server收到client的discovery報(bào)文后,會(huì)單播發(fā)送一個(gè)offer報(bào)文響應(yīng)。告訴client ,server給提供的ip地址和其他設(shè)置信息。(可能有多個(gè)dhcpserver 發(fā)送offer)
3)request:對(duì) offer的響應(yīng) 或者是延續(xù)ip地址租期時(shí)發(fā)出的報(bào)文。對(duì)server提供的信息發(fā)送request請(qǐng)求獲取提供的信息(client 接收第一個(gè)到達(dá)的offer并廣播request 告訴其他server 已經(jīng)選擇好了dhcp server),其他人不需要再提供dhcp服務(wù)了。
4)ack : server對(duì)client的 request報(bào)文的確認(rèn)響應(yīng)報(bào)文,只要收到此報(bào)文才算是真正的獲取了ip地址和相關(guān)配置信息。(ACK中有個(gè)option43字段,用于填充ACIP)
5)decline:當(dāng)客戶端發(fā)現(xiàn)服務(wù)器端分配的ip地址無(wú)法使用,如ip地址沖突,將發(fā)出此報(bào)文,通知server禁止使用此ip地址。
6)release :client主動(dòng)釋放server分配給它的ip地址的報(bào)文,server收到此報(bào)文后,可以回收這個(gè)ip地址,使其分配給其他client使用。(可手動(dòng) ipconfig /release 釋放,wireshark抓包可以看到此報(bào)文,ipconfig /renew 重新獲取,輸入后,會(huì)重新走dhcp獲取地址的流程)
7 ) nak : server對(duì)client的 request 報(bào)文的拒絕響應(yīng)報(bào)文,client收到此報(bào)文后,一般會(huì)重新開始新的dhcp過(guò)程。
8 ) inform : client已經(jīng)獲取了ip地址,發(fā)送此報(bào)文,只是為了從server處獲取其他的一些網(wǎng)絡(luò)配置信息,如 route ip, dns ip等。

client 端口號(hào) 68 server 端口號(hào) 69
注意: 當(dāng)用wireshark抓包軟件進(jìn)行捕獲dhcp報(bào)文的時(shí)候,過(guò)濾條件是:過(guò)濾bootp報(bào)文,bootp 是dhcp的前身。