MMSys'2023 | 丢包网络多站点并行下载的 CUBIC 拥塞避免机制改进算法

2023-10-28 16:45:26 浏览数 (1)

作者: Yu-Yen Chung 来源: MMSys 2023 论文链接: https://dl.acm.org/doi/pdf/10.1145/3587819.3597029 论文代码: https://github.com/YuYen/mmsys23_gc 内容整理: 李冰奇 随着在线视频观看的快速增长,用户体验对于视频流媒体服务来说变得至关重要,以吸引用户并增加他们的黏性。多侧并行下载是一种策略,通过同时从多个低成本的数据节点请求视频片段,可以减少延迟并改善用户体验。然而,在这样的网络中,这些数据节点之间的通信可能不如传统的专用服务器可靠。在这种网络中,随机丢包事件可能会对基于丢包的拥塞控制造成偏差。因此,这项工作将重新评估机制引入到CUBIC拥塞避免状态中,以纠正对拥塞窗口的低估。在实验中,我们通过网络模拟分析了CUBIC与我们的修改之间的往返时间和传输速度,针对不同丢包率进行了实验。我们的结果显示,重新评估有助于恢复拥塞窗口并在丢包率极高的网络中提高传输速度。这些探索对于未来改进基于丢包的拥塞控制可能会有益处。

介绍

视频流媒体已经快速增长,并成为主要的互联网流量。实时视频流媒体使用户能够从各种提供商(如Netflix和YouTube)检索媒体内容,并使用户能够进行实时流媒体或视频通话。随着录制和显示技术的进步,立体和360度视频可能成为未来的另一个选择。除了观看,视频流还可以应用于将物理环境与扩展现实相结合,例如角色重建和物体检测

低延迟媒体流

由于大量数据和对高质量视频流的实时需求,实现低延迟的视频传输是具有挑战性的。例如,起始缓慢或中途卡顿可能会影响用户在观看视频时的体验质量。为了减少传输延迟,传统上可以建立一个内容分发网络(CDN),从最靠近用户的专用服务器发送所请求的流。此外,通过监控服务器的传输速率,客户端可以根据动态自适应流媒体(DASH)标准动态调整请求的视频质量,以适应传输通道。然而,建立CDN也带来了一些挑战。首先,建设成本可能很高,系统配置可能复杂。此外,还需要适当的机制来刷新缓存内容;否则,客户端可能会接收到过时的数据。多站点并行下载(MPD)利用系统中的多个数据节点同时提供所请求的流,可以是另一种以较低成本及时传递视频流的方法,相比于建立CDN 。这些低成本的数据节点,例如智能家居设备或空闲服务器,通常具备足够的存储空间,但计算能力有限。然而,网络带宽可能会变化不定且不可靠。因此,在MPD系统中,协调这些具有不同容量的分离资源,对每个节点调整数据请求速率可能是一个挑战。由于这些数据节点的不可靠性特点,更高的丢包率是可以预期的。此外,路径瓶颈上的拥塞可能导致潜在的数据丢失,因为单个客户端需要同时从多个源请求数据。因此,与CDN中与专用服务器的稳定连接相比,丢包事件在MPD系统中可能是更关键的因素。

拥塞控制策略

拥塞控制的概念最初是在Jacobson和Karels的工作中引入的。最初,拥塞被视为数据包丢失的主要原因;因此,控制算法的目标是调整拥塞窗口(cwnd)的大小,以避免由于缓冲区溢出而导致的数据丢失。传统上,数据包丢失被用作调整cwnd大小的信号。这种基于丢包的策略通常涉及两个状态。首先,在慢启动状态下,cwnd将指数级扩展,以快速初始化连接的适当cwnd大小,直到达到预定义的慢启动阈值(ssthresh)。然后,算法切换到拥塞避免状态。增加递增、减少递减是一种常见的策略,在这种状态下控制cwnd,它在检测到丢包后适度扩展cwnd,然后急剧减小大小。CUBIC 是一种改进版本,使用立方函数比线性增量更积极地恢复cwnd的大小。随着网络接口控制器的改进,拥塞不再是数据包丢失的主要原因。因此,基于丢包的拥塞控制的假设,即数据包丢失可以直接反映网络拥塞,可能不再有效。例如,在MPD中从不太可靠的数据节点请求时,可能会发生随机丢包事件。正如Rhee等人所报道的,当丢包率增加时,估计的cwnd大小会显著下降。因此,这些丢包事件成为偏倚基于丢包的拥塞控制的噪声信号,并使cwnd被低估。Google引入的瓶颈带宽和往返传播时间(BBR)在拥塞控制算法中提出了一种新的方法。与依赖丢包事件作为调整cwnd的信号的基于丢包的策略不同,BBR旨在在最佳点上操作传输速率,最大化传输速率并最小化往返时间(RTT)。在该模型中,RTT的增加可能是拥塞的信号。因此,BBR使用特定的数据请求模式主动探测网络特性。当传输速率不再达到最大值时,BBR可能会回到慢启动状态重新评估带宽。研究表明,与CUBIC相比,BBR能够提供更高的体验质量。然而,实施BBR可能比传统的基于丢包的方法更复杂。首先,除了cwnd大小,还需要调节数据发送速度。此外,BBR使用了一个包含四个状态的状态机,涉及的状态转换比基于丢包的方法中的两个状态更多。

本文贡献

受到BBR的启发,我们注意到RTT的变化趋势也可以帮助基于丢包的策略改进cwnd。因此,本文在CUBIC拥塞避免状态中引入了一种基于RTT的重新评估策略,以减轻在高丢包率网络中cwnd被低估的问题。我们使用一个哑铃网络拓扑模拟MPD任务,以评估所提出的改进。我们在不同网络丢包率下仔细分析和讨论了RTT模式和传输速度。我们的方法在网络丢包率极高时提高了MPD任务中CUBIC的性能。

算法设计

该算法旨在为CUBIC拥塞控制提供一种策略,以纠正由于随机丢包事件导致的cwnd被低估的问题。本节描述了我们修改的设计逻辑和实现方法。

图1 拥塞避免模块优化

设计逻辑

如果丢包事件不能准确反映缓冲区过载情况,传统的基于丢包的拥塞控制可能会低估连接的可接受带宽。逐渐地,基于被低估的cwnd请求数据将耗尽缓冲队列,从而降低整体吞吐量。尽管由于排队较少,RTT可能较低,但基于丢包的拥塞控制仍需要足够的缓冲区占用来实现完全的吞吐量。因此,类似于BBR,定期检查CUBIC是否需要回到慢启动状态重新评估可接受的带宽可能会有帮助。图1展示了设计的核心思想。

算法实现

我们的方法在以下两个方面修改了CUBIC,并且算法的实现可以在算法1中找到。

周期性重新评估

此重新评估将在拥塞避免状态下启用。在评估过程中,如果当前往返时间(RTT)与先前的RTT差距不大,系统将通过将当前状态的ssthresh乘以控制因子r(限制潜在拥塞窗口扩展比例)将其切换到慢启动状态。此外,每个连接的RTT将用于规范化重新评估的时机,因为延迟取决于数据节点。n是用于调整重新评估频率的超参数。

防止拥塞窗口过多收缩

在慢启动期间,减小cwnd大小的除数可能会比拥塞避免期间更大,因为需要紧急减小。因此,在切换回慢启动状态之前,将记录cwnd的值,以锁定潜在的减小量,以避免在重新评估过程中意外过度收缩。

图2 算法流程图

实验结果

我们使用不同的丢包率模拟了一个哑铃网络拓扑,以评估所提出的拥塞控制修改在MPD任务中的效果。基于模拟,我们对CUBIC和所提出的修改的RTT和传输速度进行了分析。

图3 网络拓扑

实验设置

该网络模拟是在提供的C 框架上构建的。该框架可以使用UDP数据包与数据节点进行通信,并从这些节点请求一个10MB文件的片段。我们的工作重点是基于ack事件和丢包检测来调整每个数据节点的cwnd。代码库中提供的哑铃拓扑用于评估实现效果。如图2a所示,网络涉及与五个数据节点的连接以及中间具有可调节丢包率的瓶颈链路。队列大小和带宽的限制相对较宽松,因此丢包率的影响可以与拥塞明显区分开来。CUBIC函数是从 Quiche 集成的。该程序在具有4 GB虚拟内存和四个处理器核心的Mininet 2.3.0 虚拟机上进行了测试。主机是一台Windows 10笔记本电脑,配有i7-7500U CPU和32 GB RAM。

RTT 分析

图4 实验结果

该模拟比较了两种方法在数据丢失率为0%、1%和3%时的RTT。图2b展示了模拟MPD任务的结果。在顶部一行中,没有引入数据丢失,两种方法的RTT快速增长到饱和平台。饱和意味着在该设置中,cwnd已经达到其最大可用大小,因为缓冲区大小足够大,可以容纳所有待处理的请求。

当丢失率为1%时,CUBIC中的RTT在慢启动状态之后下降,并保持在一个较低的范围内。这意味着丢包事件触发了cwnd的缩小,而较小的cwnd导致了队列排空,从而降低了RTT。然而,由于RTT仍远未达到饱和状态,因此不存在由于拥塞而导致的数据丢失,就像没有丢包的情况一样。这个事实表明,在存在随机丢失的情况下,CUBIC可能无法正确估计链路的容量。在我们的修改中,由于具有切换到慢启动状态的机会增加,RTT会周期性地反弹。基于丢包的拥塞控制需要保持缓冲队列中的数据以达到瓶颈带宽,因为它不依赖于像BBR 那样控制请求发送速率。总体而言,在1%丢包率的情况下,CUBIC仍然提供了一个合理的cwnd,因为即使最低的RTT稍高于往返传播时间。然而,在具有3%丢包率的图中,如图2b底部一行所示,CUBIC中的RTT几乎与往返传播时间相等。这意味着链路被低效利用,因此没有任何请求的等待时间。在我们的修改中,由于增加了重新评估,RTT会周期性地反弹,因此在具有高随机丢包率的网络中更具优势。

最后,在图2b中,来自不同数据节点的所有RTT(以不同的亮度显示)都很好地对齐而不是独立的。这可能是模拟拓扑结构的产物,因为在哑铃网络中,所有数据节点共享相同的瓶颈链路。

传输速率评估

图5 实验结果

主要的评估指标是MMSys Grand Challenge 中提出的调整速度。直观地,这两个额外的加权因素是:a) 重复下载相同片段的重复惩罚,以最小化整体带宽使用;b) 如果接收视频片段的时间晚于其播放时间,则应用延迟惩罚。在实验中,每个条件重复执行相同的MPD任务十次,以观察速度的平均值和标准差。表格1显示了在不同丢包率下两种方法的速度结果。在大约0%到1%的丢包率范围内,CUBIC的表现略优于所提出的修改。原因可能是这些丢包率恰好帮助CUBIC保持良好的cwnd。这个结果指出了当前设计的一个弱点:它只关注如何使cwnd变宽。因此,重新评估变成了一种额外负担,或者在不必要时引入了不利效果。重新评估假设在丢包网络中观察到RTT不增加时,cwnd可能被低估。然而,在连接达到其限制或缓冲区饱和时,也可能观察到RTT不增加。因此,将传输速率整合到重新评估标准中,以避免过于激进的扩展,可能是一个解决方案。正如BBR所示,RTT和传输速率的信息互补,当RTT增加时可以观察到瓶颈带宽,而当传输速率增加时可以观察到往返传播时间。

总体而言,在极高的丢包率(>2%)下,我们的修改优于原始版本。因此,该结果证明了该策略可能有助于在这种高丢包环境中纠正基于丢包的拥塞控制的cwnd估计。

局限性

模拟环境可能无法准确地表示真实网络中的特性。此外,系统中还有许多潜在事件未被考虑。例如,在模拟中,网络中的主要活动是来自唯一客户端的下载任务。然而,数据节点可能还需要与其他客户端和数据同步服务进行通信。这些任务之间的竞争不在该工作的范围内。

该工作中使用的主要指标是下载速度,但其他指标也可以评估网络中的算法。例如,不同策略之间的网络共享公平性可以决定拥塞控制算法是否可以与其他算法共存。此外,讨论还未涵盖减少视频启动延迟或更改播放位置后的延迟,这可能会影响用户体验的质量。

结论

MPD可能是改善视频流传输速度的解决方案。然而,对低成本数据节点的通信中存在潜在的高丢包率,这可能会误导基于丢包的拥塞控制算法。本文将基于RTT的重新评估策略纳入CUBIC拥塞控制中,以纠正高丢包网络中的cwnd低估问题。我们在哑铃网络模拟中分析了执行MPD任务时的RTT模式,并考虑了各种随机丢包率。结果表明,引入的修改可以帮助纠正低估的cwnd,并提高高丢包网络中的下载速度。该策略可以通过进一步与传输速率的整合来改进。

0 人点赞