Dhcp

為什麼 DHCP 有固定的客戶端和伺服器埠號

  • October 28, 2015

在大多數客戶端-伺服器-應用程序中,伺服器的埠號是一個眾所周知的數字,而客戶端使用目前可用的埠號。DHCP 是不同的。在這裡,客戶端和伺服器都使用一個眾所周知的埠:UDP 埠 67 用於 DHCP 伺服器,UDP 埠 68 用於 DHCP 客戶端。

他們為什麼要這樣設計它並有一個固定的客戶端埠號?

這是必要的,因為客戶端在使用 DHCP 時可能沒有 IP 地址(他使用 DHCP 獲取地址)。

伺服器和客戶端通過廣播進行通信,因此伺服器將客戶端的 IP 地址廣播到 UDP 埠 68。伺服器沒有其他方式可以到達客戶端。由於客戶沒有 IP 地址,因此這是客戶收到其請求的答复的唯一方式。

如果我要為 DHCP 客戶端分配一個臨時埠號,比如 10000,那麼我必須為網路中的所有客戶端分配相同的埠號。

DHCP 伺服器不知道客戶端的 IP 地址,它知道的是 DHCP 客戶端的埠號。因此 DHCP 伺服器廣播客戶端埠號等於 10000 的數據包。如果沒有為所有 DHCP 客戶端分配埠號 10000 用於 DHCP 應用程序,則可能某些客戶端正在埠號 10000 上執行另一個應用程序。來自的數據包DHCP 伺服器將被傳送到錯誤的客戶端應用程序。因此,最好為 DHCP 使用眾所周知的埠號。

引用自:https://serverfault.com/questions/517223