![DHCP 和 IP 相互依賴嗎?](https://rvso.com/image/1703337/DHCP%20%E5%92%8C%20IP%20%E7%9B%B8%E4%BA%92%E4%BE%9D%E8%B3%B4%E5%97%8E%EF%BC%9F.png)
DHCP是應用層協議,因此必須依賴網路層的IP協定。但 IP 協定需要為網路介面分配 IP 位址,這是 DHCP 的工作。 DHCP 和 IP 是否相互依賴,因此需要彼此預先存在?這種循環依賴是如何運作的?
答案1
DHCP是應用層協議,因此必須依賴網路層的IP協定。但 IP 協定需要為網路介面分配 IP 位址,這是 DHCP 的工作。 DHCP 和 IP 是否相互依賴,因此需要彼此預先存在?這種循環依賴是如何運作的?
這不是一個難的依賴性; DHCP 的存在只是為了方便用戶,而 IP(v4) 在 DHCP(或 BOOTP 或 RARP)之前就已經存在很久了。主機可以手動設定其 IP 位址,也可以透過任何其他方式1無需 DHCP。
0.0.0.0
但 IPv4 上的 DHCP 工作方式有點不尋常 - 與其他(正常)基於 UDP 的協定不同,當主機尚不具有有效的 IP 位址時,允許 DHCP 用戶端從「零」位址發送封包。
(安裝 Wireshark 或其他一些資料包擷取工具即可看到這一點。)
DHCP 用戶端軟體透過使用「原始套接字」來實現此目的,其中它手動建立整個 IP 封包(添加 UDP 標頭和 IP 標頭),而不是讓作業系統添加通常的較低層處理。所以雖然協議好像它在 UDP/IP 內部傳輸,實際上根本不依賴作業系統的 IP 堆疊工作。
在 IPv6 上,情況有所不同,因為每個支援 IPv6 的介面都會自動擁有一個「連結本地」IPv6 位址(位址fe80:…
),因此主機可以使用它來傳送和接收其DHCPv6 封包– 或ICMPv6 路由器請求,或其他任何內容配置時需要。
1某些連結類型有其自己的設定機制:例如,任何使用 PPP 的裝置(如 ADSL 的 PPPoE、PPTP VPN 或老式撥號)都會使用 PPP 整合設定而非 DHCP。行動網路也做自己的事情。通常,所有此類機制僅用於「面向使用者」的連接,而路由器之間的「核心」連接幾乎總是使用手動配置的 IP 位址。