当前位置:首页 期刊杂志

基于MPTCP的非对称多链路传输调度方法述评*

时间:2024-07-28

章广梅,张建丰,王炜发,李 勇

(中国电子科技集团公司第七研究所,广州 510310)

0 引 言

随着通信及网络技术的发展,用户终端设备往往配置了多个网络接口,以支持不同的网络接入技术。与此同时,随着虚拟现实、实时直播等新技术的发展,用户对高网络带宽和低端到端传输时延的需求越来越高。为了实现多链路传输,互联网工程任务组(The Internet Engineering Task Force,IETF)提出了多路径传输控制协议(Multipath Transmission Control Protocol,MPTCP)。MPTCP协议作为传统传输控制协议(Transmission Control Protocol,TCP)的扩展,与现有的网络架构和协议兼容,向上仍然为应用层提供TCP套接字,向下采用标准TCP协议进行子流的数据传输,为用户提供了透明的多路径利用能力。与只使用单路径进行数据传输的TCP协议相比,使用MPTCP协议进行多路径传输的主要优势有:聚合每个接口的带宽,提高了传输带宽;应用于无线网络时,可在用户移入或移出覆盖范围时添加或删除链接,而不会中断端到端的TCP连接;终端可根据业务需求和网络状况,选择合适的一个或多个网络接口进行数据传输,对动态变化的接口特性有更好的适应能力。基于以上优势,MPTCP协议在多路径传输中具有重要的意义,并已应用于多种网络场景。

但是,在某些异构多链路网络环境下,由于不同链路之间在带宽、往返时延(Round-Trip Time,RTT)、丢包率等服务指标上存在较大的差异,每条链路的传输效率各不相同,如果MPTCP调度策略不考虑异构网络下各种复杂因素的影响依然进行理想情况下的调度,会面临队头阻塞、带宽利用率低下、应用延迟增高、吞吐量下降等诸多问题,直接导致MPTCP传输性能的下降。在调度策略与网络环境严重不匹配的情况下,基于多链路的MPTCP传输性能甚至会低于基于单链路的TCP传输性能。因此,如何制定合理的调度策略,对MPTCP数据包进行调度,使多链路传输为用户提供更高的带宽、更低的端到端时延并最大化网络资源利用率成为网络通信领域重要的课题。

近年来,国内外研究者致力于从多个方面优化MPTCP的数据调度,利用启发式方法或强化学习算法等,提出了不少优秀的MPTCP调度方法[1-3]。本文首先介绍了MPTCP的基本功能和数据调度中面临的主要问题,然后从调度策略针对的不同优化目标着手,系统地整理和比较了近年来关于MPTCP非对称多链路传输调度方法的相关工作,对其拟解决的主要问题和研究方法进行了对比分析,最后对各个方法进行了总结。

1 MPTCP数据调度问题

MPTCP的设计必须遵守应用程序的兼容性和网络的兼容性。其中,应用程序的兼容性是指只要可以运行在TCP环境下,就可以在没有任何修改的情况下,运行于MPTCP环境;网络的兼容是指MPTCP兼容其他协议。MPTCP位于传输层和应用层之间,负责为应用层提供标准TCP接口以及各个TCP子流的管理。MPTCP的基本功能有路径管理、数据包调度、子流接口和拥塞控制,它们之间的关系如图1所示。

图1 MPTCP处理流程

数据调度机制是MPTCP的一个关键组件,数据调度算法的性能直接影响到MPTCP的传输性能。尤其是在链路性能指标差异较大的异构网络环境下,MPTCP进行多路径数据传输会面临队头阻塞、带宽利用率低下、应用延迟增高、吞吐量下降等诸多问题,直接导致传输性能下降。

为了保证数据可靠传输,MPTCP和传统的TCP协议相同,需要将乱序的数据包先存储在MPTCP接收端的缓冲区内,直到可以使其重新排序的数据包到达才将它们一起提交给上层应用。然而,在异构网络环境下,同时使用的多条链路往往带宽、时延各项指标都不同[4],因此在发送端按顺序调度的各个数据包无法按照顺序到达接收端,如果某条链路未确认其数据包,那么MPTCP的发送窗口将停止滑动,导致所有MPTCP发送链路阻塞,称为队头阻塞(Head-of-Line Blocking,HoL)问题。队头阻塞问题是MPTCP接收端无序缓冲区增长恶化后的结果,会导致吞吐量下降,严重影响MPTCP的传输性能。在异构网络环境下,链路之间的差异越大,MPTCP受队头阻塞问题影响,传输性能的下降也越严重。虽然可以通过增大接收端缓冲区来缓解队头阻塞问题,但这样既消耗了资源也不能为实时的数据传输带来性能提升。

2 调度方法的研究现状

目前在Linux内核中实现的三种MPTCP数据包调度算法为轮询算法、最小传输时延算法(minimum Round-Trip Time,MinRTT)和冗余算法。调度算法会显著影响MPTCP传输性能:轮询算法将应用层传入的数据分为一个个数据包,以轮询的方式将数据包分配给各个可用子流进行发送;MinRTT算法依据每个可用子流的往返时延大小顺序来分配数据包,优先给往返时延最小的子流分配数据包,直至数据包填满了该子流的拥塞窗口,然后将数据包分配给往返时延次小的子流;冗余算法将需要发送的数据包复制多份,分配给每一个可用的子流,提高了传输的鲁棒性并且降低了传输时延,但发送了大量冗余的数据包,增大了网络负载。

随着网络环境日益复杂,网络服务质量要求日益增高,这三种数据包调度算法难以满足复杂的异构网络环境和应用场景。研究者针对不同的应用场景和优化目标,提出了多种MPTCP数据包调度算法。

2.1 减少数据包重新排序

由于链路之间的质量差异,高质量链路发送的数据包需要在接收端缓冲区等待低质量链路的数据包到达,然后进行重新排序。频繁的数据包重新排序将导致MPTCP性能的下降。如表1所示,为了减少数据包的重新排序,现有方法通常是基于不同的指标预测数据包到达接收端的时间来确定如何在发送端进行数据包的调度,使得所有数据包尽可能有序地到达接收端,从而避免数据包的重新排序。

表1 减少数据包重新排序的方案

表1(续)

2.2 减少数据包到达时间

很多MPTCP数据调度算法以提升吞吐量为目标,这适用于较长的数据密集型流(例如繁重的大象流),因为传输这些数据流,性能通常受吞吐量限制。然而,相对应的细流(Thin Flow)作为交互应用程序(例如在线游戏、SSH和控制连接)的主要来源,是长期运行的连接,每个往返时间仅有几个数据包。这些细流通常具有严格的等待时间要求,不同于吞吐量敏感的应用程序。因此,如表2所示,也有很多研究者针对时延敏感的应用场景,通过减少数据包到达接收端的时间来优化MPTCP的传输性能。

表2 减少数据包到达时间的方案

2.3 提高快链路利用率

MPTCP在异构网络进行数据传输时,当链路之间质量差异较大时很容易出现快链路等待慢链路,导致其利用率不足甚至低于单路径TCP传输带宽的问题。如表3所示,研究者们从此角度出发,以提高快链路利用率为目标,以此来优化MPTCP在异构网络中的传输性能。

表3 提高快链路利用率的方案

2.4 与强化学习相结合

随着近年来计算能力的提高、机器学习和人工智能领域的发展,将机器学习技术用于计算机网络优化研究的工作越来越多,其中,以强化学习(Reinforcement Learning,RL)为主的机器学习算法能够有效地解决连续决策问题,受到了研究者们的广泛关注[30]。文献[31-32]将卷积神经网络与传统RL中的Q-learning[33]法相结合,提出了深度Q网络(Deep Q Network,DQN)模型,用于处理基于视觉感知的控制任务。基于深度强化学习(Deep Reinforcement Learning,DRL)的MPTCP数据包调度框架如图2所示,尽管相关研究还在起步阶段,但如表4所示,已取得了优于启发式数据包调度算法的成果。

图2 基于RL的MPTCP传输模型框架

表4 与强化学习相结合的方案

3 研究趋势和未来展望

随着MPTCP在异构网络中应用的增加以及5G、强化学习、SDN等新兴技术的发展,人们对网络服务的需求标准会越来越高,范围会越来越广,而目前MPTCP数据调度与这些新技术的结合还不够成熟,未来还需要进一步加强多路径传输优化和新兴技术的融合。

3.1 与5G相结合

3GPP提出了 5G 的 3 个典型应用场景,即增强移动宽带、海量机器通信和超高可靠低时延通信。在此背景下的多路径传输的研究重点在于更快的下载、更低的数据传输成本以及不同接口之间的无缝切换,尤其是无线接口(例如WiFi和蜂窝网络)。例如,为了满足高带宽、低时延的应用需求,与5G相结合的MPTCP调度算法的一个优化方向是实现高速率和低时延的双重目标;为了满足海量设备同时联网的要求,MPTCP调度算法也必须考虑到能耗消耗的问题,如何权衡低能耗需求与海量连接密度需求之间的关系[40],实现无线设备的效用最大化也是未来MPTCP调度算法优化的一大挑战。随着 5G 网络的普及,在大带宽和低时延业务实现过程中如何应用MPTCP将是一个系统级的研究热点。

3.2 与强化学习结合

与启发式算法只能依靠固定的网络参数进行数据包调度不同,基于强化学习的MPTCP数据包调度可以通过获取当前环境中的有用信息进行学习。相比于传统的启发式算法,基于深度强化学习的数据包调度算法可以充分考虑同构和异构网络环境的性质、权衡多种服务质量指标并且适应动态变化的网络环境。基于深度强化学习的MPTCP数据包调度优化研究还在起步阶段,尽管已取得了一些优于启发式数据包调度算法的成果,但如何设计合理的奖励函数、加快模型收敛等也是MPTCP调度算法优化的挑战。随着深度学习算法及智能硬件的发展,强化学习同MPTCP的结合是多路径传输调度研究的重要趋势和热点。

3.3 与网络其他层信息结合

大多数调度程序只使用端到端路径属性(例如延迟和带宽)来制定调度决策,然而,底层链路的动态变化以及上层应用对网络服务指标的不同需求等这些因素都会给端到端的多路径传输中的数据调度带来影响。因此,只依靠传统的传输层信息无法最大限度地发挥多链路传输的优势。如何通过结合其他层的相关参数进行有效利用,进一步提升MPTCP的传输性能是调度算法重要优化方向。利用物理层、链路层、网络层以及应用层的相关信息,通过跨层调度来提升多路径传输的性能是多路径传输调度研究的重要手段和趋势。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!