您的 IPv4 地址:
操作系统:
运营商:

什么是 MTU?数据包大小与路径问题详解

MTU 是某个接口或链路在该层无需拆分即可传输的最大网络数据包大小。以太网常见的 MTU 为 1500 字节,但隧道和其他链路允许的值可能更小。连接必须适应它实际经过的那条路径的限制。

接口 MTU 不等于路径 MTU

网卡上显示的数值描述的是其本地链路,并不自动适用于通往远程服务器的每一跳。VPN 或其他隧道会添加外层报头,占用一部分空间。如果内层数据包已经达到外层链路允许的最大值,封装后的数据包就可能过大。路径 MTU 是能够通过某条特定路径的最大 IP 数据包。它可能因目标不同而不同,甚至可能因方向不同而不同。

MTU 既不是文件大小限制,也不是线路速率。应用可以传输大文件,而传输层会把数据分成合适的报文段。在 TCP 中,最大报文段长度(MSS)指的是一个 TCP 报文段携带的数据量,它比相应的 MTU 小,因为 IP 和 TCP 报头也需要占用空间。IPv4 和 IPv6 处理超大数据包的方式不同。

端点如何发现这一限制

路径 MTU 发现(Path MTU Discovery)依靠数据包过大的信号来工作。在 IPv4 中,当数据包不允许分片时,路由器可以报告“需要分片”。在 IPv6 中,中转路由器不对数据包分片,而是可以发送 ICMPv6 Packet Too Big 消息。屏蔽这些消息可能导致令人费解的故障:小请求可以正常完成,而较大的响应却卡住不动。有些实现还会使用其他探测技术来找到可用的大小。

RFC 1191 规定了 IPv4 的路径 MTU 发现;RFC 8201 涵盖 IPv6。报头大小和隧道行为都会产生影响,因此 1500 并不是通用的端到端设置。不要在不考虑实际路径的情况下,凭一个记住的数字去计算 MSS。

先诊断,再修改设置

如果故障只在使用 VPN 时出现,或者网站只能加载一部分而较大的传输会卡住,请在使用和不使用隧道的情况下比较同一任务。记下接口、目标和症状。使用不同负载大小并设置“不分片”选项的 ping 探测可能有所帮助,但命令语法因系统而异,而且 ICMP 可能被过滤。请把网络测试作为辅助证据,而不是唯一的最终结论。

不要在没有假设的情况下降低每台设备的 MTU。检查隧道设置和相关的 ICMP 消息,每次只修改一项设置,然后重新测试应用。不必要地调小 MTU 会增加报头开销,可能降低效率。如果瓶颈不在您的控制范围内,请向服务商提供一个可复现的示例。