最大分段 小议TCP的MSS以及MTU( 二 )


PPPoE带来了好处,也带来了一些坏处,比如:二次封装耗费资源,降低了传输效能等等,这些坏处俺也不多说了,最大的坏处就是PPPoE导致MTU变小了以太网的MTU是1500,再减去PPP的包头包尾的开销(8Bytes),就变成1492 。
假如两台主机之间的某段网络使用了PPPoE那么就会导致某些不能分片的应用无法通讯 。
这个时候就需要我们调整一下主机的MTU,通过降低主机的MTU,这样我们就能够顺利地进行通讯了 。
当然对于TCP应用而言还有另外的解决方案 。
马上请出今天第三位猪脚:MSS 。
MSS最大传输大小的缩写,是TCP协议里面的一个概念 。
MSS就是TCP数据包每次能够传输的最大数据分段 。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460 。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值 。
介绍完这三位猪脚s
我们回过头来看前言里面的那个问题,我们试想一下,假如我们在中间路由器上把每次TCP连接的最大MSS进行调整这样使得通过PPPoE链路的最大MSS值加上数据包头包尾不会超过PPPoE的MTU大小1492这样就不会造成无法通讯的问题.所以上面的问题可以通过ip;tcp;adjust-mss;1452来解决 。
当然问题也可以通过修改PC机的MTU来解决 。

推荐阅读