PCC Vivace: Online-Learning Congestion Control

原文在这里,是一篇2018年的NSDI。

Vivace的对手

PCC Vivace结合了一篇2015年NSDI的PCC[1]的基本框架,以及机器学习中online convex optimization的原理[2],通过调整发送端速率的调整方向、调整步长和调整阈值,来解决网络的拥塞控制问题。

这篇论文作为拥塞控制问题的解决办法之一,在Introduction段就击中了上一篇文章讲到的Remy[3]的痛点——无法自适应不同的网络应用场景。

论文也将BBR[4]作为主要的对比对象之一。BBR采用白盒的网络建模方式,假设网络环境已知;而PCC Vivace使用黑盒方法,感知网络在给出某发送速率之后的表现,从而调整发送速率。Dong实验发现,一方面,在网络达到稳定收敛的状态后,BBR仍表现出较大的比特率抖动和较高的丢包率。另一方面,和Remy一样,一旦建模的网络环境和真实的网络环境相差很大,算法的性能就会遭受严重的损失。

另外,论文特别提到了另一个对比对象,Sprout[5]。Sprout是一篇2013年的NSDI,使用随机森林的方法达到蜂窝网络下的高吞吐量和低延迟。Dong承认在蜂窝网络的场景下Sprout比Vivace表现更好,但表示Vivace的目标是一种更普适的拥塞控制算法,不会局限于某一种特定的网络场景。

Vivace的效用方程

Vivace将时间切割成连续的 MI (Monitor Intervals)。每个MI结束时,发送端i就用下面的效用方程把MI时段观察的数据转换为效用值 u

Fig.1 Vivace的效用方程

其中0<t<1,b>=0,c>0,xi是发送端 i 的发送速率,Li 是所观察到的丢包率,式子的第二项是这段 MI 所观察到的 “RTT梯度” 。总体来说,效用值在吞吐量上升时得到奖励,在RTT和loss上升时受到惩罚。

Vivace的四个Theorem

Theorem1

Theorem1: 考虑一个网络模型中,有n个同构sender同时竞争一个带FIFO队列缓冲的瓶颈链路,网络收敛时,每个sender发送速率都相等

Theorem2

理想情况下,网络收敛时,latency不会超过base RTT,i.e.,没有使用链路缓冲时的RTT。因此第二个theorem得出了达到这种理想情况对参数b的要求。

假设C为瓶颈链路的容量,当b满足下面的不等式时,网络稳定时delay不超过base RTT:

Fig.2 b需满足的条件

Theorem3

p-loss-resilient:这个协议不降低发送速率时,最多能忍受p的随机loss(一旦随机loss超过p就要求降低发送速率)

要使Vivace能承受p-loss-resilient,则需要设置效用方程的第三项中的参数c满足:

然而要忍受更多的随机loss是有代价的。为了简化,下面设置b=0(即效用方程的计算只依赖loss)。

在一个有n个Vivace sender的系统中,每个sender要达到p-loss-resilient,则处于平衡状态的每个sender i 的丢包率L满足:

Fig.3 p,L,n的关系

Theorem4

上面的三条theorem都是讨论的同构的sender,这一条是关于异构sender的情况。异构senders通常需要考虑的就是资源分配的问题。举一个详细的例子,效用公式如下:

Fig.4 基于loss的效用公式的例子

假定n个Vivace senders共用链路容量为C的瓶颈链路,各个sender被分配的资源总和为C。

若每个sender的损失惩罚系数c设置如下,则链路最终收敛到各sender被分配的资源总和为C。

Vivace的比特率控制算法

(鉴于公式字符过于复杂,这里不详细列出每个字符了)

总的来说,每次计算新的发送比特率时,都会先给定一个小的差值,计算上次比特率加减差值的两个效用方程的值,两效用值相减再除以二倍差值就是比特率在此时的梯度(也就是导数)。Vivace算法通过控制这个梯度的值来控制比特率的变化程度。新的比特率=上一次比特率+梯度

首先,Vivace给这个梯度设置了一个信心放大器。顾名思义,比特率连续朝同一个方向改变的次数多了,那步子就可以迈大一点,即增加梯度。

其次,Vivace给步长设置了一个动态阈值(毕竟步子迈大了容易***),一旦这次计算的梯度超出了此时的阈值,那就把阈值拉高一点点;一旦没超过,但比特率仍朝着同一个方向前进,那就把阈值拉回比这次计算的梯度多一点点的地方等它下次争取超过;一旦比特率连变化方向都变了,那直接把阈值设为0,哪怕你之前腿比维密模还长都得全砍了。

总结

Vivace的大体思路如上,但论文中分loss和delay进行了实现和对比,实验细节详见论文本文。


  1. https://www.usenix.org/system/files/conference/nsdi15/nsdi15-paper-dong.pdf

  2. http://ocobook.cs.princeton.edu/OCObook.pdf

  3. https://dl.acm.org/citation.cfm?id=2486020

  4. https://dl.acm.org/citation.cfm?id=3022184

  5. http://inat.lcs.mit.edu/papers/nsdi13-sprout.pdf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354