计算机网络自顶向下方法27——运输层 拥塞控制原理 拥塞原因与代价及控制方法
网络拥塞控制深度解析:原理、代价与方法
一、拥塞的根源与本质
1. 什么是网络拥塞?
当网络中数据包的总需求超过网络路径上设备(如路由器和交换机)的物理承载能力时,网络性能开始急剧下降的现象,称为拥塞。
2. 产生拥塞的根本原因
资源有限性:网络中的关键资源(路由器/交换机的缓冲区容量、链路带宽)是有限的。
流量突发性:许多网络应用(如Web请求)的本质是突发性的,大量数据可能在短时间内涌向同一个网络瓶颈。
协调缺失:如果多个发送方在缺乏协调的情况下,同时以各自的最高速率向网络发送数据,必然会在共享的瓶颈处造成拥堵。
二、拥塞的代价(三阶段分析)
拥塞的代价随着网络负载的增加而演变,可以分为以下三个阶段:
阶段一:低负载 → 理想负载(0% - 80%)
代价:无,或仅有轻微增加的排队延迟。
描述:随着负载增加,网络资源得到充分利用,吞吐量线性增长,延迟增长缓慢。这是网络的高效工作区。
阶段二:理想负载 → 过载(80% - 100%)
代价一:数据包经历极长的排队延迟。
代价二:当路由器缓冲区被填满后,开始丢弃数据包**。
对于可靠协议(如TCP),丢包意味着重传。发送方最终会重传这些包,但从应用角度看,这些重传是不必要的开销,因为它们承载的数据已经被成功发送过一次。
此时,网络仍在尽力交付数据,但有效吞吐量开始下降。
阶段三:严重过载(>100%)
代价三:上游传输能力的浪费。
当数据包经过多跳路由到达一个已满的缓冲区并被丢弃时,所有为传输它而消耗的上游链路带宽和路由器处理能力都被浪费了。
代价四:可能引发“拥塞崩溃”。
最坏的情况是,网络中被交付的绝大部分数据包都是重传包,有效吞吐量趋近于零。此时网络虽然极其繁忙,但有用的工作极少。
三、拥塞控制的一般方法
拥塞控制的目标是让网络运作在阶段一末尾、阶段二开头的理想区域。其方法大致分为两类:
1. 端到端的拥塞控制(End-to-end)
原理:网络层设备(路由器)不向发送方提供明确的拥塞状态反馈。发送方必须通过观察网络行为(如丢包、延迟增加)来推断网络是否发生拥塞。
依据的信号:
包丢失:是最直接的拥塞信号。超时或收到重复ACK被认为意味着拥塞。
延迟增加:往返时延RTT的增长意味着网络中排队队列在变长,是拥塞的先兆。
代表:TCP的拥塞控制( Tahoe, Reno, CUBIC等)是这种方法最典型的例子。它完全由端系统实现,无需网络核心设备的支持。
2. 网络辅助的拥塞控制(Network-assisted)
原理:网络层设备(路由器)主动向发送方提供关于网络拥塞状态的显式反馈。
反馈形式:
** choke包**:路由器在检测到拥塞时,直接向发送方发送一个“choke包”或“源抑制”消息,要求其降低发送速率。
标记包:在数据包经过拥塞的路由器时,路由器在包头设置一个拥塞标志位(如ECN,显式拥塞通知)。接收方在ACK中再将此标志位回显给发送方,发送方据此降低速率。
代表:ATM网络的拥塞控制、IP的ECN机制。这种方法反应更迅速,但对网络设备有额外要求。
四、总结
| 方面 | 核心要点 |
|---|---|
| 拥塞根源 | 对有限资源(带宽、缓冲区)的过度竞争。 |
| 拥塞代价 | 1. 延迟增加 2. 吞吐量下降 3. 资源浪费(重传、上游带宽) 4. 潜在的拥塞崩溃 |
| 控制方法 | 1. 端到端控制:基于推断(丢包、延迟),以TCP为代表,部署简单。 2. 网络辅助控制:基于显式反馈(choke包、ECN),反应迅速,需网络支持。 |
拥塞控制是整个互联网得以稳定运行的“免疫系统”。它不是一个单一的技术,而是一个涉及端系统和网络设备、需要在效率和公平性之间持续权衡的复杂领域。理解其基本原理是深入任何具体协议(如TCP)拥塞控制算法的基础。
