- Author:
Junchen Jiang
(CMU,Computer Science at The University of Chicago AP) Video Streaming, real-time
摘要:
Indigo是一种机器学习的拥塞控制方案,其设计我们从Pantheon收集的数据中提取.Pantheon的校准仿真器提供了一种替代方案:它们是可重现的,可以多次并行实例化。我们的高级策略是使用仿真器训练Indigo,然后使用Pantheon在现实世界中进行评估。
Pantheon通过提供公共基准,不断发展的数据集和校准模拟器来实现逼真的离线培训和测试,以实现近似逼真的离线培训和测试。
Indigo的概要:
Indigo做了两件核心的事情
- 1.它观察到网络状态.
- 2.它调整拥塞窗口.
允许的飞行数据包数量。每次收到ACK时都会发生观察,其效果是更新Indigo的内部状态,定义如下。 Indigo每10毫秒调整它拥塞窗口。状态向量是:
- 1.排队延迟的指数加权移动平均值(EWMA),测量为当前RTT和当前连接期间观察到的最小RTT之间的差值。
- 2.发送速率的指数加权移动平均值EWMA,定义为自上一个ACK发送数据包发送以来发送的字节数除以RTT。
- 3.接收速率的指数加权移动平均值EWMA,定义为自最近ACK确认分组传输之前的ACK以来接收的字节数除以相应的持续时间(类似于TCP,BBR的传送速率,并受其启发)。
- 4.当前的拥塞窗口大小。
- 5.前一步采取的行动。
Indigo把states到actions存储为一个mapping在LSTM内具有一层32个隐藏单元。Indigo需要一个训练阶段,其中粗略地说,它学习从状态到动作的映射。经过训练和部署后,此映射是固定的。
我们注意到可能有更好的参数选择:
- 隐藏单元的数量
- 动作空间
- 状态内容
我们发现上述选择已经取得了良好的性能;进一步改进是未来的工作。作为验证我们选择的一步,我们训练和
测试了几个版本的Indigo,在模拟网络上有一系列隐藏单元,从1到256;16到128之间的选择产生了良好的性能。
Indigo的训练阶段。 Indigo使用模仿学习来训练其神经网络。在较高的层次上,这有两个步骤:首先,我们生成一个或多个拥塞控制的理想化的算法,完美地映射状态以纠正行动,对应于要训练Indigo的网络链路。然后我们应用使用一个模仿学习的算法来生成训练数据。
当然,现实世界的路径不存在任何oracle。相反,我们生成对应于模拟路径的oracles;这是可能的,因为Pantheon的仿真器参数很少。通过oracle的定义,如果我们知道给定链路的理想拥塞窗口,我们就有链接的oracle对于任何状态,输出哪个动作导致最接近理想值的拥塞窗口。
一个关键的insight是,对于模拟链接,我们可以非常接近理想的拥塞窗口。对于具有固定带宽和最小单向延迟的简单链路,理想窗口由链路的 每个流的带宽延迟乘积(BDP) 给出。对于校准仿真器(具有DropTail队列,丢失等),计算BDP然后在仿真中搜索该值附近以找到最佳的固定拥塞窗口大小。
在产生每个训练链接相对应的拥塞控制oracle之后,我们使用称为DAgger的最先进的模仿学习算法来训练神经网络。对于每个训练链接,DAgger按如下方式训练Indigo的神经网络:首先,它允许神经网络在训练链路的仿真器上做出一系列拥塞控制决策,记录导致每个决策的状态向量。接下来,它使用拥塞控制oracle来标记与每个记录的状态向量相对应的正确动作。最后,它通过使用生成的状态动作映射作为训练数据来更新神经网络。重复该过程直到进一步训练不改变神经网络。
Indigo的表现:
在本节中,我们将Indigo的性能与其他拥塞控制方案的性能进行了比较,并且评估了Pantheon校准仿真器对性能的影响,而不仅仅是对固定带宽,固定延迟仿真器的培训。
我们在24个合成仿真器上训练Indigo,这些仿真器与Pantheon的真实网络路径和校准模拟器无关。合成仿真器包括(5,10,20,50,100和200Mbps)链路速率和(10,20,40,80ms)最小单向延迟的所有组合,具有无限缓冲且无损耗。
Pantheon上的Indigo。我们发现Indigo始终如一地实现了良好的性能。图6将Indigo与两条有线路径上单流的其他方案进行了比较。在这两种情况下,Indigo都处于吞吐量/延迟权衡边界。
图7显示了Indigo在多流情况下的表现。图7a显示了所有Pantheon的拥塞控制方案在从印度到AWS India的有线路径上的性能; Indigo再次展现其在吞吐量延迟权衡上的前沿表现。图7b是来自图7a的一个试验的时域图,表明至少在某些情况下,Indigo公平共享。
校准仿真器的好处。图6和图7还描绘了Indigo的变体,“Indigo w / o calib”,其仅在合成仿真器上训练,但不在校准的仿真器上训练。在校准模拟器上训练的版本总是最好或更好。