TCP拥塞控制

 一、 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就是拥塞。随着光纤的发展,传输错误造成的数据报丢失的情况大大降低,这也使得TCP的拥塞控制主要针对于数据报传输时延和通信方的接收能力。


二、慢启动与拥塞避免

  发送方维持一个叫做拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。

慢启动拥塞避免算法的思路是在不清楚网络拥塞状况下,发送一个最大段长的TCP报文段,一旦确认该报文段在计时器超时前被接收方接收,再由小到大增大cwnd。

慢启动算法如下图所示:

                                         

当每发送的报文段被确认接收后,cwnd的值在原先的基础上加上1,简而言之就是以2的指数幂形式增长。

同时为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量(阖值)。ssthresh的用法如下:

 当cwnd<ssthresh时,使用慢开始算法。

 当cwnd>ssthresh时,改用拥塞避免算法。

 当cwnd=ssthresh时,慢开始与拥塞避免算法任意。

上面提到了拥塞避免算法,所谓的拥塞避免算法主要用于拥塞窗口大于阖值时进行拥塞处理,具体步骤如下:

①当拥塞窗口大于阖值,从该时刻开始拥塞窗口按线性增长(每经过一个往返时间RTT就把发送方的拥塞窗口cwnd1,而不是加倍),直到发生丢包超时。

②当发生丢包超时时,阖值ssthresh设置为当前拥塞窗口的1/2,拥塞窗口重新设置为一个最大长度的报文段(设置为1)。


慢启动和拥塞避免综合控制示意图如下:


三、快重传和快恢复

1、快重传

  快重传为的是使发送方及早知道有报文段没有到达对方立即重传对方尚未收到的报文段。其算法是:当发送方接收到3个重复确认信息就发送接收方未收到的数据,而不需等待发送超时警示(计时器超时发出提示)。

2、快恢复

快恢复是在配合快重传下进行的,当发送方收到连续的3个重复确认时执行乘法减小算法,将阖值变为原先的1/2并使其成为新的窗口初值,再执行加法增大(拥塞避免)。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值