在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。这种情况就叫做拥塞(congestion)。

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。

若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。

image.png

四种拥塞控制算法

假定:

  1. 数据是单方向传送,而另一个方向只传送确认
  2. 接收方总是有足够大的缓存空间,因而发送方发送窗口的大小由网络的拥塞程度来决定
  3. 以最大报文段 MSS 的个数为讨论问题的单位,而不是以字节为单位

拥塞窗口 cwnd

其值取决于网络的拥塞程度,动态变化,只要没有出现拥塞,拥塞窗口就在增大一些,但只要网络出现拥塞,,拥塞窗口就减少一些

判断网络是否出现拥塞的依据:看是否发生超时重传

发送方将拥塞窗口作为发送窗口 swnd,即 swnd = cwnd

维护一个慢开始门限 ssthresh 状态变量:

慢开始算法

传输轮次:把拥塞窗口所允许发送的报文段都连续发送出去,收到了已发送的最后一个报文段的确认

image.png