Custard拥塞控制算法论文解读

该论文的全称为“Internet Congestion Control via Deep Reinforcement
Learning”,收录于NIPS 2018。

该论文提出了一个新的拥塞控制算法,并命名为了Custard(CUSTomized And Robust Decision)。

启示

拥塞控制协议设计分类

拥塞控制协议的设计主要分为两类:

  • 针对于某一特定的网络环境预先设定好的一类网络环境进行的协议的设计或者自动生成。例如移动网络、卫星网络、数据中心网络等等。
  • 针对于更加通用的网络环境进行的设计,例如Pantheon平台中就预置的PCC(Performance-oriented Congestion Control)拥塞控制算法。

尽管当网络环境符合前置的假设时,第一类的拥塞控制协议可能拥有更高的性能和表现,但是当环境不符合时,它们的表现也往往会更差。当然,有时通用的设计也可能在特定的网络环境下表现优于针对该网络环境所设计的特定的拥塞控制协议。

强化学习应用于拥塞控制的本质

Agent

在网络数据传输中,发送者即为强化学习中的代理人(Agent)。

Action

在网络数据传输中,动作(Action)即为针对数据发送速率的调整。

主要思想

一些参数

Monitor Intervals

MIs, 时间被分割成连续的间隔,定义每一个间隔的开始时刻为MIt.

Sending Rate

在时刻t的发送速率定义为x_{t},在整个间隔中是固定的。

State

State使用发送速率以及一些统计数据进行表示,我们使用v_{t}来表示时刻t时的状态向量。决定State的参数有:

  • 在间隔MI中的发送速率。
  • 平均接收速率。
  • 丢包率。
  • 平均时延。
  • 时延梯度。
  • 回报(Reward)。

由此,时刻t的状态被表示为s_{t},其计算方式为:
s_{t}=(v_{t-(k+d),\cdots,v_{t-d}})
对于一个前置的参数k>0和一个小数d表示发送速率和收集结果之间的延迟。

训练过程

神经网络的引入

使用了一个含隐层的神经网络将输入(状态向量)s_{t}映射成为输出(对于发送数据的改变)a_{t}实验表明即使是一个结构十分简单的神经网络,即一个全连接网络,也能表现得非常好。

决策函数的更新

使用以下公式对决策函数进行更新:
x_{t}=x_{t-1}\times (1+\alpha a_{t})
其中,\alpha是一个规则化参数。

网络环境

使用了四个不同的网络环境进行了训练,它们仅仅在传输容量和延迟上有区别。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:RFC3550 RTP 中文版 英文版原文:RFC3550英文版 - RTP: A Transport ...
    云上听风阅读 13,348评论 0 13
  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,462评论 0 2
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,547评论 0 6
  • 前言 这篇文章是整个读书总结系列的最后一篇,有关TCP我想总结的内容都会在这篇文章结束。当然这并不是TCP的全部,...
    Noskthing阅读 2,130评论 1 27
  • 回念轮回三世三年三月三天, 凌晨的每颗星星都羞于显现。 错的过去的每天, 在入夜时...
    喵玄机阅读 325评论 0 7