TCP ex Machina: Computer-Generated Congestion Control

注意:本文仅代表个人对该篇论文的理解,如果对您有帮助那是我的荣幸,如有不当之处欢迎留言讨论,如需转发请注明出处链接


    原文在这里,是MIT AI Lab在13年中的一篇SIGCOMM。

Remy 与 RemyCC

        首先,这篇论文所探究的问题最近也正困扰着我:TCP拥塞控制本身是一个动态的过程,每一步的选择都可能造成后面所有反馈的不同,如何能判定一个拥塞控制是“表现得最好”的?

        于是这篇论文的解决办法是:既然人看不出好不好,那就用机器预先算出给定网络里每个决策可能造成的所有后果,选最终评分最高的,把它一路过来的所有决策用来生成一个CC,那肯定就是“表现得最好的”。

        因此,Winstein和Balakrishnan设计了Remy算法来算出不同参数的拥塞控制策略产生的结果,细化较优结果的参数进行优化,经过几轮迭代后,用生成最优结果的所有决策生成最优CC,就是RemyCC


Fig.1 Remy Design


Remy的输入

        Fig.1 展示了Remy的大致流程,其中第一个输入是网络的先验假设,也就是把网络参数化。作者用ns-2进行网络环境的模拟,具体设置的参数包括:

                · 瓶颈链路的速度: bitrate / bandwidth

                · 网络路径传输延迟:rtt / queueing delay

                · 多路复用的程度: number of senders

        第二个输入是发送端的流量发送模型。Remy建模时把流量变化过程看作很多对独立的sender-receiver链路随机开/关的过程,每条链路开的持续时间遵循特定的分布。

        第三个输入是目标方程。用于计算给某链路分配资源的得分。其中x代表链路比特率,alpha和beta代表throughput和delay的权衡,权重表示对其赋予的重要性。

Fig.2 The Flow's Score
Fig.3 Basic Object Function


Remy寻找最佳拥塞控制策略的过程

一些概念

        Remy把在特定网络环境下寻找最佳RemyCC的过程看作为一个Dec-POMDP搜索最佳策略的过程。对于端到端的拥塞控制来说,每一个时间点,agent根据接收的observation,做出调整拥塞窗口的action。

        作者把sender端的observation用三个参数来表示,统称memory

                · ack_ewma:ack的到达间隔的指数加权移动平均值

                · send_ewma:ack的发送间隔的指数加权移动平均值

                · rtt_ratio:最新RTT除以最小RTT

        把sender端的action(控制拥塞窗口大小)也用三个参数来表示:

                · m >= 0:cwnd的乘系数

                · b:cwnd的加系数(可为负数)

                · r > 0:连续发送的最小间隔时间,单位mm

        把一条memory映射到一条action的过程称为一条rule。一个完整的拥塞控制策略由很多条rule构成,即一张rule table。Remy的自动搜索过程就是用贪心算法建立和优化这张rule table的过程。

Remy的自动设计过程

        初始action: m=1, b=1, r=0.01。所有的memory都指向该action,作为rule table的所有初始rule。

        rule table的优化过程:

            1.设置所有rule的epoch为current epoch

            2.用current rule table构建一个CC,放入建模的网络中运行,找到current epoch下使用次数最多的rule(这一步主要是找到放入的网络trace中出现频率最高的memory);都没用,转4

            3.针对2找到的rule搜索最佳action:计算最接近原本action的约100种action(e.g. 对r来说,r+-0.01, r+-0.08, r+-0.64...),抽取16种网络的traces,把调整后的action应用到所有的sender,再仿真。若某种调整后的action表现出优化,替换原本的action并重复搜索过程,使用相同的random seed;若没有action表现出优化(说明对这条memory已经找到了最优的action),这条rule的epoch++,转回2

            4.如果遍历完current epoch下所有的rule,current epoch++。若新的current epoch是K的倍数,转5;否则转1。(K代表迭代的轮数,用于控制算法优化的时间)

            5.recall:每条rule代表的是从一个三维长方体的memory空间到一个action的一个映射。这一步里,找到表中最多使用的rule,以及触发这条rule的memory中间值(每一维一个),产生八个新的memory(每一维一个,就想象成包裹着中间值点的一个正方体的八个顶点)赋予和中间值同样的action,然后转1.

        整个算法流程至此结束。算法理解起来需要一定的时间,但如果动手跟着步骤画一下rule table的建立和优化过程,就能形象的理解了。


Remy算法的一些问题

        首先,同论文里作者也发现的一样,用Remy搜索找到的最佳RemyCC,当把它用于和生成RemyCC时使用的网络相似的网络上时,效果当然非常不错,但一旦用于不同类型网络时,效果就不太如意了。这里当然是因为RemyCC只能预测它所见过的网络的最优决策,一旦遇到没见过的网络,RemyCC仍使用本身的预见方法来应对,这显然是不够灵活的。

        其次,是个人的一个发现。算法的第二步里,找current epoch里使用次数最多的rule这一步,比较冗余,而且增加算法时间复杂度。原因是,既然你要遍历整个rule table,何须找使用次数最多的?直接从头开始不会比较快吗?因此个人认为不需要找使用最多的rule这一步骤。

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

推荐阅读更多精彩内容

  • 本篇文章主要是从运输层协议概述、UDP、TCP、可靠传输的工作原理、TCP首部格式、TCP可靠传输的实现、TCP流...
    SeanMa阅读 3,856评论 2 13
  • RTO(Retransmission TimeOut)即重传超时时间 TCP超时与重传中一个最重要的部分是对一个给...
    郭嘉先生阅读 12,062评论 0 5
  • 前言 这篇文章是整个读书总结系列的最后一篇,有关TCP我想总结的内容都会在这篇文章结束。当然这并不是TCP的全部,...
    Noskthing阅读 2,063评论 1 27
  • 思: 夜黑早醒却无眠, 清明在外独望天, 只是遥想烟云事, 不觉泪下已潸然。
    云之憾阅读 82评论 0 1
  • 这是个电影《危城》做的分场记录和评论, 第一场,江疏影带着小孩子们去到一个地方吃饭,这是代表着难民身份一个切入方式...
    武束衣阅读 485评论 0 0