TCP协议--流量控制,拥塞控制,MSS


前言

随笔笔记类,欢迎各位交流


1. 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。


2. 流量控制与拥塞控制

TCP层的发送,都会涉及到滑动窗口的概念,如果滑动窗口概念不熟,建议先理解是什么,再继续往下看。
流量控制:顾名思义,就是控制网络传输的流量。它的触发源是接收端,接收端会根据自己接收缓冲区的剩余大小,告诉发送端,下次发送最多还能发送多少大小的报文过来。

拥塞控制:也是控制发送端的流量。但触发源不同,拥塞控制的触发源是网络原因,丢包,时延等因素(譬如网络中流量太大处理不过来,导致丢包)。
TCP的发送窗口,主要是受上面两个因素共同配合控制。拥塞控制中,涉及到的特性主要有,慢开始,慢开始门限,快重传,快恢复等机制。

拥塞控制和流量控制的配合,可以举个简单例子,若接收端的接收缓冲区无压力,剩余很大空间,则发送端主要受拥塞控制的窗口大小影响;如果接收端返回的可用接收缓冲区已经很小了,那发送端最多也只能发送这么大了。当然,他俩之间的配合肯定还有其他的各种因子。单拥塞控制的算法就有多种,new reno, bbr, sack。
该帖子主要只起到记录笔记的作用,涉及到细节的地方,讨论不够深入,所有兴趣也可互相交流学习。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值