«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (3): 218-226  DOI: 10.19678/j.issn.1000-3428.0056790
0

引用本文  

李宁, 衷璐洁, 高楷. 基于灰色马尔科夫预测的移动多路传输调度算法[J]. 计算机工程, 2021, 47(3), 218-226. DOI: 10.19678/j.issn.1000-3428.0056790.
LI Ning, ZHONG Lujie, GAO Kai. Mobile Multi-Path Transmission Scheduling Algorithm Based on Grey Markov Prediction[J]. Computer Engineering, 2021, 47(3), 218-226. DOI: 10.19678/j.issn.1000-3428.0056790.

基金项目

国家自然科学基金“程序分析及软件定义增强融合的移动多路传输关键技术研究”(61872253)

通信作者

衷璐洁(通信作者), 副教授、博士

作者简介

李宁(1995-), 女, 硕士研究生, 主研方向为网络传输协议;
高楷, 博士研究生

文章历史

收稿日期:2019-12-04
修回日期:2020-02-08
基于灰色马尔科夫预测的移动多路传输调度算法
李宁1 , 衷璐洁1 , 高楷2     
1. 首都师范大学 信息工程学院, 北京 100048;
2. 北京邮电大学 网络技术研究院, 北京 100876
摘要:多路径传输控制协议通过聚合多路径带宽提高资源利用率及网络吞吐量。在无线异构网络环境中,由于网络性能不稳定、传输路径性能差异等因素容易导致数据包乱序及缓冲区阻塞,对网络多路传输性能造成负面影响。为在有限的接收缓冲区内对数据包实施合理调度,基于灰色预测模型GM(1,N)与马尔科夫优化的前向传输时间(FTT)预测模型,提出一种自适应多路传输数据调度算法GMM-S。通过对未来时刻子流FTT的准确预测实现子流传输性能的有效评估,并以此作为数据分发依据进行传输数据的多子流动态调整。仿真实验结果表明,与RR和LowRTT算法相比,该算法可有效解决接收端数据包乱序问题,同时提升网络吞吐量。
关键词多路径传输控制协议    灰色预测模型    马尔科夫算法    数据调度    丢包    
Mobile Multi-Path Transmission Scheduling Algorithm Based on Grey Markov Prediction
LI Ning1 , ZHONG Lujie1 , GAO Kai2     
1. Information Engineering College, Capital Normal University, Beijing 100048, China;
2. Institute of Network Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China
Abstract: Multi-Path Control Transmission Protocol (MPTCP) improves resource utilization and network throughput by aggregating multi-path bandwidth.However, in the wireless heterogeneous network environment, out-of-order packets and buffer block are serious due to many factors, such as unstable network performance and differences between the transmission paths, which reduces the performance of multi-path transmission.In order to schedule packet reasonably in the limited receiving buffer, this paper propose an adaptive multi-path data scheduling algorithm GMM-S based on the Grey prediction Model GM(1, N) and Markov optimized Forward Transmission Time (FTT) prediction mode.The algorithm evaluates the transmission performance of sub-flows through the accurate prediction of FTT of sub-flows in a future moment, and takes it as a basis for data distribution to realize dynamic sub-flows adjustment of transmitted data.The simulation results show that compared with the RR algorithm and LowRTT algorithm, the proposed algorithm can effectively solve the packet disorder problem at the receiving end, and improve the network throughput.
Key words: Multi-Path Transmission Control Protocol(MPTCP)    Grey prediction Model(GM)    Markov algorithm    data scheduling    packet loss    
0 概述

随着移动互联网与通信技术的快速发展,5G网络、移动车载网络中的新型业务需求对网络传输速率及带宽提出了更高要求[1]。为保证移动设备的连接性能,通常为其配置多个接口,以降低运行成本、简化网络管理并提供良好的用户体验。多路径传输控制协议(Multi-Path Transmission Control Protocol,MPTCP)使用多路径发送数据包,可满足实时性、交互性与个性化的业务需求。因此,MPTCP成为未来互联网数据传输的发展趋势之一[2],但是通过多路径传输来提高网络性能仍存在诸多挑战。例如,在有限的接收缓冲区和异构网络环境中,由于网络性能不稳定以及传输路径性能差异较大等因素容易造成接收端乱序,从而引发缓冲区阻塞问题,降低网络多路径的传输性能[3]。其中,具有代表性的场景有车载移动用户与手机移动用户通过接入各自的异构网络访问互联网时,若不对存在路径差异和无线网络不可靠的情况进行管控,将会导致分组频繁乱序及数据丢失,造成数据包重传占用链路资源和接收端缓冲区阻塞等问题,严重影响服务质量与用户体验[4]

本文综合考虑异构网络链路差异、子流性能评估以及多路径带宽负载均衡等问题,提出一种移动多路传输调度算法。该算法利用前向传输时间(Forward Transmission Time,FTT)实现子流传输性能的准确预测,并依据FTT对数据包进行分发,保障数据包到达缓冲区的时间趋近于最优子流FTT,以提高多路径带宽利用率与数据传输效率。

1 相关工作 1.1 MPTCP数据调度

MPTCP由IETF提出[5],其作为TCP的扩展,目的是通过聚合多路径带宽来提高资源利用率及网络吞吐量。数据调度算法是MPTCP的重要组成部分,MPTCP数据调度对应用层数据流实施分段并在每个子流上进行数据传输,同时提供耦合拥塞控制以保障与正常TCP连接的公平性[6]。传统的MPTCP数据调度算法通常采用静态和动态两类方式。其中,静态方式主要针对同构网络环境,该类算法不考虑路径的状态特性,其是通过借助拥塞窗口对数据包进行分配。静态方式的代表性算法有随机调度和轮询调度,轮询调度(Round-Robin,RR)是一种广泛应用于数据包分配[7]的算法,该算法对将要发送的数据段,从当前所有可用路径中按子路径从1~N的顺序选取下一个有空余发送窗口的路径作为本次调度的路径选择。静态方式对于同构网络的性能表现较优,但在异构网络环境中其传输性能没有单路径传输更有优势。动态方式针对静态调度策略的不足,将路径特性纳入考虑,且每次对路径选择时根据各路径的传输特性优先选择传输质量较好的路径进行数据传输[8]。其中,基于最小往返时延(Round-Trip Time,RTT)的调度算法LowRTT[9]优先选择传输延迟最小的路径作为最佳路径,且当最佳路径的发送窗口为0时,再选择传输时延次小的路径作为最佳路径。与RR算法相比,LowRTT算法能够更好地缓解数据包乱序问题,但由于每次仅选用一条子流进行数据传输,其未能充分利用多路径并行传输的优势[10]

1.2 灰色马尔科夫预测模型

灰色预测模型(Grey predicition Model,GM)是一种分析“部分信息已知,部分信息未知”不确定性系统问题的有效方法[11]。该模型通过累加生成方式产生新的数据序列,使用新产生的数据序列代替原始数据序列,并进一步应用微分方程求解完成新数据序列的预测。与目前主流的指数平滑、回归分析、支持向量机及神经网络等预测方法相比,灰色预测模型具有无需统计大量样本数据即可解决小样本短序列建模问题的优势。灰色预测模型GM(1,N)是GM的一种改进模型,该模型在保留小样本数据预测特点的同时,增加了影响数据变化的其他因素数据,可进一步提升灰色预测模型的精度[12]

马尔科夫模型对随机变化的动态系统进行预测时,它将时间序列看作一个随机过程,通过对事物不同状态的初始概率与状态之间的转移概率进行深入研究,确定事物未来状态的变化趋势[13]。这种模型的实质是一种建立在“状态”“状态转移”概念上的动态随机数学模型,即通过研究对象的当前时刻状态及状态转移概率来判断研究对象下一时刻的所处状态。

考虑到灰色模型的使用对象主要是预测时间短且波动性较小的系统对象,本文提出将灰色模型与马尔科夫模型相结合的多路传输数据调度机制——灰色马尔科夫多路传输调度(Grey-Markov Multi-path Transmis-sion Scheduling,GMM-TS)。用灰色模型对数据进行拟合并找出变化趋势,然后在此基础上与马尔科夫模型相融合,利用其具有对随机过程提取概率分布规律的特点,进一步提升灰色预测模型对随机波动较大数据序列的预测准确度。

2 自适应多路传输数据调度机制 2.1 问题分析

在无线异构网络中采用MPTCP传输数据包时,不同类型的通信系统相融合需使用多条路径,且传输过程的链路性能存在较大差异。传输性能差异将造成传输序列号(Transmission Sequence Number,TSN)较大的数据包先到达缓冲区,从而引起数据包乱序问题[14],而接收端由于无法及时将缓冲区中的数据向上层应用传输而造成数据流传输时间的延长。

图 1为异构子流的多路传输示例。假设子流1的传输速率是子流2的3倍,TSN=1的数据包与TSN=2的数据包在同一时刻分别由子流1和子流2发送。当子流1发送的TSN=1的数据包到达接收端后提交至上层应用,继续发送TSN=3与TSN=4的数据包,当TSN=3与TSN=4的数据包到达接收端缓冲区后,暂存缓冲区并等待TSN=2到达后按序交付应用层。在时间段T内提交到应用层的仅有TSN=1数据包,且此时的有效吞吐量Q=1/T,而在顺序传输的情况下Q=3/T。与此同时,由于接收端缓冲区的限制,乱序数据包会引发接收端缓冲区阻塞,致使拥塞控制机制减缓发送速率,甚至停止发送[15]。若MPTCP分发数据时仅考虑拥塞窗口和缓冲区大小,当发送窗口小于最大报文段MSS时,则会造成接收缓冲区中存在大量数据包碎片。由于拼接数据包会占用额外的资源,因此会加重数据包乱序。

Download:
图 1 异构子流的多路传输示例 Fig. 1 Example of multi-path transmisson of heterogeneous substreams

为缓解无线异构网络中因链路差异而造成的数据包乱序及缓冲区阻塞问题,本文提出一种基于灰色系统中离散数据预测的GM(1,N)预测模型与马尔科夫优化的自适应多路传输数据调度算法GMM-S。综合考虑子流的丢包率、发送窗口大小及拥塞状态对子流性能的影响,对未来时刻子流前向传输时延FTT进行预测并进行相关路径的性能评估,同时将其用作数据分发依据,实现传输数据的多子流自适应动态调整。

考虑到MPTCP的子流传输性能除了受到路径吞吐量Q、传输时延T、丢包率L与发送窗口S等多种因素影响外[16],还会受到如终端与基站的距离等不确定因素的影响。为此,本文将MPTCP子流传输性能的变化过程R建模为一个受多种因素影响的灰过程,具体如式(1)所示:

$ R={C}_{f}+{U}_{f} $
$ {C}_{f}=\alpha Q+\beta T+\gamma L+\delta S $
$ {U_f} = \sum\limits_{i = 1}^k {{\varepsilon _i}} {x_i}, k = {\rm{1}}, {\rm{2}}, \cdots , n $ (1)

其中,$ {C}_{f} $表示已知因素的影响部分,$ {U}_{f} $表示未知因素的影响部分,QTLS分别表示吞吐量、传输时延、丢包率及发送窗口,$ \alpha ,\beta ,\gamma ,\delta $表示各确定因素相应的权重,$ {x}_{i} $表示影响R变化的未知因素,$ {\epsilon }_{i} $表示未知影响因素的权重,n为未知影响因素的个数。$ \alpha ,\beta ,\gamma ,\delta $值可通过建立GM(1,N)模型微分方程求得。

在无线异构网络多路传输过程中,慢启动阶段子流的FTT会呈现出几何级增长趋势,而在进入拥塞避免阶段时FTT则会大幅下降,当伴随丢包现象的发生时,FTT又将大幅上升[17]。一般而言,FTT的时间序列呈现近似几何级增长规律,同时在某些时刻存在较大波动。基于此,本文提出进一步引入马尔科夫模型以揭示系统在不同状态区间转移的内在规律,并对灰色预测模型的残差序列进行修正。

2.2 GMM-S自适应多路传输数据调度方案

基于GM(1,N)的FTT预测及马尔科夫优化多路数据传输调度方案主要由基于GM(1,N)预测与马尔科夫优化的子流性能评估模型以及数据分发调度2个部分组成,具体构成如图 2所示。其中,实线箭头表示数据流,虚线箭头表示信息流。在STPEM中首先获取MPTCP子流中的发送窗口、丢包率、吞吐量和前向传输时延数据4组可直接获取的已知影响因素,即选取N=4,建立GM(1,4)模型预测该子流下一时刻的FTT,之后在GM(1,4)预测基础上实施马尔科夫残差修正,即根据FTT预测值与实际值的相对误差建立马尔科夫残差修正模型对GM(1,4)预测值进行修正,以完成对子流FTT的预测,量化子流传输质量,且修正后的FTT预测值越小表示该子流的传输性能越好。随后,在DDS部分根据FTT预测值对子流进行分类,选取最短预测FTT的子流为优秀子流。在优秀子流上根据拥塞窗口大小发送足够多数量的数据包,而在普通子流上,则根据其与优秀子流的预测FTT时延差,实施传输数据包发送数量的动态调整。

Download:
图 2 GMM-S数据调度方案 Fig. 2 GMM-S data scheduling scheme
2.2.1 GM(1,4)预测模型建立

本文选取子流发送窗口$ S $、丢包率$ L $、吞吐量$ Q $和前向传输时延$ \mathrm{F}\mathrm{T}\mathrm{T} $作为原始预测样本数据:

1) 数据处理。令$ F=\left\{{f}_{1}, {f}_{2}, \cdots , {f}_{n}\right\} $表示MPTCP的子流集合,$ \mathrm{F}\mathrm{T}{\mathrm{T}}_{f}\mathrm{为}\mathrm{子}\mathrm{流}f\mathrm{的}\mathrm{前}\mathrm{向}\mathrm{时}\mathrm{延},{S}_{f} $为子流$ f $的发送窗口,$ {L}_{f} $为子流$ f $的丢包率,$ {Q}_{f} $为子流$ f $的吞吐量。假设当前为第t轮数据包发送,以子流$ {f}_{1} $为例,子流数据包前向传输时间$ \mathrm{F}\mathrm{T}{\mathrm{T}}_{{f}_{1}} $、发送窗口大小$ {S}_{{f}_{1}} $、子流丢包率$ {L}_{{f}_{1}} $与子流吞吐量$ {Q}_{{f}_{1}} $分别如式(2)~式(5)所示:

$ \begin{array}{l} {\rm{FT}}{{\rm{T}}_{{f_1}}} = \left\{ {{\rm{FT}}{{\rm{T}}_{{f_1}}}\left( {t - 1} \right), {\rm{FT}}{{\rm{T}}_{{f_1}}}\left( {t - 2} \right), {\rm{FT}}{{\rm{T}}_{{f_1}}}\left( {t - 3} \right), } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\left. {{\rm{FT}}{{\rm{T}}_{{f_1}}}\left( {t - 4} \right)} \right\} \end{array} $ (2)
$ {S}_{{f}_{1}}=\left\{{S}_{{f}_{1}}\left(t-1\right), {S}_{{f}_{1}}\left(t-2\right), {S}_{{f}_{1}}\left(t-3\right), {S}_{{f}_{1}}\left(t-4\right)\right\} $ (3)
$ {L}_{{f}_{1}}=\left\{{L}_{{f}_{1}}\left(t-1\right), {L}_{{f}_{1}}\left(t-2\right), {L}_{{f}_{1}}\left(t-3\right), {L}_{{f}_{1}}\left(t-4\right)\right\} $ (4)
$ {Q}_{{f}_{1}}=\left\{{Q}_{{f}_{1}}\left(t-1\right), {Q}_{{f}_{1}}\left(t-2\right), {Q}_{{f}_{1}}\left(t-3\right), {Q}_{{f}_{1}}\left(t-4\right)\right\} $ (5)

将上述4组数据作为原始样本生成4个数列,原始样本数据矩阵$ {\boldsymbol{X}^{\left( 0 \right)}} $为:

$ {\boldsymbol{X}^{\left( 0 \right)}}=\left[\begin{array}{cccc}\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)}\left(1\right)& {S}^{\left(0\right)}\left(1\right)& {L}^{\left(0\right)}\left(1\right)& {Q}^{\left(0\right)}\left(1\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)}\left(2\right)& {S}^{\left(0\right)}\left(2\right)& {L}^{\left(0\right)}\left(2\right)& {Q}^{\left(0\right)}\left(2\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)}\left(3\right)& {S}^{\left(0\right)}\left(3\right)& {L}^{\left(0\right)}\left(3\right)& {Q}^{\left(0\right)}\left(3\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)}\left(4\right)& {S}^{\left(0\right)}\left(4\right)& {L}^{\left(0\right)}\left(4\right)& {Q}^{\left(0\right)}\left(4\right)\end{array}\right] $ (6)

$ {\boldsymbol{X}^{\left( 0 \right)}} $通过一阶累加运算来增强原始数列的规律性,弱化原始数据列的随机性,得到更有规律的数据矩阵$ {\boldsymbol{X}^{\left( 1 \right)}} $

$ {\boldsymbol{X}^{\left( 1 \right)}}=\left[\begin{array}{cccc}\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(1\right)& {S}^{\left(1\right)}\left(1\right)& {L}^{\left(1\right)}\left(1\right)& {Q}^{\left(1\right)}\left(1\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(2\right)& {S}^{\left(1\right)}\left(2\right)& {L}^{\left(1\right)}\left(2\right)& {Q}^{\left(1\right)}\left(2\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(3\right)& {S}^{\left(1\right)}\left(3\right)& {L}^{\left(1\right)}\left(3\right)& {Q}^{\left(1\right)}\left(3\right)\\ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(4\right)& {S}^{\left(1\right)}\left(4\right)& {L}^{\left(1\right)}\left(4\right)& {Q}^{\left(1\right)}\left(4\right)\end{array}\right] $ (7)

将FTT的一阶累加矩阵$ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)} $进行紧邻均值计算,生成紧邻均值矩阵$ \boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)} $

$ \boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)} = \left\{ {\boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)}\left( 2 \right), \boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)}\left( 3 \right), \boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)}\left( 4 \right)} \right\} $ (8)

2) 模型建立。描述$ \mathrm{F}\mathrm{T}\mathrm{T} $多元一阶线性动态微分方程模型的灰微分方程如下所示:

$ \begin{array}{l} {\rm{FT}}{{\rm{T}}^{\left( 0 \right)}}\left( k \right) + a\boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)}\left( k \right) = \\ {b_2}{S^{\left( 1 \right)}}\left( k \right) + {b_3}{L^{\left( 1 \right)}}\left( k \right) + {b_4}{Q^{\left( 1 \right)}}\left( k \right)(k = {\rm{2}}, {\rm{3}}, 4) \end{array} $ (9)

其中,$ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)}\left(k\right) $表示关键影响因素FTT的原始数据,称为灰导数,$ \boldsymbol{Z}_{{\rm{FTT}}}^{\left( 1 \right)}\left( k \right) $为FTT一阶累加数据的紧邻均值,称为背景值,$ a, {b}_{i}(i=\mathrm{2, 3}, 4) $表示参数,且可采用最小二乘法求出待定系数abi的值。

对于GM(1,4)的灰微分方程,若将$ {\boldsymbol{X}^{\left( 1 \right)}}\left( k \right) $视为连续变量,则$ {\boldsymbol{X}^{\left( 1 \right)}}\left( k \right) $为关于时间t的函数,GM(1,4)的白化微分方程定义如下:

$ \frac{\mathrm{d}\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}}{\mathrm{d}t}+a\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}={b}_{2}{S}^{\left(1\right)}\left(t\right)+{b}_{3}{L}^{\left(1\right)}\left(t\right)+{b}_{4}{Q}^{\left(1\right)}\left(t\right) $ (10)

对式(10)进行求解,可得GM(1,4)的白化微分方程的时间响应函数如下所示$ {\widehat {{\rm{FTT}}}^{\left( 1 \right)}} $

$ \begin{array}{*{20}{l}} {{{\widehat {{\rm{FTT}}}}^{\left( 1 \right)}}\left( {t + 1} \right) = }\\ {\left[ {{\rm{FT}}{{\rm{T}}^{\left( 0 \right)}}\left( 1 \right) - \frac{1}{{\hat a}}\left( {\widehat {{b_1}}{{\hat S}^{\left( 1 \right)}}\left( {t + 1} \right) + \widehat {{b_2}}{{\hat L}^{\left( 1 \right)}}\left( {t + 1} \right) + } \right.} \right.}\\ {\left. {\mathop {\mathop {\left. {\widehat {{b_3}}{{\hat Q}^{\left( 1 \right)}}\left( {t + 1} \right)} \right)}\limits_{} }\limits^{} } \right]{e^{\widehat { - at}}} + \frac{1}{{\hat a}}\left( {\widehat {{b_1}}{S^{\left( 1 \right)}}\left( {t + 1} \right) + } \right.}\\ {\left. {\widehat {{b_2}}{L^{\left( 1 \right)}}\left( {t + 1} \right) + \widehat {{b_3}}{Q^{\left( 1 \right)}}\left( {t + 1} \right)} \right)} \end{array} $ (11)

累减还原得序列$ \mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(0\right)} $的预测值:

$ {\widehat {{\rm{FTT}}}^{\left( 0 \right)}}\left( {t + 1} \right) = {\widehat {{\rm{FTT}}}^{\left( 1 \right)}}\left( {t + 1} \right) - {\widehat {{\rm{FTT}}}^{\left( 1 \right)}}\left( t \right) $ (12)

基于GM(1,4)的FTT预测算法描述如算法1所示。其中,步骤1~步骤4是对数据的收集与预处理,步骤5~步骤8对预处理后的数据建立GM(1,4)模型并进行FTT预测。

算法1  基于GM(1,4)的FTT预测

1.Data_collection($ \mathrm{F}\mathrm{T}{\mathrm{T}}_{\mathrm{f}}, {\mathrm{S}}_{\mathrm{f}} $$ {\mathrm{L}}_{\mathrm{f}} $$ {\mathrm{Q}}_{\mathrm{f}} $);//收集t时刻之前的//4组子流传输信息

2.$ {\mathrm{X}}^{\left(0\right)}=\mathrm{F}\mathrm{T}{\mathrm{T}}_{\mathrm{f}}+{\mathrm{S}}_{\mathrm{f}} $+$ {\mathrm{L}}_{\mathrm{f}} $+$ {\mathrm{Q}}_{\mathrm{f}} $

3.$ {\mathrm{X}}^{\left(1\right)}= $First_Order_Accumulative($ {\mathrm{X}}^{\left(0\right)} $)//建立$ {\mathrm{X}}^{\left(0\right)} $的一//阶累加数据矩阵$ {\mathrm{X}}^{\left(1\right)} $

4.$ {Z}_{\mathrm{F}\mathrm{T}\mathrm{T}}^{\left(1\right)}(\mathrm{t})=\frac{1}{2}\left(\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(\mathrm{t}\right)+\mathrm{F}\mathrm{T}{\mathrm{T}}^{\left(1\right)}\left(\mathrm{t}-1\right)\right) $ //建立FTT的一//阶累加数列的紧邻均值数列$ {\mathrm{Z}}_{\mathrm{F}\mathrm{T}\mathrm{T}}^{\left(1\right)} $

5.Build_FTT _GM($ {\mathrm{Z}}_{\mathrm{F}\mathrm{T}\mathrm{T}}^{\left(1\right)}, {\mathrm{X}}^{\left(1\right)} $)//根据式(9)建立FTT灰//色微分方程

6.$ \mathrm{a}, {\mathrm{b}}_{\mathrm{i}}= $Get _FTT _GM($ {\mathrm{Z}}_{\mathrm{F}\mathrm{T}\mathrm{T}}^{\left(1\right)}, {\mathrm{X}}^{\left(1\right)} $)//求得FTT影响因素//的权重$ \mathrm{a}, {\mathrm{b}}_{\mathrm{i}}(\mathrm{i}=\mathrm{2, 3}, 4) $

7.$ {\widehat {{\rm{FTT}}}^{\left( 1 \right)}}\left( {{\rm{t + 1}}} \right) = {\rm{Get}}\_{\rm{FTT}}\left( {{\rm{a}}, {{\rm{b}}_{\rm{i}}}, {{\rm{X}}^{\left( 0 \right)}}, {{\rm{X}}^{\left( 1 \right)}}} \right) $//得到t+1时//刻的FTT一阶累加数列

8.$ {\widehat {{\rm{FTT}}}^{\left( 0 \right)}}\left( {{\rm{t + 1}}} \right) = {\widehat {{\rm{FTT}}}^{\left( 1 \right)}}\left( {{\rm{t + 1}}} \right) - {\widehat {{\rm{FTT}}}^{\left( 1 \right)}}\left( {\rm{t}} \right) $

2.2.2 马尔科夫残差修正

GM(1,4)模型预测所得$ \widehat {{\rm{FTT}}} $与实际值相对残差Diff的计算方法如式(13)所示,根据残差Diff的大小进行如表 1所示的划分。

下载CSV 表 1 残差状态划分结果 Table 1 Residual state partition results
$ {\rm{Diff}} = \frac{{{\rm{FTT}} - \widehat {{\rm{FTT}}}}}{{\widehat {{\rm{FTT}}}}} $ (13)

1) 建立状态转移概率矩阵。由状态$ {E}_{i} $转移到状态$ {E}_{j} $的次数为$ {n}_{i\to j} $,以状态$ {E}_{i} $为起点转向另一个状态的次数为$ {N}_{i} $,则状态$ {E}_{i} $转移到状态$ {E}_{j} $的状态转移概率为:

$ {p}_{i\to j}=\left\{\begin{array}{l}\frac{{n}_{i\to j}}{{N}_{i}},{N}_{i}>0\\ 0,{N}_{i}=0\end{array}\right. $ (14)

根据式(14)构建状态转移概率矩阵P为:

$ \boldsymbol{P}=\left[\begin{array}{cccc}{p}_{11}& {p}_{12}& \cdots & {p}_{15}\\ {p}_{21}& {p}_{22}& \cdots & {p}_{25}\\ ⋮& ⋮& & ⋮\\ {p}_{51}& {p}_{52}& \cdots & {p}_{55}\end{array}\right] $ (15)

2) 计算预测值。建立状态转移概率矩阵P后,假设t时刻对象处于$ {E}_{i} $状态,若P中的第i行满足$ \mathrm{m}\mathrm{a}\mathrm{x}{P}_{i}={p}_{ij} $,则认为下一时刻$ {E}_{i} $最有可能转移到$ {E}_{j} $状态,并取$ {E}_{j} $状态区间$ \left[{\theta }_{j}, {\theta }_{j+1}\right] $的中位数作为n+1时刻的预测值。

根据状态转移矩阵P$ \widehat {{\rm{FTT}}} $进行修正,并获得最终预测值:

$ {\rm{FTT'}}\left( {{\rm{t + 1}}} \right){\rm{ = }}\widehat {{\rm{FTT}}}\left( {{\rm{t + 1}}} \right) \times \left( {{\rm{1 + }}\frac{{\rm{1}}}{{\rm{2}}}{{\rm{E}}_{{\rm{pmax}}}}} \right) $ (16)

其中,$ {E}_{p\mathrm{m}\mathrm{a}\mathrm{x}} $表示在状态转移矩阵中,t时刻状态$ {E}_{i} $根据最大转移概率$ \mathrm{m}\mathrm{a}\mathrm{x}{P}_{i} $转移到状态$ {E}_{j} $的误差区间步长。

依次计算所有子流的前向时延预测值$ {\rm{FT}}{{{\rm{T'}}}_F}\left\{ {{\rm{FT}}{{{\rm{T'}}}_{{f_1}}}, {\rm{FT}}{{{\rm{T'}}}_{{f_2}}}, \cdots , {\rm{FT}}{{{\rm{T'}}}_{{f_n}}}} \right\} $,即为GM-Markov模型预测所得的子流前向时延。

算法2给出了GM(1,4) FTT预测值马尔科夫修正算法的描述,其中步骤1与步骤2负责建立状态转移矩阵,步骤3~步骤7通过状态转移矩阵修正灰色模型FTT预测值,步骤8对状态转移矩阵进行更新。

算法2  GM(1,4) FTT预测值马尔科夫修正

Update_ State_Transition_Matrix(FTT, $ \widehat {{\rm{FTT}}} $) {//更新状//态转移概率矩阵P的函数

1.$ {\rm{R}} = \frac{{{\rm{FTT}} - \widehat {{\rm{FTT}}}}}{{\widehat {{\rm{FTT}}}}} $

2.P=State_Division(R,E);}//建立状态转移矩阵,E为残差//状态划分;GMFTT_Correction(P,FTT(t),$ \widehat {{\rm{FTT}}}\left( {{\rm{t}} + 1} \right) $){//修//正GM(1,4)FTT预测值

3.whileFTT(t)=EIdo

4.find max Pi

5.if max Pi = Pimax then

6.$ {\rm{FTT'}}\left( {{\rm{t + 1}}} \right){\rm{ = }}\widehat {{\rm{FTT}}}\left( {{\rm{t + 1}}} \right) \times \left( {{\rm{1 + }}\frac{{\rm{1}}}{{\rm{2}}}{{\rm{E}}_{{\rm{pmax}}}}} \right) $

7.end if

8.Update_State_Transition_Matrix(FTT, $ \widehat {{\rm{FTT}}} $)}

2.2.3 基于$ {\rm{FT}}{{{\rm{T'}}}_F}$的数据包分发算法

为减少缓存阻塞带来的负面影响,本文在子流上通过前向传输时延预测值评估该子流的性能,并动态设定传输数据量。根据GM-Markov模型所求得的前向传输时延预测值$ {\rm{FTT'}} $对子流进行分类。将最小$ {\rm{FT}}{{{\rm{T'}}}_{\min }} $的路径选作优秀子流,记作$ {f}_{i} $,其他子流标记为普通子流。对于优秀子流$ {f}_{i} $,数据包分发方法[18]为:

$ {S}_{i}=\mathrm{m}\mathrm{i}\mathrm{n}\mathrm{ }(\mathrm{c}\mathrm{w}\mathrm{n}{\mathrm{d}}_{i}, C) $ (17)

其中,$ \mathrm{c}\mathrm{w}\mathrm{n}{\mathrm{d}}_{i} $表示子流$ {f}_{i} $的拥塞窗口,$ C $为发送缓冲区的待发送数据包。

假设子流$ {f}_{j} $为普通子流,其前向传输时延预测值为$ {\rm{FT}}{{{\rm{T'}}}_j} $。在$ {\rm{FT}}{{{\rm{T'}}}_{\min }} $时间内普通子流较优秀子流少传输的数据量$ \mathrm{L}\mathrm{E}{\mathrm{N}}_{j} $为:

$ {\rm{LE}}{{\rm{N}}_j} = ({\rm{FT}}{{{\rm{T'}}}_j} - {\rm{FT}}{{{\rm{T'}}}_{\min }}) \times {{\rm{Q}}_{\rm{j}}} $ (18)

为使数据包按序到达接收端,减小传输时间差异,则定义为普通子流并按下式发送数据:

$ {S}_{j}=\mathrm{m}\mathrm{i}\mathrm{n}\mathrm{ }(\mathrm{c}\mathrm{w}\mathrm{n}{\mathrm{d}}_{j}-\mathrm{L}\mathrm{E}{\mathrm{N}}_{j}, C-\mathrm{L}\mathrm{E}{\mathrm{N}}_{j}) $ (19)

$ {S}_{j}\le 0 $,则该子流不传输数据。这样的发送窗口大小动态调节方式,可使子流前向传输时延趋近于最优子流前向时延,从而减小路径间传输时延差异,解决由传输时延差异带来的数据包乱序、缓存阻塞及传输性能下降等问题。

算法3给出了GMM-S数据包分发算法。其中,步骤1先获取FTT预测值,步骤2~步骤5实现在优秀子流上发送数据包,步骤6~步骤13实现在普通子流上数据包的发送。

算法3  GMM-S数据包分发

1.Get($ {\rm{FT}}{{{\rm{T'}}}_{\rm{F}}} $)//获取FTT预测值,$ {\rm{FT}}{{{\rm{T'}}}_{\rm{F}}} $

2.if $ {\rm{FT}}{{{\rm{T'}}}_{\rm{i}}} = {\rm{minFT}}{{{\rm{T'}}}_{\rm{F}}} $ then

3.$ \mathrm{f}\mathrm{l}\mathrm{o}{\mathrm{w}}_{\mathrm{i}} $=best_subflow

4.data=$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{ }(\mathrm{c}\mathrm{w}\mathrm{n}{\mathrm{d}}_{\mathrm{i}}, C) $

5.Send_data(best_subflow,data)//在优秀子流上发送数据

6.else

7.$ \mathrm{f}\mathrm{l}\mathrm{o}{\mathrm{w}}_{\mathrm{i}} $=normal_subflow

8.data=$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{ }(\mathrm{c}\mathrm{w}\mathrm{n}{\mathrm{d}}_{\mathrm{i}}-\mathrm{L}\mathrm{E}{\mathrm{N}}_{\mathrm{i}}, \mathrm{C}-\mathrm{L}\mathrm{E}{\mathrm{N}}_{i}) $

9.if data < MSS then

10.data=0

11.end if

12.Send_data(normal_subflow,data)//在普通子流上发送//数据

13.end if

3 实验设置与分析 3.1 仿真环境设置

仿真实验环境基于Ubuntu16.04,64位操作系统,使用NS工具建立网络拓扑,NS版本为3.29并添加了MPTCP模块[19]。网络测试拓扑如图 3所示。

Download:
图 3 异构无线网络测试拓扑 Fig. 3 Heterogeneous wireless network test topology

为模拟真实无线环境,在每条路径上设置分组丢失模型来模拟分布式分组丢失。路径A使用LTE蜂窝网络,设置4 Mb/s的接入带宽。考虑到LTE在大范围内相对稳定[20],丢包率设置为固定值0.01。路径B使用公共WiFi网络,设置10 Mb/s的接入带宽,路径丢包率设置为0~1.0。无线异构网络拓扑的具体参数配置如表 2所示。实验在NS-3.29仿真平台下,以传输数据量、重传次数、乱序块大小/个数与吞吐量等参数作为主要指标,同时选取RR算法及LowRTT算法作为传输性能的比较对象。

下载CSV 表 2 异构无线网络拓扑的参数配置 Table 2 Parameter configuration of heterogeneous wireless network topology
3.2 实验结果及分析

表 3给出了GMM-S、RR及LowRTT三种调度算法的传输时间、传输数据总量、传输次数、重传次数、重传占比及最大重传数据段等数据。

下载CSV 表 3 3种数据调度算法的数据传输结果 Table 3 Data transmission results of three data scheduling algorithms

相较于RR和LowRTT算法,本文提出的GMM-S算法在获得更高吞吐量的同时有效减少了重传次数。这主要是因为GMM-S基于GM(1,N)和马尔科夫优化的子流性能评估模型更有效地完成路径质量的准确评价,实现子流数据包发送的自适应动态调整。

3.2.1 GM(1,N)-Markov预测误差分析

图 4给出本文实验设置下从第44次数据包传输开始后采用GM(1,4)-Markov算法预测的最小FTT子流与实际最小FTT子流的对比数据。在第1次~第43次数据包传输过程中,Subflow_3是WiFi链路的主子流且有较高的带宽,在不产生丢包时该子流具有最小FTT,在GM(1,4)-Markov预测算法状态转移概率矩阵中,Subflow_3表现出最大的矩阵元素值。此后,即从第44次开始,GM(1,4)-Markov算法在综合分析拥塞窗口、吞吐量及丢包情况的基础上选出具有最小FTT的Subflow_1。在第47次数据包传输时,GM(1,4)-Markov算法给出了最小FTT子流为子流3的预判,但由于此时实际传输子流仍为子流1,因此出现预测值与实际值不一致的情形,即产生误差。从第48次数据包传输开始至第59次数据包传输,实际最小FTT子流为Subflow_3。类似的误差产生情形还发生在第67次数据包传输。在随后的数据包传输过程中,由于Markov残差修正算法的作用,误差得以不断修正,GM(1,4)-Markov算法预测精度不断提高,且总误差控制在1.8%左右。

Download:
图 4 GM(1, N)-Markov算法预测最小FTT子流效果 Fig. 4 Effect of GM(1, N)-Markov algorithm on predicting the minimum FTT subflow
3.2.2 数据包乱序分析

图 5给出了应用GMM-S、RR、LowRTT三种数据调度算法在无线异构网络中传输过程中出现的数据块乱序情况。从图 5可以看出:在50 s~100 s的时间间隔内,RR算法共发生199次乱序,最大乱序块大小为27 000 bit;LowRTT算法共发生749次乱序,最大乱序块大小为29 000 bit;而GMM-S算法共发生176次乱序,最大乱序块大小为16 000 bit。总体而言,GMM-S相比RR和LowRTT所产生的乱序块更少且乱序数据块也更小。这主要是由于GMM-S实现了路径质量的实时评估,并在数据分发时根据子流预测FTT自适应地分发数据包,尽可能地保障数据包按序到达所导致的,GMM-S不仅明显减少了数据包乱序的发生次数,同时也降低了乱序程度。

Download:
图 5 3种数据调度算法的乱序到达结果对比 Fig. 5 Comparison of out-of-order arrival resuts of three data scheduling algorithms
3.2.3 数据发送到达结果分析

在实验中,本文通过设置随机丢包率来模拟无线异构网络的不确定性,在传输过程中丢包的发生会引发重传。图 6给出了GMM-S、RR、LowRTT三种算法数据发送到达结果对比。在理想状态下,按序传输数据包且接收端按序接收,TSN随时间变化的图像应为单调平稳递增的图像,但重传的发生会因为反复传输而使图像出现水平线段。从图 6可以看出:RR在95.5 s时发生了一次重传,持续时间为0.2 s;LowRTT在95.6 s时发生了一次重传,持续时间为0.2 s;GMM-S则是在95.8 s时发生了一次重传,持续时间为0.1 s。GMM-S的重传持续时间最少。此外,在数据传输过程中,若发生乱序或发送数据包过大的情况会导致缓冲区阻塞,致使发送端数据包停发,在图像中表现为中断现象。在图 6中,95 s~97 s的时间段内,RR产生了4次明显中断,LowRTT产生了5次明显中断,而GMM-S仅产生2次明显中断,且中断时间远小于RR和LowRTT,这表明GMM-S工作时接收端数据接收更为平稳。

Download:
图 6 3种数据调度算法的数据发送到达结果对比 Fig. 6 Comparison of data transmission and arrival results of three data scheduling algorithms
3.2.4 吞吐量

有效吞吐量(Effective Throughput,ET)[21]定义为单位时间t内由传输层送达应用层的数据量(Application lauer Data,AD),即:

$ \mathrm{E}\mathrm{T}=\frac{\mathrm{A}\mathrm{D}}{t} $ (20)

图 7中,RR的有效吞吐量波动区间约为0.1,LowRTT有效吞吐量波动区间约为0.15,而GMM-S波动区间仅为0.01,且持续稳定在10.06 Kb/s~10.07 Kb/s之间。在95 s~96 s时间段内RR、LowRTT及GMM-S均发生了重传,有效吞吐量发生了下降,但由于GMM-S的自适应数据包分发机制会在产生丢包的子流上动态分配较少的数据包,因此GMM-S的有效吞吐量在重传发生时未受到严重影响。

Download:
图 7 3种数据调度算法的有效吞吐量对比 Fig. 7 Comparison of effective throughput variation of three data scheduling algorithms
3.2.5 服务质量评估

在实际应用场景中,较大的端到端时延会严重影响实时传输的服务质量。比如在实时视频传输服务中,若因为发送率波动较大引起应用层数据接收时间间隔增大,用户会感受到明显的视频卡顿或中断。图 8给出了90 s~100 s时间段内数据发送速率的变化情况。从图 8可以看出,LowRTT在97 s时发送速率存在大幅增加的现象,这是因为在95 s~96 s期间发生了数据包乱序现象,在97 s时缓冲区中的乱序数据包顺序交付给应用层,此时的拥塞窗口增大,发送窗口因而变大,LowRTT的发送速率出现明显上升。而在GMM-S中,每条子流维护各自的拥塞窗口,数据分发调度综合考虑子流的传输性能为子流分发合理大小的数据包,因此不会出现LowRTT发送速率大幅波动的情形。

Download:
图 8 3种数据调度算法的发送速率对比 Fig. 8 Comparison of transmission rate of three data scheduling algorithms

图 9给出了应用层数据接收时间间隔的分布数据,应用层接收时间间隔分布以平均值±95%的置信区间来反映。从图 9可以看出:RR的应用层数据接收时间间隔主要分布在1.18E7 ns~1.2E7 ns之间;LowRTT的应用层数据接收时间间隔主要分布在1.16E7 ns~1.18E7 ns之间;而GMM-S的应用层数据接收时间间隔则主要分布在1.11E7 ns~1.13E7 ns之间,范围明显小于RR和LowRTT。这表明GMM-S可提供更稳定的应用层数据传送,为网络传输服务质量及良好的用户体验提供保障。

Download:
图 9 应用层数据接收时间间隔分布 Fig. 9 Distribution of application layer data receiving interval
4 结束语

本文提出一种基于GM(1,N)前向传输时延预测与马尔科夫优化的自适应多路传输数据调度算法GMM-S,该算法综合考虑子流中吞吐量、丢包率及发送窗口等因素对传输时延的影响,采用FTT预测对子流性能进行评估,并通过调整相应发送窗口大小来最小化异构网络中的传输时延差异。实验结果表明,该算法可有效解决数据包乱序问题并显著提升网络传输性能。下一步将采用个性化数据传输算法对多路传输数据调度进行优化,进一步提高网络资源利用率与网络服务质量。

参考文献
[1]
ZHANG Tingguang, ZHAO Shuai, REN Bingfei, et al. Performance enhancement of multipath TCP in mobile Ad Hoc networks[C]//Proceedings of the 25th IEEE International Conference on Network Protocols.Washington D.C., USA: IEEE Press, 2017: 1-2.
[2]
MENA J, BANKOLE P, GERLA M.Multipath TCP on a VANET: a performance study[C]//Proceedings of 2017 ACM SIGMETRICS/International Conference on Measurement and Modeling of Computer Systems.New York, USA: ACM Press, 2017: 39-40.
[3]
PER H, KARL-JOHAN G, ANNA B, et al. Low-latency scheduling in MPTCP[J]. IEEE/ACM Transactions on Networking, 2019, 27(1): 302-315. DOI:10.1109/TNET.2018.2884791
[4]
XUE Kaiping, HAN Jiangping, DAN Ni, et al. DPSAF: forward prediction based dynamic packet scheduling and adjusting with feedback for multipath TCP in lossy heterogeneous networks[J]. IEEE Transactions on Vehicular Technology, 2018, 67(2): 1521-1534. DOI:10.1109/TVT.2017.2753398
[5]
FORD A C, RAICIU C, HANDLEY M, et al.Bonaventure, TCP extensions for multipath operation with multiple addresses[EB/OL].[2019-11-02].https://www.ietf.org/rfc/rfc6824.txt.pdf.
[6]
GAO Kai, XU Changqiao, QIN Jiuren, et al. Qos-driven path selection for MPTCP: a scalable SDN-assisted approach[C]//Proceedings of 2019 IEEE Wireless Communications and Networking Conference.Washington D.C., USA: IEEE Press, 2019: 1-8.
[7]
Multipath TCP-Linux kernel implementation[EB/OL].[2019-11-02].http://multipath-tcp.org/.
[8]
BONG-HWAN O, LEE J Y. Feedback-based path failure detection and buffer blocking protection for MPTCP[J]. IEEE/ACM Transactions on Networking, 2016, 24(6): 1-12. DOI:10.1109/TNET.2016.2634839
[9]
PAASCH C, FERLIN S, ALAY O, et al.Experimental evaluation of multipath TCP schedulers[C]//Proceedings of 2014 ACM SIGCOMM Workshop on Capacity Sharing Workshop.New York, USA: ACM Press, 2014: 27-32.
[10]
FROMMGEN A, ERBSHAUSSER T, BUCHANN A, et al.ReMP TCP: low latency multipath TCP[C]//Proceedings of 2016 IEEE International Conference on Communica-tions.Washington D.C., USA: IEEE Press, 2016: 1-7.
[11]
DENG Julong. Basic method of grey system[M]. Wuhan: Huazhong Institute of Technology Press, 1987. (in Chinese)
邓聚龙. 灰色系统基本方法[M]. 武汉: 华中工学院出版社, 1987.
[12]
LI Li. Prediction research based on AHP and grey GM (1, N) model[J]. Knowledge Economy, 2012(19): 13, 16. (in Chinese)
李礼. 基于AHP方法和灰色GM(1, N)模型的预测研究[J]. 知识经济, 2012(19): 13.
[13]
ZHAO Dan, ZHANG Tianju, ZANG Hongfei. Prediction of groundwater depth the based on grey Markvo model[J]. Yellow River, 2015, 37(4): 69-72. (in Chinese)
赵丹, 张天菊, 臧红飞. 基于灰色马尔可夫链的兰村泉域地下水位预测[J]. 人民黄河, 2015, 37(4): 69-72.
[14]
YEDUGUNDLA K, SIMONE F, DREIBHOLZ T, et al. Is multi-path transport suitable for latency sensitive traffic[J]. Computer Networks, 2016, 105(4): 1-21.
[15]
JIANG Zhuo, WU Qian, LI Hewu. Review on cross-layer optimization of end-to-end multipath transmission over the Internet[J]. Journal of Software, 2019, 30(2): 302-322. (in Chinese)
江卓, 吴茜, 李贺武. 互联网端到端多路径传输跨层优化研究综述[J]. 软件学报, 2019, 30(2): 302-322.
[16]
DONG P P, YANG W J, TANG W S, et al. Reducing transport latency for short flows with multipath TCP[J]. Journal of Network and Computer Applications, 2018, 108: 20-36. DOI:10.1016/j.jnca.2018.02.005
[17]
WANG Wei, WANG Xiaoqiang, WANG Dongyu. Energy efficient congestion control for multipath TCP in heterogeneous networks[J]. IEEE Access, 2018, 6: 2889-2898. DOI:10.1109/ACCESS.2017.2785849
[18]
PENG Q Y, WALID A, HWANG J, et al. Multipath TCP: analysis, design, and implementation[J]. IEEE/ACM Transations on Networking, 2016, 24(1): 596-609. DOI:10.1109/TNET.2014.2379698
[19]
COUDRON M, SECCI S. An implementation of multipath TCP in ns3[J]. Computer Networks, 2017, 116: 1-11. DOI:10.1016/j.comnet.2017.02.002
[20]
PARTOV B, LEITH D J.Experimental evaluation of multi-path schedulers for LTE/WIFI devices[C]//Proceedings of the 10th ACM International Workshop on Wireless Network Testbeds, Experimental Evaluation, and Characterization.Washington D.C., USA: IEEE Press, 2016: 41-48.
[21]
TAO Yang, HUANG Peng. Goodput improvement for MPTCP based on controlling difference of delay[J]. Application Research of Computers, 2015, 32(9): 2753-2756. (in Chinese)
陶洋, 黄鹏. 基于时延差控制的MPTCP有效吞吐量提高方法[J]. 计算机应用研究, 2015, 32(9): 2753-2756.