过去十年间,工业界和学术界的研究人员开发了多种旨在实现高吞吐量和控制延迟的算法。其中一些算法,例如谷歌开发的BBR算法,已被许多网站和应用程序广泛采用。.
但麻省理工学院的一个研究团队发现,这些算法可能存在严重的不公平现象。在一项新的研究中,他们证明,总会存在这样一种网络场景:至少有一个发送方获得的带宽远低于其他发送方;换句话说,带宽匮乏问题不可避免。.
“这项工作和结果真正令人惊讶的地方在于,考虑到现实世界网络路径的复杂性以及它们对数据包的影响,基于延迟的拥塞控制算法基本上不可能用当前的方法避免饥饿,”电气工程和计算机科学(EECS)副教授 Mohammad Alizadeh 说。
尽管阿里扎德及其合作者未能找到一种能够防止网络饥饿的传统拥塞控制算法,但其他类型的算法或许能够避免这个问题。他们的分析还表明,修改这些算法的运行方式,使其能够适应更大的延迟变化,可能有助于在某些网络环境下防止网络饥饿。.
Alizadeh与第一作者、电子工程与计算机科学系研究生Venkat Arun以及资深作者、富士通计算机科学与人工智能教授Hari Balakrishnan共同撰写了这篇论文。该研究成果将在ACM数据通信特别兴趣小组(SIGCOMM)会议上发表。.
拥堵控制
拥塞控制是通信网络中的一个基本问题,自 20 世纪 80 年代以来,研究人员一直在努力解决这个问题。.
用户的计算机无法判断通过网络发送数据包的最佳速度,因为它缺乏网络连接质量或网络中其他发送者数量等信息。发送数据包速度过慢会低效地利用可用带宽,而发送速度过快则会导致网络过载,造成数据包丢失。这些丢失的数据包必须重新传输,从而造成进一步的延迟。此外,数据包在队列中等待时间过长也会造成延迟。.
拥塞控制算法利用丢包和延迟作为信号来推断网络拥塞情况,并决定数据传输速度。但互联网环境复杂,数据包的延迟和丢失可能与网络拥塞无关。例如,数据可能在传输过程中被阻塞在队列中,然后与其他数据包一起被释放;或者接收方的确认信息可能出现延迟。作者将这些与拥塞无关的延迟称为“抖动”。.
即使拥塞控制算法能够精确测量延迟,它也无法区分由拥塞引起的延迟和由抖动引起的延迟。抖动引起的延迟是不可预测的,会误导发送方。由于这种不确定性,用户开始对延迟做出不同的估计,导致数据包发送速率不均匀。长此以往,这会导致数据包发送速率下降,最终造成某些数据包完全无法发送,Arun 解释道。.
“我们启动这个项目是因为我们缺乏对网络抖动情况下拥塞控制机制运作方式的理论理解。为了构建更坚实的理论基础,我们建立了一个既简单易懂又能捕捉互联网部分复杂性的数学模型。数学告诉我们一些我们以前不知道但具有实际意义的事情,这让我们受益匪浅,”他说道。
研究饥饿
研究人员将他们的数学模型输入计算机,并向其输入一系列常用的拥塞控制算法,然后要求计算机利用他们的模型找到一种可以避免饥饿的算法。.
“我们做不到。我们尝试了所有我们知道的算法,以及我们自己发明的一些新算法。但都失败了。计算机总是能找到这样一种情况:一部分人获得了全部带宽,而至少有一部分人几乎什么都没得到,” 阿伦说。
研究人员对这一结果感到惊讶,尤其考虑到这些算法通常被认为相当公平。他们开始怀疑,饥饿这种极端的不公正现象可能并不存在。这促使他们定义了一类被称为“延迟收敛算法”的算法,并证明在他们的网络模型下,这类算法总是会遭遇饥饿。所有用于管理延迟的拥塞控制算法(据研究人员所知)都是延迟收敛算法。.
阿伦补充道,这些广泛使用的算法中如此简单的失效模式长期以来一直不为人知,这一事实表明,仅通过经验测试来理解算法是多么困难。这也凸显了坚实的理论基础的重要性。.
但并非所有希望都已破灭。尽管他们测试的所有算法都失败了,但可能存在其他延迟不收敛且能避免资源饥饿的算法。这表明,解决该问题的一种方法可能是设计更宽泛的拥塞控制算法,使其延迟范围大于网络抖动可能导致的任何延迟。.
“为了控制延误,算法也试图将延误波动限制在期望的平衡点附近,但为了更好地测量拥塞延误,人为地制造更大的延误波动并没有什么错。这只是一种应该采用的新设计理念,”巴拉克里希南补充道。
现在,研究人员希望继续努力,看看能否找到或构建一种消除饥饿现象的算法。他们还希望将这种数学建模和计算测试的方法应用于网络系统中其他棘手的、尚未解决的问题。.
“我们越来越依赖计算机系统来处理一些非常关键的事情,我们需要为它们的可靠性建立更坚实的概念基础。我们已经证明,当我们花时间制定这些问题的正式规范时,会发现一些令人惊讶的事情,” 阿里扎德说。
###
作者:亚当·泽维,麻省理工学院新闻办公室
