路径 MTU 发现 (PMTUD) 真的有效吗?

网络工程 ipv6
2021-07-09 16:31:51

据我所知,PMTUD 使用 ICMPv6 来查找网络路径中的最小 MTU 值。我明白为什么 IPv6 不允许分段(通过阅读这篇文章),但 PMTUD 看起来不太好。

这是我的想法。

  1. 它必须找到从 src 到 dst 的网络路径才能获得最小 MTU 值。我认为这是额外的延迟。
  2. 当由于路由器间故障或其他原因更改路径时,它必须重复 1. 过程,这再次增加了延迟。

我想错了吗?任何评论都是我的荣幸。谢谢。

2个回答

与其他什么相比有效?

PMTUD 的主要目的是摆脱对路由器来说代价高昂的动态碎片。路由器需要精简高效,才能跟上流量需求。

  1. 无论如何,网络路径是由第一个数据或握手数据包“找到”的。对于 MTU 低于当前发现的值的每一跳,PMTUD 只需要一次往返。请注意,这是每个连接的开销,而不是带有分段的每个数据包的开销
  2. 稍后再次减少 MTU 只需要一次往返。使用数据流定期探测和检测 MTU 的增加。

当您在网络上使用面向连接的传输协议传输批量数据时,它是有效的,该协议可靠地提供了数据包太大的通知。

不幸的是,这并不总是与现实世界相匹配。

  1. 在现实世界中,数据包太大的通知通常根本没有到达,导致连接传输少量数据正常但随后神秘挂起。
  2. 对于无连接协议,当服务器收到“数据包太大”通知时为时已晚。该数据包不再存在,因此不能再次发送。相反,服务器必须缓存太大的数据包,然后客户端必须超时并重新发送请求。
  3. 对于小请求,发送数据包的额外延迟,返回数据包太大错误可能占总请求时间的很大一部分。