AIMD在本质上属于自适应控制理论、信号处理/反馈系统、和系统调度/优化算法领域。它通过对系统反馈的动态响应调整资源分配(比如网络带宽、内存容量、速率上限),以实现系统的稳定和高效,而不是直接通过对观测数据做数理统计分析/推断。在实际系统中,AIMD可能会用到统计学方法提供的观测数据,比如滑动平均后的RTT、丢包率、命中率等——但算法自身是调控逻辑而非统计结论。很多操作系统、网络协议的“反馈信号”本身来自于统计数据(如一段时间丢包率、平均延迟),AIMD用这些作为判断是否“线性增/EWMA减”或“乘性退”的触发点。
其核心操作包括两部分:
Additive Increase(加性增大)
每收到“系统正常”的反馈时,就线性递增速率/资源分配。例如每个时钟周期增加一个固定单位(+α)。
使资源利用率逐步大幅度提升。
Multiplicative Decrease(乘性减小)
一旦检测到“系统过载/拥塞”反馈(如丢包、延迟骤增),就按比例快速减小速率/资源分配(如减半,×β, β<1)。
能迅速响应避免系统崩溃。
简化公式描述:
网络正常:W = W + a
检测到拥塞:W = W * b(常用b=0.5)
最经典的应用——TCP拥塞控制
内核后台回收速率调节:如Linux的kswapd自适应扫描频率。
Token Bucket或带宽分配:负载正常时逐步“发放”令牌,拥塞丢包时自动按比例回收。