DHCP報文是封裝在UDP報文中的。
UDP報文封裝在IP報文裡,IP報文封裝在乙太網報文裡。
典型的DHCP過程是這樣的:
1:客戶機向伺服器傳送DHCP_DISCOVER報文,申請IP。
2:伺服器向客戶機返會DHCP_OFFER報文,指定一個將要分配的IP。
3:客戶機向伺服器傳送DHCP_REQUEST報文,請求這個IP。
4:伺服器PING幾次(一般是3次)這個IP,如果沒得到響應的話,就說明這個IP現在空閒,可以分配給客戶機,所以向客戶機發送DHCP_ACK報文,確認可以分配。如果得到相應,則傳送DHCP_NAK報文,拒絕分配。
5:如果客戶端收到DHCP_ACK,責傳送一次免費ARP,判斷這個IP是否已經被用。沒有被用的話則繫結這個伺服器分配來的IP,否則向伺服器傳送DHCP_DECLINE報文,拒絕這次分配。並重新執行第一步。
如果收到的是DHCP_NAK,則直接重新執行第一步。
大概過程是這樣的,還有不明白的話再補充一下問題~
-----------------------------------------------------------
DHCP是應用層協議,UDP是傳輸層協議,IP是網路層協議,乙太網是鏈路層協議。
資料在網路上傳輸的時候要自頂向下逐層封裝的,關於這部份知識你可以參考一下TCP/IP分層模型。
客戶機申請IP之前確實沒有IP,DHCP_DISCOVER報文都是以廣播形式傳送的,IP頭裡的目的地址是255.255.255.255,源地址是0.0.0.0。
鏈路層目的地址是FF-FF-FF-FF-FF-FF,源地址是自己的mac地址。
這樣伺服器收到客戶端發來的DISCOVER報文之後,會根據源mac地址向客戶機發送單播的DHCP_OFFER報文。
DHCP報文是封裝在UDP報文中的。
UDP報文封裝在IP報文裡,IP報文封裝在乙太網報文裡。
典型的DHCP過程是這樣的:
1:客戶機向伺服器傳送DHCP_DISCOVER報文,申請IP。
2:伺服器向客戶機返會DHCP_OFFER報文,指定一個將要分配的IP。
3:客戶機向伺服器傳送DHCP_REQUEST報文,請求這個IP。
4:伺服器PING幾次(一般是3次)這個IP,如果沒得到響應的話,就說明這個IP現在空閒,可以分配給客戶機,所以向客戶機發送DHCP_ACK報文,確認可以分配。如果得到相應,則傳送DHCP_NAK報文,拒絕分配。
5:如果客戶端收到DHCP_ACK,責傳送一次免費ARP,判斷這個IP是否已經被用。沒有被用的話則繫結這個伺服器分配來的IP,否則向伺服器傳送DHCP_DECLINE報文,拒絕這次分配。並重新執行第一步。
如果收到的是DHCP_NAK,則直接重新執行第一步。
大概過程是這樣的,還有不明白的話再補充一下問題~
-----------------------------------------------------------
DHCP是應用層協議,UDP是傳輸層協議,IP是網路層協議,乙太網是鏈路層協議。
資料在網路上傳輸的時候要自頂向下逐層封裝的,關於這部份知識你可以參考一下TCP/IP分層模型。
客戶機申請IP之前確實沒有IP,DHCP_DISCOVER報文都是以廣播形式傳送的,IP頭裡的目的地址是255.255.255.255,源地址是0.0.0.0。
鏈路層目的地址是FF-FF-FF-FF-FF-FF,源地址是自己的mac地址。
這樣伺服器收到客戶端發來的DISCOVER報文之後,會根據源mac地址向客戶機發送單播的DHCP_OFFER報文。