周报
由于基于send_rate解决拥塞控制,其本质仍然是通过映射到cwnd,所以在决赛的仿真环境中,在效果上基于cwnd远优于基于send_rate的算法.本周主要解决了3个问题:
- 网络抖动.之前找到的核心问题网络抖动是影响本次比赛得分的核心,通过实验发现,下降沿即使将cwnd降低为1,网络仍会拥塞,因为重传包占据了数据传输大部分带宽,对最终结果影响不大,其最大的作用就是解决抖动的遗留问题,影响得分最大的是上升沿需要尽快的提升发送窗口,所以通过规则识别出下降沿和上升沿,通过除7或者乘7的方式迅速调整,并解决这个问题.
- cwnd抖动.在网络带宽非剧烈变化的情况下,由于rtt的滞后性,导致cwnd周期性的上升和下降(cwnd和rtt呈正弦趋势变化,且不同步,cwnd早于rtt),剧烈的波动会导致,cwnd在最高点时,增加重传包的压力,cwnd在最低点时,降低链路的传输效率,所以最优的效果是降低cwnd变化的振幅,可以通过当前已经发送但未收到确认包的数目(inflight,相对于rtt,其可以提前反映拥塞)来降低rtt滞后性的消极影响.当rtt在可控范围内时,默认规则,cwnd会逐渐增大,当cwnd无脑增大时,此时有2种原因,第一rtt滞后性,拥塞包还没有反馈到rtt的数值上进而作用cwnd降低,第二种就是带宽瞬间提高,通过inflight判断cwnd增大且rtt保持在可控范围内是因为带宽增大还是因为rtt滞后,如果因为是rtt滞后,则立即停止cwnd增长,等待rtt增大后对cwnd进行下降调节,使cwnd限制在一定范围内,降低cwnd的剧烈起伏,进而提高传输效率.
- 算法鲁棒性.由于真实环境中的随机丢包率和base_rtt一直是未知,现有算法,发生丢包后,cwnd将会降低,所以随机丢包率增加,将会使cwnd保持在一个很保守的范围内,所以降低了由于丢包对cwnd的影响,进而尽可能通过rtt和inflight对cwnd进行调整.base_rtt是目前我们算法的核心,我们只要是