我遇到过这样的问题:当 mtu 设置为 1500 时,我只能连接到 google.com 和 ibm.com 等网站,但如果我尝试连接到其他任何网站,它只会显示一个空白页。当 mtu 降低到 1499 时,它开始工作。我很好奇为什么这会起作用,以及将 mtu 设置为 1499 是否会在将来导致问题?我实际上对此不太了解,我只是听说过,正在寻找一个很好的解释。
当我得到有关为什么 MTU 仅减少 1 个字节的解释时,我将用该解释更新我的问题。
答案1
这可能意味着你上游的其他设备有一个较小的mtu,并且有人错误地配置了防火墙来阻止所有ICMP阻止MTU 发现作为路径。
许多天真的网络管理员似乎认为 ICMP 没有任何用处,你可以完全阻止它而不会产生任何后果。
答案2
更具体地说,IP 数据报的报头中设置了 DF(不分段)标志。然后,它们到达您和目的地之间的某个网关,该网关的 MTU 小于发送方使用的 MTU。该网关需要进一步分段数据报,因此它发送了 ICMP 类型 4 消息,这实质上意味着“我需要分段这些数据包,但您说不要。因此目的地无法到达。”
原始发送者没有收到这些 ICMP 数据包,因为路径上的某个网关被(愚蠢地)配置为阻止所有 ICMP。因此,发送者不知道他的数据包没有通过,只能等待……再等。最终会超时。通常是人类先超时。:)