为什么DHCP客户端侦听端口68?

avd*_*avd 12 network-programming dhcp

如果假设客户端没有监听68端口,当DHCP服务器收到请求时,它可以将它发送到收到请求的地址(发送时由客户端选择的临时端口),那么为什么协议指定客户端是在68端口听?

gig*_*man 18

主要原因是DHCP服务器可能在mac级别上广播"DHCP offer",而不是将其单播发送到它收到请求的mac地址.如果端口不是常量,那么一些正在侦听同一随机端口的主机将接受数据包到第5层 - 应用层.换句话说,应用程序将从完全不同的应用程序获取消息,而不是健康的情况.

  • 谢谢,这实际上是正确的答案. (4认同)

TLi*_*ebe 3

因为它在 RFC(征求意见)中指定了 DHCP 的行为方式。RFC 2131 是指定 DHCP 客户端和服务器必须如何运行的文档。

有关 DHCP 的更多信息,请参阅此处(特别是第 4.1 节)。请参阅此处了解有关 RFC 的信息。

  • 问题是“为什么协议指定客户端在端口 68 上监听?”,所以他们问的似乎更多是“为什么 RFC 这么说?” (7认同)
  • DHCP 基于早期的 BOOTP 协议,该协议使用端口 67(服务器)和 68(客户端)。BOOTP 使用这些端口的原因可能是因为当时任何其他协议都未使用它们(SMTP 使用 25,FTP 使用 21 等)。虽然主机通常有一个 IP 地址,但它可以有数千个端口。通过将特定端口号分配给特定协议,多方可以开发标准服务和客户端。只要您侦听正确的端口,您就可以编写自己的 DHCP 客户端或服务器。 (2认同)