
当用户希望通过互联网发送数据的速度超过网络所能承受的速度时,就会发生拥堵,这就像早晨去大城市上班时的交通拥堵一样。
通过互联网传输数据的计算机和设备将数据分解成更小的数据包,并使用一种特殊的算法来决定发送这些数据包的速度。这些拥塞控制算法寻求充分发现和利用可用的网络容量,同时与可能共享同一网络的其他用户公平地共享它,这些算法尽量减少网络中队列中的数据等待所造成的延迟。
在过去十年中,工业界和学术界的研究人员开发了几种算法,试图在控制延迟的同时实现高速率。其中的一些算法,如Google开发的BBR算法,现在被许多网站和应用程序广泛使用。
但麻省理工学院的一组研究人员发现,这些算法可能非常不公平。在一项新的研究中,他们表明,总是会有这样一种网络场景:至少有一个发送者与其他发送者相比几乎没有接收到带宽,这是一个被称为饥饿(starvation)的问题,无法避免。
电子工程和计算机科学(EECS)副教授Mohammad Alizadeh说:“这篇论文和结果真正令人惊讶的是,当你考虑到现实世界中网络路径的复杂性以及它们可以对数据包做的所有事情时,延迟控制拥塞控制算法基本上不可能使用当前的方法来避免饥饿。”
虽然Alizadeh和他的合著者无法找到一种可以避免饥饿的传统拥塞控制算法,但可能有不同类别的算法可以防止这个问题。他们的分析还表明,改变这些算法的工作方式,使它们允许更大的延迟变化,可以帮助防止在某些网络情况下的饥饿。
Alizadeh与第一作者、EECS研究生Venkat Arun以及资深作者、富士通计算机科学和人工智能教授Hari Balakrishnan共同撰写了这篇论文,这项研究将在美国计算机学会数据通信特别兴趣小组(SIGCOMM)会议上发表。

控制拥塞
自20世纪80年代以来,网络拥塞控制一直是研究人员试图解决的一个基本问题。
用户的计算机不知道通过网络发送数据包的速度有多快,因为它缺乏信息,例如网络连接的质量或有多少其他发送者正在使用网络。发送数据包太慢会影响可用带宽的利用率。但是,发送速度过快会淹没网络,在这样做的过程中,数据包将开始被丢弃。这些数据包必须重新发送,这会导致更长的延迟。延迟也可能是由于数据包在队列中等待很长时间而引起的。
拥塞控制算法使用数据包丢失和延迟作为信号来推断拥塞并决定发送数据的速度。但互联网是复杂的,数据包可能会因为与网络拥塞无关的原因而延迟或丢失。例如,数据可能会在队列中滞留,然后随着其他数据包的爆发而释放,或者接收方的确认可能会延迟,作者称不是由拥塞引起的延迟为“抖动”。
即使拥塞控制算法能够很好地度量延迟,它也无法区分拥塞引起的延迟和抖动引起的延迟。由抖动引起的延迟是不可预测的,并混淆发送方。由于这种模糊性,用户开始以不同的方式估计延迟,这导致他们以不同的速率发送包。最终,这导致了饥饿的发生,有人被完全排斥在外。
Arun解释说:“我们启动这个项目是因为我们对抖动存在时的拥塞控制行为缺乏理论理解。为了把它放在一个更坚实的理论基础上,我们建立了一个数学模型,它足够简单,可以思考,但能够捕捉到互联网的一些复杂性。让数学告诉我们一些我们不知道的、有实际意义的事情,这是非常值得的,”。

研究“饥饿”
研究人员将他们的数学模型输入计算机,给它一系列常用的拥塞控制算法,并要求计算机使用他们的模型找到一种可以避免饥饿的算法。
“我们做不到,我们尝试了我们知道的所有算法,以及我们编写的一些新算法。没有任何效果。计算机总是发现一些人获得所有带宽而至少一个人基本上什么也得不到的情况”,Arun说。
研究人员对这一结果感到惊讶,特别是因为人们普遍认为这些算法是相当公平的。他们开始怀疑可能无法避免饥饿,这是一种极端的不公平形式。这促使他们定义了一类他们称之为“延迟收敛算法”的算法,他们证明这种算法在他们的网络模型下总是会遭受饥饿,所有控制延迟的现有拥塞控制算法(研究人员都知道)都是延迟收敛的。
Arun补充说,这些广泛使用的算法的如此简单的故障模式在很长一段时间内仍然不为人知,这说明仅通过经验测试来理解算法是多么困难,它强调了坚实的理论基础的重要性。
但所有的希望都没有丢失,虽然他们测试的所有算法都失败了,但可能有其他算法不是延迟收敛的,可能能够避免饥饿这表明解决问题的一种方法可能是设计更广泛地改变延迟范围的拥塞控制算法,因此该范围大于由于网络抖动而可能发生的任何延迟。
“为了控制延迟,算法还试图将延迟的变化限制在所需的平衡范围内,但潜在地创造更大的延迟变化以更好地测量拥塞延迟并没有错,这只是一种新的设计理念,你必须采用,”Balakrishnan补充道。
现在,研究人员希望继续努力,看看他们是否能找到或建立一种消除饥饿的算法。他们还希望将这种数学建模和计算证明方法应用于网络系统中其他棘手的、未解决的问题。
原文链接:https://techxplore.com/news/2022-08-major-roadblock-alleviating-network-congestion.html