和性增长/乘性降低

和性增长/乘性降低(英語:additive-increase/multiplicative-decreaseAIMD)算法是一个反馈控制算法,最广为人知的用途是在TCP拥塞控制。AIMD将拥塞窗口的线性增长与监测到拥塞时的指数降低相结合。使用AIMD拥塞控制的多个流将最终收敛到使用等量的共享链路[1]。乘性增长/乘性降低(MIMD)和加性增长/加性降低(AIAD)的相关方案无法达到稳定。

算法 编辑

采取的方法是增加传输速率(窗口大小),探测可用带宽,直到发生丢包。加性增长的策略例如可以在每个往返时间将拥塞窗口增长固定量。当检测到拥塞时,发送方将传输速率降低一个乘数;例如,数据丢失发生时将拥塞窗口降低到一半。结果是锯齿形的,体现带宽的探测。

AIMD需要二进制的拥塞信号。丢包通常充当了最常见的拥塞信号。当超时或确认消息指示数据包丢失时,触发乘性降低。有一些网络内机制可以像显式拥塞通知(ECN)中那样标记拥塞(不丢弃数据包)。

w(t)为时间t内的发送速率(如拥塞窗口),a( )是加性增长参数,而b )是可乘的降低因子。

在TCP慢启动后,加性增长参数a通常为每个RTT一个MSS,而乘积减小因子b通常为1/2。

协议 编辑

AIMD拥塞控制用于或曾经用于:

相关链接 编辑

参考文献 编辑

  1. ^ Chiu, Dah-Ming; Raj Jain. Analysis of increase and decrease algorithms for congestion avoidance in computer networks. Computer Networks and ISDN systems. 1989, 17: 1–14. 
  2. ^ Chiu, Dah-Ming; Raj Jain. Analysis of increase and decrease algorithms for congestion avoidance in computer networks. Computer Networks and ISDN systems. 1989, 17: 1–14. 
  3. ^ Floyd. 4341: RFC Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control. [2020-02-25]. (原始内容存档于2020-10-19).