
1、慢启动
拥塞窗口 cwnd(congestion window):
通告窗口 rwnd:tcp报文中的window字段表示的窗口,即接收方的接收窗口
发送窗口 swnd:未引入拥塞窗口时,发送窗口约等于通告窗口,引入后 swnd=min(cwnd, rwnd),即两者中较小值
拥塞窗口大小变化:每收到一个ack,拥塞窗口变化为之前一倍,呈指数级增长;
慢启动初始窗口IW(initial window):初始大小最大可为10个MSS

2、拥塞避免
慢启动阈值 ssthresh(slow start threshold):达到ssthresh后,以线性方式增加cwnd

拥塞控制:如下图,当拥塞窗口增大到64个MSS时,未达到初始ssthresh大小,但已出现丢包情况,将新的慢启动阈值修改为64MSS的一半,32MSS,再重新以4个MSS作为初始拥塞窗口大小,进入慢启动过程,当窗口达到32MSS时,进入拥塞避免(线性);再重复之前过程。

3、快速重传
当丢包情况不严重时,可进行快速重传和快速恢复方式;不一定会进入慢启动状态
失序数据段原因:
1)若报文丢失,将会产生连续的失序ACK段
2)若网络路径与设备导致数据段失序,将会产生少量的失序ACK段
3)若报文重复,将会产生少量的失序ACK段
快速重传工作场景:1)
接收方工作方式:
1)当接收到一个失序数据段时,立刻发送它所期待的缺口ACK序列号
2)当接收到填充失序缺口的数据段时,立刻发送它所期待的下一个ACK序列号
发送方工作方式:
1)当接收到3个重复的失序ACK段(4个相同的失序ACK段)时,不再等待重传定时器的触发,立刻基于快速重传机制重发报文段
4、快速恢复
启动快速重传且正常未失序ACK段到达前,启动快速恢复:
1)将ssthresh设置为当前拥塞窗口cwnd的一半,再将cwnd设置为ssthresh+3MSS
2)每收到一个重复ACK,cwnd增加一个MSS
3)当新数据ACK到达后,设置cwnd为ssthresh
白帽青年:TCP 协议:拥塞控制算法——BBRzhuanlan.zhihu.com
最后
以上就是心灵美鲜花最近收集整理的关于tcp拥塞控制_TCP 协议:拥塞控制的全部内容,更多相关tcp拥塞控制_TCP内容请搜索靠谱客的其他文章。
发表评论 取消回复