为什么TCP要设MSS?

以下是个人的一点理解: MSS是TCP一次能够传输的数据(不包括协议头的开销)的最大值,在传输过程中是会变化的,客观地反映了信道和两个客户端的处理能力的变化情况。 假设客户端出能力能很强,一般情况下,当通信双方约定好MSS后,会尽量按照MSS传输数据,以期达到信道利用率的最大化,然而当信道条件改变后,即变好了或者变坏了,如果此时仍不改变每次发送的数据的数量,就会出现信道利用不充分或者信道过利用(导致拥塞、最终你发送的数据会被丢弃)的情况,因此,MSS可以说架起了信道与应用程序之间的桥梁,信道好,MSS大,信道坏,MSS小,他们之间的联系可以通过TCP的反馈协议(ack)实现,这也是TCP与UDP的区别。 当然还有一个概念是MTU,这个在更底层了,说明了在物理上信道支持的最大数据量,因此,MSS应该比MTU小,正常情况下,MSS=MTU-IP包头长-TCP包头长~~~~

作者:汪建
链接:http://www.zhihu.com/question/19790398/answer/13530326
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值