基于权重的MPTCP数据调度算法设计

2022-03-25 08:08:25 | 浏览次数:

zoޛ)j馔<=00?i0?iLO3M$]4߯{m5Mi414LL#14LLL#<M ?iFuqiӟ.)Z)E!R�B14�L=00<R٨ky总结。

1 MPTCP相关数据调度算法

互联网工程任务组(IETF)于2011年和2013年在工程任务组MPTCP中提出了一系列的草案标志着MPTCP标准化的开始。影响MPTCP性能的因素有很多,其中很重要的一个就是数据调度算法的设计。数据调度的主要任务是将数据合理的分发到子路径上使得数据尽可能的按序到达接收方以减少接收端的队首阻塞(Head-Of-Line Blocking)。队首阻塞主要是由于数据乱序到达接收方造成的,序列号靠前的数据比序列号靠后的数据更晚到达接收端,接收端不得不缓存这些序列号靠后的数据,直到所有的序列号比它靠前的数据都接收到,才能往上层递交该数据,这就导致了较大的递交时延,严重影响了使用户体验。

MPTCP默认采用的是轮洵(Round Robin)数据调度机制,该机制顺序的遍历所有的路径,把一条路径的可用窗口发送满后,就选择下一条路径发送,如果所有的路径都遍历了一遍,则从第一条开始重新开始发送数据。该机制可以在路径差异不大的场景下比较好的工作,但是现实网络中,异构网络环境大量广泛存在,路径之间的差异性往往很明显,这就使得MPTCP的传输性能大大的降低,严重的影响了MPTCP并行多路径传输的优势。

Paasch等作者在其发表在2014 ACM SIGCOMMworkshop上的文章中,提出了基于最小双向传输时延(RTT)的数据调度机制,该机制在有数据需要发送时,总是选择RTT最小的一条路径,直到该路径的发送窗口满了不能再发送更多的数据为止,然后选择RTT次小的路径发送,不断地重复该过程。虽然采用最小RTT作为选择路径的指标,可以保证数据包尽可能快的到达接收端,但是该机制忽略了其他可能会影响传输的一些因素,比如链路的质量以及窗口的大小等。本文期望通过提取更多与传输相关的参数,提供一个更加全面、有效的调度策略,从而提高MPTCP在不同场景下的传输性能。

2 基于权重的MPTCP数据调度算法设计

MPTCP是在TCP基础上拓展而来的,因而MPTCP继承了很多TCP的思想。比如,MPTCP的子流就可以看作是一个普通的TCP连接,只不过所有的子流(子流层)会接受来自MPTCP核心(数据层)的调度管理,在子流层和数据层之间通过构建数据映射机制来管理和同步两层之间的序列号。先来看一下子流层的情况,TCP连接的吞吐量理论上满足如下公式:

其中,RTT是TCP连接的双向传输时延,而D是丢包率。由此可以看出一个TCP连接的吞吐量不仅仅取决于RTT的值,同时还与丢包率有关。无线网络环境下,这种效果更加的明显,因为在无线网络环境下,链路的丢包率往往较大。本文将RTT和丢包率结合在一起,作为数据调度机制评估指标。从公式(l)可以看出,吞吐量的大小与路径的RTT成反比,与丢包率的开方成反比:

经过上面的分析得出,MPTCP中的子流的吞吐量也应该满足公式(2)的成比例关系。由此,我们定义每一条子流的质量:

其中,i对应MPTCP子流的编号,我们假设这里处理的是无线网络环境的场景,因此,丢包率不为0,并记P=√p。RTT*和pi分别表示RTT和P的归一化值。根据RTT和P在具体网络环境下对传输影响的重要程度,加权求和得到子流的质量QSi。QSi的值越小,说明子流的质量越好。加权因子a和β将根据RTT和P的抖动程度分配权重。一种衡量抖动的方法是,分别计算RTT和P的标准差,比较标准差同平均值的偏离程度的百分比,然后根据RTT和P两个量的偏离程度占比来分配a和β权重,可以根据需要对加权因子进行偏好设置,a和β默认值为0.5,并满足a与β和为1。归一化值可以通过如下方式计算:

其中,max_RTT和min_RTT分别是所有子流中RTT的最大值和最小值;同样的,max_p和min_p分别是所有子流中P的最大值和最小值。

在此基础上提出我们的算法,具体调度流程如图1所示:

(l)在调度开始前,更新所有的相关变量,包括每一条子流的质量QSi;

(2)然后以每一条子流的质量QSi作为子流的权重进行排序;

(3)从发送窗口还有剩余的子流中选择QSi最好的一条子流发送数据;

(4)检查是否所有子流都处理过了,如果没有,跳转到3);

(5)一轮调度结束。

3 仿真验证和结果分析

本文基于主流网络仿真器NS-2进行算法的验证和性能评估。本文的主要比较对象是传统的MPTCP和基于最小RTT优先的数据调度算法。首先,将MPTCP的实现方案添加到NS-2中。然后,将我们的调度算法和比较对象实现到现有的MPTCP中,本文评估主要指标是吞吐量。

3.1 仿真场景配置

如图2所示是本文采用的三路径拓扑结构,发送方和接收方都装备了多个网络接口卡。路径1的带宽值设置为2Mbps,时延设置为80ms,队列大小设置为50个数据包,路径2的带宽值设置为384kbps,时延设置为lOOms,队列大小设置为80个数据包,路径3的带宽值设置为IOMbps,时延设置为50ms,队列大小设置为50个数据包。三条路径的链路丢包率都在0-l%之间动态变化。上层分别搭载的是FTP应用和CBR应用(比特率为2Mbps)。仿真时间设置为500秒,其他未给出的仿真参数采用默认值。

3.2 结果分析

如图3所示,本文比较了传统的MPTCP轮询调度的策略和基于最小RTT优先的调度策略。主要的评估指标是吞吐量。分别做了两组实验,一组上层搭载的是FTP应用程序,而另一组搭载的CBR应用程序,比特率为2Mbps,然后分别比较其吞吐量的变化情况。

如图3左图所示,采用最小RTT优先和基于权重的调度策略在丢包率变化过程中,都比传统的轮询调度策略有了较大的提高,在丢包率较小的时候基于权重的调度策略和基于最小RTT优先的性能差距较小,但是随着丢包率的增加,基于权重的调度策略表现了更好的性能,这主要归功于基于权重的调度策略同时考虑了RTT和丢包率的影响。

如图3右图所示,在支持CBR方面,在丢包率较低的时候,这几种机制都能够很好的支持上层应用,但是在丢包率增大之后,传统的MPTCP还是落后于其他的两种方案。但是与支持FTP不同的是,基于最小RTT优先的调度策略和基于权重的调度策略的差距变大了,也就是说在对CBR应用的支持上,基于权重的调度策略发挥了更好的性能。主要原因在于基于最小RTT优先的调度策略在链条带宽足够但是可能链路质量较差时,依然会被选为发送路径,造成了性能的下降,而基于权重的调度策略可以避免这种调度结果的发生。

4 结论

本文提出了一种基于权重的MPTCP数据调度算法,通过将影响调度策略的RTT和丢包率信息都纳入调度决策中,增强了传输方案适应多变环境的能力。通过同传统的MPTCP轮询调度策略和基于最小RTT优先的调度策略的分析和比较,显示了基于权重的调度策略的优势。

推荐访问: 权重 调度 算法 数据 设计