减少无线网络的延迟
麻省理工学院的研究人员为无线网络设计了一种拥塞控制方案,可以帮助减少延迟时间并提高视频流,视频聊天,移动游戏和其他Web服务的质量。
为了使Web服务保持平稳运行,拥塞控制方案根据来自网络路由器的反馈来推断有关网络带宽容量和拥塞的信息,该信息被编码在数据包中。该信息确定通过网络发送数据包的速度。
确定好的发送速率可能是一个艰难的平衡行为。发送者不想过于保守:如果网络的容量从每秒2兆字节不断变化到每秒500千字节,则发送者总是可以以最低速率发送流量。但是,例如,您的Netflix视频将不必要地质量低下。另一方面,如果发件人不断保持较高的速率,即使网络容量下降,它也可能使网络不堪重负,从而形成大量等待发送的数据包队列。排队的数据包可能会增加网络的延迟,从而导致您的Skype呼叫冻结。
在无线网络中,情况变得更加复杂,因为无线网络具有“时变链接”,并且容量变化迅速,不可预测。取决于各种因素,例如网络用户的数量,手机发射塔的位置,甚至周围的建筑物,容量可能会在几分之一秒内翻倍或降至零。在USENIX网络系统设计和实现研讨会上的一篇论文中,研究人员介绍了“加速制动控制”(ABC),这是一种简单的方案,可在时变链路上实现约50%的吞吐量提高和约一半的网络延迟。
该方案依赖于一种新颖的算法,该算法使路由器能够明确传达应流经网络的数据包数量,以避免拥塞,但可以充分利用网络。它通过重新利用互联网数据包中已有的一点来提供瓶颈的详细信息(例如,在信号塔和发送方之间排队的数据包)。研究人员已经在与移动网络运营商进行谈判以测试该方案。
“在蜂窝网络中,您的部分数据容量快速变化,从而导致服务滞后。传统计划太慢,无法适应这些变化。”第一作者,CSAIL研究生Prateesh Goyal说。“ ABC使用单个数据位提供有关这些变化的详细反馈,无论是上升还是下降。”
在纸上加入Goyal的是Anup Agarwal,他现在是卡内基·梅隆大学的研究生;拉维·内特拉瓦利(Ravi Netravali),现为加利福尼亚大学洛杉矶分校计算机科学系助理教授;麻省理工学院电气工程系(EECS)和CSAIL的副教授Mohammad Alizadeh;EECS的富士通教授Hari Balakrishnan。作者都是CSAIL网络和移动系统小组的成员。
实现明确控制
传统的拥塞控制方案依赖于数据包丢失或Internet数据包中单个“拥塞”位的信息来推断拥塞并减慢速度。诸如基站之类的路由器将标记该位,以警告发送方(例如,视频服务器)其发送的数据包在很长的队列中,表示拥塞。作为响应,发送方随后将通过发送更少的数据包来降低其速率。如果发送方在到达接收方之前检测到丢包的模式,它也会降低其速率。
为了提供有关网络路径上瓶颈链路的更多信息,研究人员提出了“显式”方案,该方案在数据包中包含指定当前速率的多个比特。但是这种方法将意味着彻底改变互联网发送数据的方式,并且事实证明无法部署。
“这是一项艰巨的任务,” Alizadeh说。“您必须对标准Internet协议(IP)进行侵入式更改,才能发送数据包。您必须说服所有Internet参与者,移动网络运营商,ISP和蜂窝基站改变其发送和接收数据包的方式。那不会发生。”
借助ABC,研究人员仍然可以使用每个数据包中的可用单个比特,但是他们这样做的方式是,跨多个数据包聚合的比特可以向发送者提供所需的实时速率信息。该方案在从发送者到基站再到接收者的往返循环中跟踪每个数据包。基站根据当前网络带宽用“加速”或“制动”标记每个数据包中的比特。当接收到数据包时,标记的位告诉发送方增加或减少可能在网络中的“传输中”数据包(已发送但未接收到的数据包)。
如果接收到加速命令,则表示数据包时间充足,网络具有备用容量。然后,发送方发送两个数据包:一个用于替换已接收的数据包,另一个用于利用备用容量。当被告知制动时,发送方会将其飞行中的数据包减少一个,这意味着它不会替换接收到的数据包。
通过在网络中的所有数据包中使用,那一点信息就成为一种功能强大的反馈工具,可以高精度地告诉发件人其发送速率。在几百毫秒内,它可以使发件人的速率在零到两倍之间变化。“您会认为一点不会携带足够的信息,” Alizadeh说。“但是,通过汇总数据包流中的单比特反馈,我们可以获得与多比特信号相同的效果。”
领先一步
ABC的核心是一种算法,该算法可预测发送者向前一个往返的总速率,以更好地计算加速/制动反馈。
这个想法是,配备ABC的基站会根据发送者如何标记发送到接收者的数据包来知道发送者的行为-保持,增加或减少其飞行中的数据包。基站发送数据包的那一刻,它就知道在未来恰好一个往返时间内它将从发送方收到多少个数据包。它使用该信息标记数据包,以更准确地将发送方的速率与当前网络容量匹配。
与传统的拥塞控制方案相比,在蜂窝网络仿真中,ABC在大致相同的延迟下实现了大约30%到40%的吞吐量增长。或者,通过保持与传统方案相同的吞吐量,它可以将延迟减少大约200%至400%。与尚未为时变链路设计的现有显式方案相比,ABC可以将相同吞吐量的延迟减少一半。Goyal说:“基本上,现有的方案获得低吞吐量和低延迟,或者获得高吞吐量和高延迟,而ABC实现了高吞吐量和低延迟。”
接下来,研究人员试图查看应用程序和Web服务是否可以使用ABC更好地控制内容质量。例如,“视频内容提供商可以使用ABC有关拥塞和数据速率的信息来更智能地选择流式视频的分辨率,” Alizadeh说。“如果没有足够的容量,视频服务器可能会暂时降低分辨率,因此视频将继续以最高的质量播放而不会冻结。”