目录
原文:https://www.networkworld.com/article/2224654/mtu-size-issues.html
最大传输单元(MTU)是单个数据报在特定数据通信链路上可以具有的最大字节数。使用封装,加密或覆盖网络协议会导致端到端有效MTU Size会减小(增加协议头占用有效载荷?)。某些应用程序在减小的MTU Size上可能无法很好地工作,并且无法执行路径MTU发现(PMTUD)。作为应对,能够增加网络链路的MTU Size将是很好的。
MTU Size
最大传输单元(MTU)是OSI模型2层网络数据单元(PDU)的最大可能帧大小。大小取决于通信媒体的物理属性。历史网络媒体速度较慢,更容易出错,因此MTU Size设置得较小。对于大多数以太网,此设置为1500字节,并且此大小几乎在接入网络上普遍使用。以太网第2版网络的标准帧大小为1518字节(包括14字节的Ethernet II标头和4字节的帧检查序列(FCS))。
不过其他通信媒体类型具有不同的MTU Size。例如,T3 / DS3(或E3)和SONET / SDH接口的MTU Size为4470字节(带标头的4474)。
封装开销 Encapsulation Overhead
当一个协议的数据包或帧封装在另一个协议中时,帧大小会整体增加。封装会增加协议标头的开销,因此,通过网络发送1500字节数据包的系统无法以大包的形式发送到另一端(超过默认MTU size,要么分段,要么被丢弃)。协议开销的字节数根据封装类型而变化。
以下是不同的协议封装的开销列表:
- GRE(IP协议47)(RFC 2784)添加24字节(20字节IPv4标头,4字节GRE标头)
- 6in4封装(IP协议41,RFC 4213)增加了20个字节
- 4in6封装(例如DS-Lite RFC 6333)增加了40个字节
- 每当您添加另一个外部IPv4标头时,都会添加20个字节
- DMVPN执行的IPsec加密为ESP-AES-256和ESP-SHA-HMAC开销增加了73个字节(开销取决于传输或隧道模式以及加密/认证算法和HMAC)
- MPLS为堆栈中的每个标签添加4个字节
- IEEE 802.1Q标签添加4个字节(Q-in-Q将添加8个字节)
- VXLAN增加了50个字节
- OTV增加了42个字节
- LISP为IPv4添加了36个字节,为IPv6封装添加了56个字节
- NVGRE增加了42个字节
- STT增加了54个字节
在许多其他情况下,也会发生协议封装,因此您必须注意,这是在传输路径上发生的。尽管这可能很难检测到,但是您的网络文档应注意MTU size小于1500字节的位置。
路径MTU发现(PMTUD)
(路径MTU发现是用来确定到达目的地的路径中最大传输单元(MTU)的大小。通过在IP报头中设置不分片DF(Don't Fragment)标志来探测路径中的MTU值, 如果路径中设备的MTU值小于此报文长度,并且发现DF标志,就会发回一个Internet控制消息协议(ICMP)(类型3、代码4需要分片的消息ICMP_FRAG_NEEDED),消息中包含它可接受的MTU值。
链接:https://www.jianshu.com/p/b1d890622cb4)
路由器能够对数据包进行分段以将其缩减为较小的尺寸,从而使其适合较小的MTU-size 的隧道,但这并不是最佳选择。当进入网络设备的数据包由于封装而增大时,如果新的总数据包大小超过了发送端口的MTU-size,则网络设备可以在转发数据包之前将其分成两个较小的数据包。 IPv4路由器将对数据包进行分段和转发,并向数据源发送ICMP“数据包太大”错误消息以通知源它应使用较小的MTU-size。 IPv6路由