拥塞控制算法的理论类型
KCC
理论类型:控制论 + 排队论 + 流体动力学
核心模型:将数据包序列视为连续流体,瓶颈队列服从流体动力学方程:
dqdt=r(t)−C\frac{dq}{dt} = r(t) - Cdtdq=r(t)−C
控制目标是调节发送速率 (r(t)),使排队延迟 (T_{\text{queue}} = q/C) 保持在目标范围内。
离散时间下的 Lindley 递归:
qk+1=max(0,qk+wk⋅MSS−C⋅Tprop)q_{k+1} = \max(0, q_k + w_k \cdot \text{MSS} - C \cdot T_{\text{prop}})qk+1=max(0,qk+wk⋅MSS−C⋅Tprop)
数学工具:Lindley 递归(排队论)、卡尔曼滤波(状态估计)、ISS/Lyapunov 稳定性分析(控制论)。
BBR
理论类型:基于测量的启发式
核心模型:显式测量带宽 (BW) 和最小 RTT((RTprop)),计算管道容量:
BDP=BW×RTpropBDP = BW \times RTpropBDP=BW×RTprop
控制律为增益调度((g \in {1.25, 0.75, 1.0}))。
数学工具:滑动窗口最大/最小滤波。无控制论稳定性证明。
COPA
理论类型:凸优化 / 马尔可夫决策
核心模型:目标速率:
r∗=1δ⋅dqr^* = \frac{1}{\delta \cdot d_q}r∗=δ⋅dq1
其中 (d_q) 为排队延迟。在马尔可夫包到达模型下优化吞吐量与延迟的加权函数。
数学工具:马尔可夫链、凸优化收敛性分析。
PCC
理论类型:无模型在线学习
核心模型:通过 Monitor Interval 实验测量不同速率下的实际性能(吞吐量、延迟、丢包),用梯度上升优化效用函数。不假设网络结构。
数学工具:在线凸优化、梯度上升。
DCTCP
理论类型:ECN 比例反馈控制
核心模型:交换机 ECN 标记比例 (\alpha) 作为拥塞信号,窗口 reduction = (\alpha/2)。队列目标为稳定在标记阈值附近。
数学工具:线性比例控制。依赖硬件 ECN 支持。
CTCP
理论类型:双组件混合启发式
核心模型:丢包组件(Reno AIMD)+ 延迟组件(排队延迟小则额外增窗),两窗口求和。延迟组件为启发式规则。
数学工具:无形式化数学模型。
CUBIC
理论类型:丢包事件驱动的非线性启发式
核心模型:窗口增长为三次函数:
W(t)=C⋅(t−K)3+WmaxW(t) = C \cdot (t - K)^3 + W_{\text{max}}W(t)=C⋅(t−K)3+Wmax
以丢包事件为拥塞信号。
数学工具:无控制论框架。
Reno
理论类型:丢包事件驱动的线性启发式
核心模型:AIMD------加性增(每 RTT (+1))、乘性减(丢包时减半)。唯一信号为丢包事件。
数学工具:无数学模型。
汇总
| 算法 | 理论类型 |
|---|---|
| KCC | 控制论 + 排队论 + 流体动力学 |
| BBR | 基于测量的启发式 |
| COPA | 凸优化 / 马尔可夫决策 |
| PCC | 无模型在线学习 |
| DCTCP | ECN 比例反馈控制 |
| CTCP | 双组件混合启发式 |
| CUBIC | 丢包事件驱动的非线性启发式 |
| Reno | 丢包事件驱动的线性启发式 |