拥塞控制算法之Verus (2015 Sigcomm)

来源:互联网 发布:工业企业数据库 编辑:程序博客网 时间:2024/05/20 19:17

这两天重读了一下2015 Sigcomm的一篇拥塞控制文章: Verus。整理如下:


MOTIVATION:

Veurs想要解决的问题:在复杂多变的无线网络环境下的拥塞控制。蜂窝无线网络具有难以预测的特性[3][4][5],并且传统的TCP在其中表现并不好[1][2],会造成bufferbloat现象[6][7]。文中指出,对于无线信道的不可预测性,主要由三大特点决定:

第一个,是由于用户与基站之间的状态可能会在短时间内经历复杂变换,影响蜂窝信道的可用性[1];第二,在蜂窝网络中使用的调度算法会造成突发,并且文章亲自测试了蜂窝网络的突发性,发现在收端观测到的具有代表性的流量特点,包括带宽、突发尺寸和到达间隔,这些都是突发性的,如图1和图2;第三,之前的工作认为在蜂窝网络中引起时延主要的因素是自己造成的排队时延[2],但是本文发现竞争流同样会影响端到端时延特性,尤其是在网络近乎饱和的情况下,如图3,显示了在一个10Mbps的数据流2分别开关的情况下数据流1的平均时延。最后呢,设备移动的问题会使这些问题更加严重。


蜂窝网络信道内在的不可预测性再加上蜂窝网络组件间复杂的交互,使简单的信道预测模型无法追踪信道的变化,这也是Veurs的motivation。


ALGORITHM:

与通常的拥塞控制不同,Verus没有为网络设定拥塞信号,而是使用时延变化量去学习出一个网络时延与最大可发送数据量的映射(delay profile)。

它借鉴了传统TCP协议中慢启动(slow start)和加速递减(multiplicative decrease)的部分,只是改变了保持发送窗口的方法。与传统TCP在拥塞避免阶段每个窗口加1的做法不同的是,Verus每ε毫秒改变一次发送窗口,且加减的速度更快。其核心公式如下:

                                                                  

W(t + 1)是下一次的发送窗口大小,f正是我们所说的delay profile,d(t)是网络时延,δ(t)是时延的增减量。Verus的delay profile通过以下四个方面建立:

  • 时延评估:使用ACK返回的时延测量估测RTT。
  • Delay profile:追踪时延与最大可用发送窗口的关系。
  • 窗口评估:根据时延评估和配置文件,评估发送窗口。
  • 丢包处理:在遇到丢包时乘性减小发送窗口。

算法过程可以总结如下:先在每个阶段收集并记录每个包的往返时延Dp,i(表示在第i个epoch中第p个包的RTT,所有的Dp,i都会记录在delayprofile中)。再使用指数权重移动平均(EWMA)表示该epoch中时延的最大值:

                                                      

并计算相邻epoch中Dmax,i的差值ΔDi。根据ΔDi的符号,我们使用下式调整期待的网络时延Dest, i+1

                                                 

Verus直接依据Dest; i+1在delay profile中选取对应的发送窗口来作为接下来的窗口大小,以此达到适应网络变化的目的。


IMPLEMENTATION:

Delay profile的初始化及维护:

Delay profile的初始化完成与Verus的慢启动阶段,与TCP的慢启动相同。同时会存储下每个包的发送时间戳和发送窗口大小,以此计算RTT和时延-窗口对应关系。等到慢启动过程结束后(检测到丢包或者RTT超过阈值),便会有很多这样的元组,再用内插法构建Delay profile。

在后期的更新中,每当Verus收到一个ACK,这个ACK的发送窗口对应的时延值会被新的RTT替代。再以固定的时间间隔进行内插曲线,达到更新Delay profile的目的。

超时和重传:

超时计时器主要用于鉴别丢包:当一个序列号缺失时,Verus会开始计时,如果超过三倍时延还没有等到缺失的包,则认为丢包,降低发送窗口并重传该包。


SUMMARIZATION:

在无线网络中,网络环境的实时变化是所有拥塞控制研究人员都想克服的问题。Verus里解决这个问题的思路就比较值得借鉴:将算法的适应分成短期和长期两个部分,短期中每ε毫秒作为一个调整窗口的epoch,长期调整中使用拟合曲线去适应长期变化。这样既可以解决突发改变,也可以适应长期的网络环境变化。

Verus里比较明显的缺点就是检测到丢包时倍数较少发送窗口,这在网络环境恶劣、链路丢包率较高的时候带宽利用率会大幅下降。但Verus的TCP友好性也是因为这个机制做到的,算是它的一个内在缺陷。



Reference:

[1]J. Huang, F. Qian, Y. Guo, Y.Zhou, Q. Xu, Z. M. Mao, S. Sen, and O. Spatscheck. An in-depth study of LTE:e_ect of network protocol and application behavior on performance. In ACMSIGCOMM 2013 Conference, Hong Kong, China, August 12-16 2013.

[2] K. Winstein, A.Sivaraman, and H. Balakrishnan. Stochastic forecasts achieve high throughputand low delay over cellular networks. In Proceedings of the 10th USENIXconference on Networked Systems Design and Implementation, 2013.

[3] T. Ekman. Prediction of MobileRadio Channels Modeling and Design. PhD thesis, Signals and Systems, UppsalaUniversity, Sweden, 2002.

[4] W. Lum Tan, F. Lam, and W.Cheong Lau. An Empirical Study on 3G Network Capacity and Performance. In Proceedingsof the 26th IEEE International Conference on Computer Communications. INFOCOM2007., May 2007.

[5] R. Schoenen, A. Otyakmaz, andZ. Xu. Resource Allocation and Scheduling in FDD Multihop Cellular Systems. In ICCWorkshops 2009. IEEE International Conference on, pages 1{6, June 2009.

[6] J. Gettys. Bufferbloat: DarkBuffers in the Internet. Internet Computing, IEEE, 15(3), May 2011.

[7] H. Jiang, Y. Wang, K. Lee,and I. Rhee. Tackling Bufferbloat in 3G/4G Networks. In Proceedings of the ACMConference on Internet Measurement Conference (IMC), 2012.








原创粉丝点击