3.6 拥塞控制原理

拥塞产生的原因及代价

当端系统以超出网络核心承载极限的速度向网络中注入数据就会导致拥塞。我们将采用与研究 可靠数据传输的原理 时类似的方式从理想化模型向现实情况过渡一条一条研究拥塞产生的原因及对应的代价。

Step 1. 两个发送方,链路带宽为 R,路由器缓存无限

由于路由器缓存无限大,必然不会发生丢包。则发送方发送数据的速率 λin 与接收方接收到数据的速率 λtextout 与数据传输的时延满足如下两图:

Pasted image 20250515160610.png

由此可见:当发生网络拥塞时,分组会经历巨大的排队时延

Step 2. 两个发送方,链路带宽为 R,路由器缓存有限

由于路由器缓存有限,如果进入路由器的分组过多导致缓存溢出就会导致丢包。丢包会触发发送方重发报文。我们记 λin 为发送方应用程序向下交付数据的速率; λin 为发送方 TCP 实体向网络中注入数据的速率,显然 λinλin。在网络轻载,不会发生丢包时, λin=λin;但随着网络负载加重导致出现丢包现象,λinλin 的值就会逐渐增大。这表明发送方会因为超时重传一些分组,因此为了达到某个数据交付的速度,发送方必须以更高的速度向网络中注入分组,如下图所示:

Pasted image 20250515161616.png

由此可见,当发生网络拥塞时,发送方会因为重传(无论是因为分组确实丢失而必须进行的重传还是因大时延触发超时机制导致的不必要重传)导致链路转发重复的分组。

Step 3. 多个发送方,多台路由器,多跳路径

Pasted image 20250515162003.png

当上面图片所示的四台主机全部以过高的速率向网络中注入数据时,最终会导致整个网络陷入这样的死锁状况,导致整个网络没有任何分组正常到达接收方:

下面的图片描述了各主机向网络中注入数据的速率 λin 与接收方接收到数据的速率 λout 的关系:

Pasted image 20250515162714.png

这表明,网络拥塞会导致某个分组沿着某条路径却最终被某台路由器丢弃时,每个上游路由器用于转发该分组使用的链路带宽最终被浪费掉了。

总结

网络拥塞会带来如下四条代价:

拥塞控制方法

常见的拥塞控制方法可以根据 网络层 是否为运输层拥塞控制提供了显式帮助分为两类: