Ch05-TCP 之 拥塞控制

Ch05-TCP 之 拥塞控制

August 5, 2021
Network
network

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。

当输入的负载到达一定程度吞吐量不会增加,即一部分网络资源会丢失掉,网络的吞吐量维持在其所能控制的最大值,转发节点的缓存不够大这造成分组的丢失是拥塞的征兆。

1. 基本原理 #

拥塞控制是一个全局的过程。

congestion-control

  • 慢启动:当发送方每收到一个 ACK,拥塞窗口 cwnd 的大小就会加 1,而允许发送的报文个数增加 2 倍(指数性增长)。
  • 拥塞避免:每当收到一个 ACK 时,cwnd 增加 1/cwnd,而允许发送的报文个数增加 1(线性增长)。
  • 快速重传:cwnd = cwnd/2; ssthresh = cwnd
  • 快速恢复:cwnd = ssthresh + 3,重传丢失的数据包,如果再收到重复的 ACK,那么 cwnd 增加 1。

快速重传和快速恢复算法一般同时使用,快速恢复算法是认为,你还能收到 3 个重复 ACK 说明网络也不那么糟糕。

2. 参考文献 #