TCP中的MSS解读

[复制链接]
华为认证   骁勇善战  发表于 2013-4-22 09:28:10

最新回复:2017-04-16 20:26:59

MSS

MSS 是TCP选项中最经常出现,也是最早出现的选项。MSS选项占4byte。MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的头部。TCP在三次握手中,每一方都会通告其期望收到的MSS(MSS只出现在SYN数据包中)如果一方不接受另一方的MSS值则定位默认值536byte。
MSS值太小或太大都是不合适。太小,例如MSS值只有1byte,那么为了传输这1byte数据,至少要消耗20字节IP头部+20字节TCP头部=40byte,这还不包括其二层头部所需要的开销,显然这种数据传输效率是很低的。MSS过大,导致数据包可以封装很大,那么在IP传输中分片的可能性就会增大,接受方在处理分片包所消耗的资源和处理时间都会增大,如果分片在传输中还发生了重传,那么其网络开销也会增大。因此合理的MSS是至关重要的。MSS的合理值应为保证数据包不分片的最大值。对于以太网MSS可以达到1460byte.
不MSS相似的在IP层也有一个类似的概念---MTU(Maximum Transfer Unit)下图可以清晰翻译MSS不MTU 的关系:

MTU=MSS+TCP Header+IP Header.

 

跳转到指定楼层
华为认证   骁勇善战  发表于 2013-4-22 09:54:47

事实是发送方和接收方存在很多中间设备,那MSS是如何协商的呢?

请看下图:

 

z00317009   驰骋沙场  发表于 2013-4-23 16:18:01

《TCP/IP详解》中有详细解释,感谢的话,可看下
kpunic   初出茅庐  发表于 2017-4-16 20:26:59

多谢楼主,只有碰到故障的时候 才会显得这种解释尤为重要!
您需要登录后才可以回帖 登录 | 注册

如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
快速回复 返回顶部