在大多数客户端服务器应用程序中,服务器的端口号是众所周知的数字,而客户机使用的是当前可用的端口号。DHCP是不同的。在这里,客户机和服务器都使用一个众所周知的端口: DHCP服务器使用UDP端口67,DHCP客户端使用UDP端口68。
为什么他们这样设计,并有一个固定的客户端端口号?
发布于 2013-06-20 11:48:33
这是必要的,因为客户端在使用DHCP时可能没有IP地址(他使用DHCP获取地址)。
服务器和客户端通过广播进行通信,因此服务器将客户端的IP地址广播到UDP端口68。服务器没有其他方法可以到达客户端。由于客户没有IP地址,这是客户获得对其请求的答复的唯一途径。
发布于 2015-10-28 03:13:42
如果我将临时端口号(例如10000 )分配给DHCP客户端,则必须将相同的端口号分配给网络中的所有客户端。
DHCP服务器不知道客户端IP地址,它知道的是DHCP客户端的端口号。因此,DHCP服务器以等于10000的客户端端口号广播分组。如果所有DHCP客户端都没有为DHCP应用程序分配端口号10000,则可能有些客户端正在端口号10000上运行另一个应用程序。来自DHCP服务器的数据包将被传递到错误的客户端应用程序。因此,DHCP最好使用众所周知的端口号。
https://serverfault.com/questions/517223
复制相似问题