TCP拥塞控制

TCP拥塞控制

目录

  • 概述
  • 慢开始和拥塞避免
  • 快重传和快恢复

概述

在计算机网络中, 链路的容量,交换节点中的缓存和处理机等都是网络的资源.在某段时间内,若对网络中的某一资源的需求超过本身能提供的资源,这时网络性能就会变差.这种情况成为网络拥塞.

所谓拥塞控制就是要防止过多的数据注入到网络中,这样可以使网络的路由器或者链路不致于过载.拥塞控制是一个全局性的过程,涉及到所有主机,所有的链路,以及与降低网络传输性能有关的所有因素.

慢开始和拥塞避免

发送方维护一个拥塞窗口的状态变量.拥塞窗口的大小取决于网络的拥塞程度,并且动态改变.发送方让自己的发送窗口等于拥塞窗口.

慢开始

主机在发送数据的时候,不是直接把大量的数据字节注入网络, 而是先探测一下网络,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口.增大的原则是每经过一个传输轮次,拥塞窗口就加倍.而一个传输轮次指的是发送方连续发送报文段后到收到这些连续报文段的确认所经历的时间.

为了防止拥塞窗口增大过大引起网络拥塞,还需要设置一个慢开始门限状态变量.慢开始门限用法:

  • 当拥塞窗口 < 慢开始门限时,使用慢开始算法.
  • 当拥塞窗口 > 慢开始门限时,停止使用慢开始算法,改用拥塞避免算法.
  • 当拥塞窗口 = 慢开始门限时,可以使用慢开始算法或者拥塞避免算法.

拥塞避免

拥塞避免算法让拥塞窗口缓慢增大,即每经过一个往返时间RTT就把发送窗口+1,而不是加倍.这样,拥塞窗口按线性规律缓慢增长.

乘法减小

不论在慢开始阶段还是拥塞避免阶段,只要出现拥塞情况,就把慢开始门限设置为当前拥塞窗口的一半.

当网络频繁出现拥塞时, 慢开始门限的值就下降得很快, 这样可以大大减少注入到网络的分组数.

加法增大

是指拥塞避免算法后, 使拥塞窗口缓慢增大,防止网络过早出现拥塞.

快重传和快恢复

快重传算法

快重传算法规定: 发送方连续收到三个重复确认就立即重传该确认对应的分组,不必等待重传计时器到期.

快恢复

由于发送方连续收到三个重复的确认,此时很可能不是因为网络拥塞,否则也不会连续收到三个重复的确认,因此,不执行慢开始算法,而是执行快恢复算法,即:把拥塞窗口设置为慢开始门限减半后的数值,然后执行拥塞避免算法.

参考资料

计算机网路

分享到