我最近在Congestion Avoidance and Control上阅读了1988年的论文,并努力将缓慢启动与拥塞避免区分开来。
但是,有一点我不明白,关于丢失数据包后哪种算法运行。
1
的拥塞窗口开始。发生数据包丢失时,哪种算法优先?将cwnd
设置为1
还是设置为当前大小的一半?
答案 0 :(得分:3)
显然答案在同一篇论文的附录B中,我之前已经跳过了。
组合算法实际上维护了两个状态变量,cwnd
和ssthresh
。
当由于数据包丢失而发生超时时,变量ssthresh
设置为当前窗口大小的当前值的一半,cwnd
设置为1,然后使用慢启动达到该阈值(为每个收到的ACK添加一个窗口)。
一旦达到阈值,cwnd
将使用添加增加(每增加一个完整窗口增加一次)递增。