最近在分析彩信发送速度方面的问题,因此对MTU值进行了进一步研究,以下是我个人对MTU的理解和总结:
1. MTU( maximum transmission unit )是设置在网卡上的配置值,它决定了经过网卡传输的数据包的最大尺寸。
2. 数据包在网络上传输的时候,会经过许多的路由器和网关,这些设备上都有MTU设置,如果数据包太大,经过设备的时候还会被拆分。因此PMTU(路径最大传输单元, 它等于路径上每一跳的MTU之中的最小值)值对数据传输速度影响更大。Internet网中PMTU一般为 576B 。
3. 在TCP建立的时候终端会与服务器协商MSS( maximum segment size ),它是TCP数据包每次能够传输的最大数据分段。它与MTU的关系是:MTU = MSS + 20 (TCP header length)+ 20 (IP header length)。MSS 协商结果(两端支持的MSS的最小值)才最终决定终端发出的数据包大小。
4. 在现网中,经抓包发现WAP网关返回的MSS值为1410,所以为了追求最大的性能,我们设置的MTU值应当不小于1450 (1410 + 20 +20),所以当前我们建议的经验值为 1460 B 。
5. 由于Internet网中PMTU一般为 576B, 所以终端设置的MTU应当不小于它,但是设置大了也不一定能够提升传输效率。
以下链接供参考:
http://en.wikipedia.org/wiki/Maximum_transmission_unit
http://www.cnpaf.net/Class/RFC/200408/977.html