三、MTU简单原理介绍

1、MTU是一个二层的概念,即最大传输单元(Maximum Transmission Unit,MTU)(以字节为单位),以太网层数据帧格式如下:

目标MAC

源MAC

Type

Data

CRC

MTU属于其中的Data区域,RFC标准的MTU范围为64-1500字节

2、TCP的MSS

如上数据格式的Data区域中其实包含IP头部、TCP/UDP头部及应用层的数据,MSS是TCP里面的一个概念,它是TCP数据包每次能够传输的最大数据分段,不包含包头部分,它与物理MTU满足如下关系:

MTU=MSS+20bytes(IP包头)+20bytes(TCP包头)

TCP协议在建立三次握手中需要要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),所以往往MSS为1460字节

3、路径MTU

1)不同厂商的不同设备,基本都可以自行修改自身的MTU数值(64-1500范围),所有数据包在整个互联网的数据链路中,可能会经过不同MTU值的设备

2)路径MTU:当一个数据包在互联网传输,会经过许多的设备,这些设备的MTU最小的那一个就是路径MTU