TCP协议中的拥塞控制

本文详细解释了TCP中的拥塞控制机制,包括拥塞窗口的概念、慢启动策略(每ACK增长1)、拥塞避免(每ACK增长1/cwnd),以及在超时和快速重传情况下如何调整窗口大小。特别关注了ssthresh在过程中的作用。
摘要由CSDN通过智能技术生成

本文参考自
其余图源见水印
发现一文深度剖析ssthresh的

定义

当网络极度拥堵时,如果没有拥塞控制,发送方会继续发送大量的网络数据包,而这些数据包因为网络阻塞而延时、丢失,触发了TCP重传,重传使得网络更加阻塞,整个网络将会陷入不可用的状态。

拥塞控制,就是在网络中发生拥塞时,减少向网络中发送数据的速度,防止造成恶性循环;同时在网络空闲时,提高发送数据的速度,最大限度地利用网络资源。
在这里插入图片描述

图源

拥塞窗口

定义

拥塞窗口(cwnd)是发送方维护的一个状态变量,它会根据网路拥堵情况动态调节。
之前发送窗口约等于接收窗口,但在拥塞窗口加入后,发送窗口=min(拥塞窗口, 接收窗口)。

变化规则

没有拥堵就增大,出现拥堵就减小。通过 发送方是否触发了超时重传 来判断。

类别

慢启动&&拥塞避免

慢启动:每收到一个ACK,cwnd+=1;
拥塞避免:每收到一共ACK,cwnd+=1/cwnd。
ssthresh后,慢启动变更为拥塞避免。
ssthresh:慢启动门限,是一个数值,一般来说大小为65535字节。
在这里插入图片描述

超时重传&&快速恢复

在拥塞避免过程中:
若发生超时,则代表网络拥塞,启用超时重传。

若收到报文三次确认,则发生拥塞,快速重传。

超时重传:从1开始,慢启动到cwnd/2。
快速重传:cwnd = ssthresh + 3,从这里继续慢慢+1。
超时重传
快速重传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值