论文阅读笔记——拥塞控制算法PCC Vivace
目录
- PCC Vivace 阅读笔记
- PCC和BBR都是垃圾!
- PCC Vivace vs. PCC Allegro
- Allegro 为什么垃圾?
- Vivace 为什么比较牛逼?
- 小结
- Vivace 的目标函数框架
- 小结
- Vivace如何与传统TCP进行交互?
- 总结
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都是垃圾!
- 他们既无法很好地优化时延,也无法很好地在收敛速度及稳定性上进行平衡。特别地,BBR在收敛的过程中速率波动很大,而且丢包率很高;而PCC收敛的速度太慢了。
- BBR对网络进行了建模,当实际网络不同于模型时,BBR的性能非常差。
- 他们都对TCP不是很友好(尽管BBR在设计的时候是想要对TCP友好的(= =!))
PCC Vivace vs. PCC Allegro
Vivace和Allegro一样都使用了目标函数和一个速率学习控制算法,不过在Vivace中,这两者的实现都与Allegro不同。
Allegro 为什么垃圾?
- Allegro对目标函数的选择是胡乱拼凑的,没有深厚的理论依据。而且多个使用不同目标函数的Allegro流会发生什么样的碰撞只有天知道。
- Allegro的步长也是瞎选的。凸优化中的步长选择是十分重要的。步长太小会导致收敛太慢,步长太大会导致震荡甚至发散。
Vivace 为什么比较牛逼?
- Vivace使用了一个新的学习框架来保证多个Vivace流可以收敛到有一个公平和有效率的状态。
- Vivace使用了一个基于梯度的no-regret在线优化算法来调整发送速率,它会计算步长。
- 注:什么是一个“no-regret”的速率控制协议?
“no-regret”的速率控制协议(如Vivace)保证了其对发送速率的选择不会降低目标函数。
- No-regret在所有网络状态中为各个发送者提供了一个性能保证(即使在非常动态的网络环境中,或者敌对的环境中)
- No-regret为多个Vivace流如何交互提供了一个理论支持。
小结
- Vivace结合了时延,解决了Allegro无法解决的bufferbloat问题;
- Vivace可以让多个异构发送者(不同目标函数)进行有效交互;
- Vivace对TCP更加友好;
- Vivace收敛更快;
- Vivace对动态网络反应更加迅速
Vivace 的目标函数框架
Vivace使用了与Allegro不同的目标函数框架,如下列公式所示:
u(xi,d(RTTi)dT,Li)=xit−bxid(RTTi)dT−cxi∗Liu(x_i, \frac {d(RTT_i)} {dT}, L_i) = x^t_i - bx_i \frac {d(RTT_i)} {dT} - cx_i * L_i u(xi,dTd(RTTi),Li)=xit−bxidTd(RTTi)−cxi∗Li
其中,t,b,c都是常数。该目标函数的第一项为发送速率的幂次方,第二项为RTT梯度的比例项,第三项为丢包率的比例项。
相比Allegro而言,可以看到,Vivace在目标函数中考虑了时延(第二项)。
- 注:为什么在这里要使用RTT的梯度,而不是RTT的值呢?
考虑以下例子:一个拥有较大缓存的发送者在第一个MI中以2倍于链路带宽的速率发送报文,并且在第二个MI中以一个稍低一点的速率发送。如果使用RTT的值作为目标函数的项,那么发送者在这两个MI中的目标函数值应该都没什么区别,尽管降低发送速率是一个较优的选择。
小结
使用该目标函数保证了多个Vivace流可以平均共享同一个链路,并且,可以使得他们的RTT是最小的。
该目标函数可以在随机丢包和收敛速度之间进行有效均衡。
Vivace如何与传统TCP进行交互?
对于一个新的拥塞控制框架来说,一个重要的要求是能够与TCP(如CUBIC)和平共处。然而,对TCP友好这一要求通常与取得更好的性能是相悖的。任何基于丢包的协议都无法在取得高性能的同时能与TCP和平共处。我们最多只能希望它没有过度挤压TCP。另一方面,更糟糕的是,基于时延的协议几乎无法在与TCP的竞争中胜出,它完全被TCP搞炸了!
那么问题来了,是否存在一种优化时延的能与TCP和平共处的速率控制协议?本文作者认为,Vivace朝着这个目标迈出了重要一步。例如,当链路中的流都是Vivace时,Vivace能够实现最低延时;当链路中充满了TCP流时,Vivace目标函数中的时延梯度项几乎为0,因此Vivace也忽略了时延,从而可以与TCP进行竞争。
总结
Vivace将机器学习的凸优化和控制论结合到网络中的拥塞控制中。甭管当前的网络状态是啥,反正我只要实现我的目标函数最大就好。毕竟我的目标函数的选择是有理论支撑的,我能保证我取的这个目标函数能同时保证我的效率最高,同时不会影响到其他人。
Vivace牛逼!
论文阅读笔记——拥塞控制算法PCC Vivace相关推荐
- 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...
- DnCNN论文阅读笔记【MATLAB】
DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...
- Learning Multiview 3D point Cloud Registration论文阅读笔记
Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...
- FCGF论文阅读笔记
FCGF论文阅读笔记 0. Abstract 从三维点云或者扫描帧中提取出几何特征是许多任务例如配准,场景重建等的第一步.现有的领先的方法都是将low-level的特征作为输入,或者在有限的感受野上提 ...
- PointConv论文阅读笔记
PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...
- DCP(Deep Closest Point)论文阅读笔记以及详析
DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...
- 2019 sample-free(样本不平衡)目标检测论文阅读笔记
点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...
- keras cnn注意力机制_2019 SSA-CNN(自注意力机制)目标检测算法论文阅读笔记
背景 <SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection>是2019 的工作,其作者来自于南洋理工.这篇文章主要是做 ...
- ResNet 论文阅读笔记
ResNet 论文阅读笔记 #机器学习/深度学习 文章介绍 论文地址:https://arxiv.org/pdf/1512.03385.pdf 原文题目:Deep Residual Learning ...
- LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记)
LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记) 环形扫描骨干网络.动态漂移.一致性驱动的融合 一.重点内容 ...
最新文章
- 京东 | AI人才联合培养计划!
- 绑定域名_[云丰网]如何绑定第三方购买的域名?
- git 在拉取代码的时候connect 谷歌报错_工具 | 手把手教你在VSCode中使用Git
- 语音识别1: 音频信号采集、并存入 wav文件
- python做作业没头绪_使用Python做作业
- 网络爬虫--抓取图片_vortex_新浪博客
- C99的新关键字_Bool
- FFmpeg总结(八)windows下用ffmpeg获取视频缩略图
- SpaceEmacs Rock Day2 学习笔记
- 计算机网络应用平面设计广告设计,互联网时代平面广告设计
- MEM专业学位论文选题与研究设计
- 计算机专业设计(论文)内容及要求,计算机专业毕业设计要求.doc
- typecho添加html5视频播放器,Typecho音乐播放器插件AudioPlayer1.2.6更新
- 网络存储服务器接显示器,Unraid下,单核显IGPU实现win10外接显示屏,显卡成功驱动...
- 开启加盟模式,喜茶能否借此越过山丘?
- Logging 之root 打印器来捣乱
- 谷歌EfficientNet高效卷积网络的学习和使用
- 3 步完全掌握 LoRaWAN Server,让你拥有自己的物联网
- Oracle查询语句及实例
- ASPICE系列:顺利通过ASPICE流程软件单元验证(SWE.4)
热门文章
- 多面集的表示定理的必要性的证明
- 文件服务器 测试,python-文件服务器测试
- Raki的读paper小记:How to Fine-Tune BERT for Text Classification?
- Mybatis常见的面试题
- linux shell捕获异常,shell脚本中如何获取错误输出
- mysql 更新删除数据,MYSQL数据的插入、删除、更新
- hadoop ha环境下的datanode启动报错java.lang.NumberFormatException: For input string: 10m
- 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因
- 使用Java实现面向对象编程(6)
- 列表左右移动 2017-03-23