TCP协议--流量控制,拥塞控制,MSS
Posted Zhang Jun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP协议--流量控制,拥塞控制,MSS相关的知识,希望对你有一定的参考价值。
MSS
-
MSS(Maximum segment size): 最大报文段长度。MSS应用于TCP协议中,代表的是单个TCP报文的可传输的最大数据长度。MSS的大小,和通信中的另一个参数MTU息息相关。
-
MTU(Maximum transmision unit):最大传输单元。这个主要是物理设备能传输的最大数据长度,譬如以太网传输IP报文为例子,单个IP报文的最大长度为1500,则1500就是该网卡的MTU。可见,MTU这个参数通常与通信接口有关(网络接口卡、串口等)。
如果IP层以上的协议层,传输的报文大于MTU,则在IP层,就需要对报文进行分片,分成多个MTU发出。我们可以想象,如果IP层以上的报文过长,则所有分片都会在IP层进行,会导致传输效率降低,压力增大。因为传输路径上的路由设备,都涉及到IP报文的转发。
那该如何缓解IP分片压力问题?在IP层以上,将报文分片完成即可。
TCP协议中的MSS,就是根据网络传输中的MTU来决定的。在客户端和服务端的握手阶段,就会互相交流最大的MSS,而最大的MSS=MTU - IP Header - TCP Header。
举例,若MTU=1500,则传统IP头长度为20,TCP头长度为20,则MSS=1500-20-20=1460。确定了MSS之后,TCP在发送的时候,就会以MSS为单位对数据进行发送,保证来到IP层的报文长度不会大于MTU。
流量控制
顾名思义,就是控制网络传输的流量。它的触发源是接收端,接收端会根据自己接收缓冲区的剩余大小,告诉发送端,下次发送最多还能发送多少大小的报文过来。
拥塞控制
也是控制发送端的流量。但触发源不同,拥塞控制的触发源是网络原因,丢包,时延等因素(譬如网络中流量太大处理不过来,导致丢包)。
TCP的发送窗口,主要是受上面两个因素共同配合控制。拥塞控制中,涉及到的特性主要有,慢开始,慢开始门限,快重传,快恢复等机制。
拥塞控制和流量控制的配合,可以举个简单例子,若接收端的接收缓冲区无压力,剩余很大空间,则发送端主要受拥塞控制的窗口大小影响;如果接收端返回的可用接收缓冲区已经很小了,那发送端最多也只能发送这么大了。当然,他俩之间的配合肯定还有其他的各种因子。单拥塞控制的算法就有多种,new reno, bbr, sack。
以上是关于TCP协议--流量控制,拥塞控制,MSS的主要内容,如果未能解决你的问题,请参考以下文章