论文阅读笔记——拥塞控制算法PCC Vivace

PCC Vivace 阅读笔记

本文是关于NSDI '18论文《PCC Vivace: Online-Learning Congestion Control》的阅读笔记。

受机器学习中的在线(凸)优化启发,本文作者设计了Vivace,一个新型的速率控制协议。该协议是对之前作者提出的PCC框架的改进版本(NSDI '15论文《PCC: Re-architecting Congestion Control for Consistent High Performance》(见笔者上一篇阅读笔记))。

注:下文以Allegro代指之前提出的PCC算法(NSDI '15)。

PCC和BBR都是垃圾!

  1. 他们既无法很好地优化时延,也无法很好地在收敛速度及稳定性上进行平衡。特别地,BBR在收敛的过程中速率波动很大,而且丢包率很高;而PCC收敛的速度太慢了。
  2. BBR对网络进行了建模,当实际网络不同于模型时,BBR的性能非常差。
  3. 他们都对TCP不是很友好(尽管BBR在设计的时候是想要对TCP友好的(= =!))

PCC Vivace vs. PCC Allegro

Vivace和Allegro一样都使用了目标函数和一个速率学习控制算法,不过在Vivace中,这两者的实现都与Allegro不同。

Allegro 为什么垃圾?

  1. Allegro对目标函数的选择是胡乱拼凑的,没有深厚的理论依据。而且多个使用不同目标函数的Allegro流会发生什么样的碰撞只有天知道。
  2. Allegro的步长也是瞎选的。凸优化中的步长选择是十分重要的。步长太小会导致收敛太慢,步长太大会导致震荡甚至发散。

Vivace 为什么比较牛逼?

  1. Vivace使用了一个新的学习框架来保证多个Vivace流可以收敛到有一个公平和有效率的状态。
  2. Vivace使用了一个基于梯度的no-regret在线优化算法来调整发送速率,它会计算步长。
  • :什么是一个“no-regret”的速率控制协议?
    “no-regret”的速率控制协议(如Vivace)保证了其对发送速率的选择不会降低目标函数。
  1. No-regret在所有网络状态中为各个发送者提供了一个性能保证(即使在非常动态的网络环境中,或者敌对的环境中)
  2. No-regret为多个Vivace流如何交互提供了一个理论支持。

小结

  1. Vivace结合了时延,解决了Allegro无法解决的bufferbloat问题;
  2. Vivace可以让多个异构发送者(不同目标函数)进行有效交互;
  3. Vivace对TCP更加友好;
  4. Vivace收敛更快;
  5. Vivace对动态网络反应更加迅速

Vivace 的目标函数框架

Vivace使用了与Allegro不同的目标函数框架,如下列公式所示:

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值