据《不列颠百科全书》估计,2020年有超过45亿人可以上网。随着这一数字的持续增长,互联网带宽在多个用户之间公平分配至关重要。

带宽被定义为在给定的时间内可以通过互联网连接发送的最大数据量。对于任何给定的互联网连接,都可能有许多用户共享其带宽。例如,考虑一个有几个用户的家庭互联网连接的情况,其中一些用户使用流媒体服务,另一些用户使用电子邮件等基本服务。互联网连接必须以公平的方式分配给每个设备,同时确保足够的速度。这是通过拥塞控制算法实现的。

 

The internet can be thought of as a water pipe

互联网可以被视为一条水管,通过拥塞控制算法测量水连接,以平衡传输速度(延迟)和数量公平性(带宽)。图片由CompiraLabs提供

 

然而,最近,麻省理工学院的一组研究人员发现,网络拥塞算法的缺陷可能导致带宽分配给互联网用户的不均衡。

 

拥塞控制算法如何导致网络“饥饿”

由于拥塞控制算法对共享现代互联网至关重要,研究人员已投入巨资对其进行优化和精简。2017年,谷歌工程师开发了BBR(瓶颈带宽和往返传播时间)拥塞控制算法(CCA),该算法后来于2019年由亚马逊Cloudfront部署。

然而,麻省理工学院的研究人员最近发表了一项研究,声称BBR和类似的“延迟边界”拥塞控制算法不能总是避免带宽饥饿的情况。在这种情况下,饥饿是指一个连接的设备占用可用带宽,从而阻止另一个连接设备访问最小或任何带宽。

延迟绑定拥塞控制算法的工作原理是通过测量网络的往返时间(RTT)来调整其拥塞窗口,通常定义为设备在给定时间被允许发送到网络中的分组数量。RTT被定义为从设备发送数据包到远程服务器接收到确认之间的持续时间。

 

Illustration of round-trip time

往返时间(RTT)示意图。图片由StormIT提供

 

麻省理工学院发现网络分发中的障碍

最近,麻省理工学院证明了有延迟限制的CCA会导致饥饿。在一项已发表的研究中,研究人员指出,有延迟限制的拥塞控制算法也是“延迟收敛的”,这意味着它们收敛到随时间在两个值之间振荡的RTT。

 

Delay-convergent property

延迟有界拥塞控制算法的延迟收敛性。图片由麻省理工学院提供

 

麻省理工学院的研究人员使用形式数学表明,如果延迟有界(收敛)算法在两个不同的现实世界链路上运行(例如,两个不同设备共享一个连接),它们可以收敛到截然不同的发送速率。换句话说,其中一个链路可能会缺少带宽。

 

Two different links converge to different sending rates

当使用延迟收敛CCA时,两个不同的链路收敛到不同的发送速率。图片由麻省理工学院提供

 

这种情况的发生是因为网络“抖动”——网络中的延迟不是由拥塞引起的,而是由其他随机事件引起的。当两个不同链路的抖动偏离时,延迟收敛算法收敛到RTT,这可能不能反映链路上存在的实际拥塞。

 

改进拥塞控制算法

麻省理工学院电气工程和计算机科学副教授Mohammed Alizadeh表示,解决这个问题的一种方法是设计一种算法,使振荡收敛到比链路上存在的抖动更大的RTT范围。Alizadeh还声称,在某些情况下,当前延迟收敛的CCA几乎总是导致饥饿。未来的CCA必须将这种行为考虑在内,以避免带宽不足。