DHCP 发现:为什么其他主机不回复 ICMP“端口不可达”

DHCP 发现:为什么其他主机不回复 ICMP“端口不可达”

当主机发送 DHCP Discover(端口 67,UDP)时,为什么所有主机(DHCP 服务器除外)都不回复 ICMP“端口不可达”消息。这会导致大量无用数据通过网络。

答案1

这会导致大量无用数据通过网络。

嗯,这就是他们不回复的原因。

这是在RFC 1122(“互联网主机的要求——通信层”),第3.2.2,并且评论中特别指出了UDP广播是原因:

接收以下信息时不得发送 ICMP 错误消息:

  • ICMP 错误消息,或
  • 发往 IP 广播或 IP 多播地址的数据报,或
  • 作为链路层广播发送的数据报,或
  • 非初始片段,或
  • 源地址未定义单个主机的数据报——例如零地址、环回地址、广播地址、多播地址或 E 类地址。

讨论:

这些规则将防止主机响应广播数据报返回 ICMP 错误消息而导致的“广播风暴”。例如,广播到不存在端口的 UDP 段可能会触发来自所有没有该目标端口客户端的机器的 ICMP 目标不可达数据报洪流。在大型以太网上,由此产生的冲突可能会导致网络在一秒钟或更长时间内无法使用。

IPv4 DHCP“发现”数据包同时匹配第 2 个和第 3 个条件。

相关内容