常见计算机网络拥塞控制算法
时间: 2025-07-06 10:56:04 浏览: 9
### 常见计算机网络拥塞控制算法及其工作原理
#### 慢开始 (Slow Start)
慢开始是一种用于初始化连接或在网络恢复后的拥塞控制策略。在此阶段,发送方会指数级增加拥塞窗口(cwnd),直到遇到丢包或其他形式的拥塞信号为止[^2]。
```python
if cwnd < ssthresh:
cwnd *= 2 # 每经过一个往返时间RTT, 发送窗口翻倍增长
```
#### 拥塞避免 (Congestion Avoidance)
一旦拥塞窗口达到阈值ssthresh,则进入拥塞避免阶段,在此期间采用线性增长方式逐步扩大拥塞窗口大小。这种方式可以有效防止过快的增长导致新的拥塞事件发生。
```python
elif cwnd > ssthresh:
cwnd += MSS / cwnd # 每经过一个RTT, 发送窗口按比例缓慢增长
```
#### 快重传与快恢复 (Fast Retransmit and Fast Recovery)
当接收端检测到三个重复确认ACK时触发快重传机制立即重新传送丢失的数据段而不必等待定时器超时;而快恢复则是在执行完快重传之后不回到慢启动而是继续维持当前较高的传输率并适当减小拥塞窗口来应对可能存在的轻度拥塞情况[^3]。
```python
if three_duplicate_acks_received:
retransmit_lost_segment()
enter_fast_recovery_state()
while in fast_recovery_state:
reduce_cwnd_by_half() # 减少一半的拥塞窗口
```
#### 加权随机早期检测(WRED)
WRED 是一种主动队列管理方法,它允许路由器根据不同的优先级和服务质量需求提前丢弃部分数据包以预防潜在的严重拥塞状况出现。这种方法有助于提高整体网络性能的同时也保障了高优先级业务的服务水平[^1]。
#### BBR (Bottleneck Bandwidth and Round-trip propagation time)
BBR 不依赖于传统的基于丢包判断拥塞的方式,转而利用带宽估计和延迟测量来进行更加精准有效的拥塞控制。其核心思想在于持续监测链路上的最大可用带宽以及最小往返传播延时从而动态调整自身的发送速率。
阅读全文
相关推荐

















