余超群,蔡建国,宋道斌,陈 锋
(福州大学 物理与信息工程学院,福建 福州 350108)
随着移动互联网业务的发展,移动数据业务量已呈现爆发式增长。在面对诸如视频连麦、远程医疗、线上教育、安防监控、直播等对画质、交互和延迟方面具有高要求的实时视频业务时,由于通信链路不稳定、网络拥塞、带宽限制等因素,导致语音通话中断、在线视频卡顿、交流互动性变差、远程传输抖动等问题,种种限制及问题使得传统的单路传输技术渐渐地不再能满足于一些新兴业务。面对这样的网络业务新趋势,通过单一信道进行实时视频业务网络传输的格局缺陷日益明显。如何在满足实时视频低延时、高画质的业务需求,保障用户对视频业务流畅、清晰的观看体验成为亟待解决的问题。
鉴于上述问题,得益于异构网络融合技术的发展,多路并行传输技术已成为构建未来可靠、低延时实时视频传输通信系统的必然趋势。在多路并行传输技术中,客户端与服务器端可以同时利用多个通信链路进行数据传输,当其中一条通信链路处于恶劣环境,或者由于网络突发状况导致网络拥塞时,可以通过其他稳定的多条链路并行传输,从而提高网络传输效率和速度,减少传输时延,提升视频传输的性能和节点间的连通性。多路并行传输技术不仅可以有效解决单路的网络瓶颈问题,还可以提高可用通信链路的利用率,保障数据的安全性、可靠性和容错性,因此近些年来被广泛地应用于视频会议、云计算、物联网等领域。
国内外学者针对多路并行传输技术及算法优化进行了大量的研究。其中,比较主流的是国际互联网工程任务组在2009年提出的多路径传输协议(MPTCP)。该协议基于传统的TCP协议,允许通信系统同时利用多接口技术建立多个网络路径进行数据传输,并且能够自适应地在多条路径间调整数据流量,从而提升通信链路的传输效率和可靠性,提高网络吞吐量,降低MPTCP服务中断的风险[1]。但MPTCP有许多限制,容易受到不良环境的影响,在通信过程中,状态不良的链路通常会对网络速度产生巨大影响[2]。因此需要根据具体的应用场景对MPTCP协议中的分流算法进行优化。
目前,国内外学者针对MPTCP多路并行传输分流算法的优化大体上分为两类:一是拥塞控制算法,该部分的学者认为,MPTCP归根到底是基于TCP,所以拥塞控制是影响MPTCP多路并行传输性能的关键之一。该类算法主要集中在调整每个子流的传输速率,并将流量从较拥塞的路径转移到较不拥塞的路径,从而提高吞吐量和链路利用率,如链接增加算法(LIA)[3]、机会链接增加算法[4]、平衡链接自适应(Balia)[5]、加权拉斯维加斯(wVegas)[6]、mVeno算法[7]等。这些算法依赖于一个算法模型来控制每个子流的拥塞窗口(cwnd)的增加,以平衡它们的拥塞程度。二是路径调度策略,该类算法被设计为在多条路径上合理地分割数据包,以提升MPTCP多路并行传输性能[8],如最低RTT优先(minRTT)调度器、基于约束的主动调度(CP)[9]、最高发送速率(HSR)、最大窗口空间(LWS)和最低时间/空间(LTS)算法[10]等调度策略。
但对于具有高带宽、低延时通信要求的实时视频传输应用场景而言,针对MPTCP的拥塞控制算法由于需要管理多个子流进行拥塞控制及其他额外工作,因此在某些情况下可能会引入额外延迟,导致数据传输的速度变慢,从而影响实时视频的时效性[11]。其次,当网络带宽不足时,MPTCP的路径调度策略无法保证各个子流保持稳定并按照调度器预设置的权重进行数据传输,这可能会导致一些通信链路的传输速率较慢,甚至丢失某些数据包,从而影响实时视频的画面质量。最重要的是,实时视频传输要求传输时间尽量短,因此需要将延迟降到最低限度。但是,由于MPTCP的重传机制引入了延迟应答机制来避免网络中出现大量冗余数据包,导致确认的延迟时间增加,影响视频观看的实时性。此外,实时视频传输对网络资源要求较高,如果出现数据包丢失,就需要进行重传。但是,MPTCP的重传机制采用快速重传和快速恢复机制,在网络出现比较严重的拥塞或故障时,可能会导致重传次数增多,占用更多的网络资源和系统带宽,使得大量的数据包丢失,从而需要进行多次重传。但这又会导致系统占用更多的带宽和系统资源,对网络性能造成负面影响。
综上所述,以TCP为基础的MPTCP多路并行传输技术并不适合应用在实时性强、连贯性要求高的实时视频业务。与此相比,用户数据报协议(UDP)具有传输速度快、实时性好等特点,在数据传输过程中,不需要进行握手和确认等操作,因此传输时延较低,常被运用于音频、视频、游戏等需要实时传输的场景[12-14]。但UDP对于具有一定互动性要求的实时视频传输而言,它尽力而为的传输方式,使得它在数据传输的可靠性和稳定性方面存在不足。当数据包出现丢失或损坏时,由于无法进行重传,往往容易出现视频卡顿、花屏等现象,影响用户体验。且UDP没有拥塞控制机制,当网络出现拥堵现象时,可能会由于视频数据包发送速度过快,进一步加剧网络拥堵,进而影响传输效率和稳定性。
为避免现有的多路并行传输技术在实时视频领域上存在的不足,满足实时视频的低延迟、高画质需求,本文基于UDP,设计并实现了实时视频多路并行传输的框架,该框架既能满足高可靠性和稳定性要求,又满足端到端整体时延短的要求。基于此框架,提出快速链路动态感知的多路分流算法(FLDA),通过对链路间的网络参数进行建模,结合反馈包信息动态分配链路报文分流,在最大程度上提升了链路利用率,保证数据包在目标时延内到达接收端。
基于UDP实现可靠、安全的数据传输,通过引入有限次数据包重传和基于反馈数据包的流量控制及拥塞控制,动态地根据网络状况对数据包丢失、网络拥塞等异常情况进行处理,提高UDP的可靠性和稳定性[15-16]。设计了目标延时约束下的快速链路动态感知分流算法,在多路并行传输模型中,报文分流主要包括链路选择和报文分发。本文将各个链路的带宽、端到端时延、目标延时等网络参数进行建模[17-20],根据算法模型动态地调整报文分流,以适应网络拓扑和流量变化,并能够快速地对异常数据包在满足目标延时的约束要求下进行重传,在保证用户体验的同时,实现链路利用率和时延之间的平衡。
实时视频多路并行传输系统通常由视频源、视频编码器、流媒体服务器、用户服务器、视频解码器、用户端组成,通过卫星、LTE基站、IP网络等方式进行数据传输,如图1所示。在该系统中,视频源是产生视频信号的设备,如摄像头、采集卡等,它们负责采集视频信号。视频编码器则是对视频信号进行编码和压缩,常见的编码方式有H.264、H.265、VP9等,可以根据不同的场景和需求进行选择。流媒体服务器是该系统的核心设备,它可以接收来自不同视频源的视频流并存储、转发给用户服务器。用户服务器则是用于接收和缓存视频数据的设备,一般会处于用户和流媒体服务器之间,以提高视频传输质量和用户体验。视频解码器是解码和还原视频信号的设备,它将编码后的视频流转换为可视的图像和声音,通常被集成在用户的终端设备上,如电脑、手机、平板等,以实现更加高清晰度、流畅、真实的视频观看体验。用户端,则是指使用者观看视频的设备,如电脑、手机、平板等,用户端通过与用户服务器交互,从流媒体服务器获取编码后的视频数据。
在该场景中,流媒体服务器和用户服务器间的通信由卫星链路、LTE链路和IP网络三种不同类型的网络构成。系统框图如图2所示。其中,流媒体服务器通过不同的网络建立多条链路进行实时视频数据传输,并通过接收端发送的反馈数据包信息,综合分析链路当前的网络状态、目标时延、带宽、端到端时延等因素,将数据包通过其中的一条或多条链路采用多路并行传输技术传递到用户服务器。
该框架用于异构网络平台下对实时视频的端到端传输业务,其目标是在满足目标时延约束条件下最大化实时视频用户的体验质量。其中发送端主要由三大模块组成,包含数据包分配模块、链路选择与切换及数据包重传模块、参数控制模块。由于实时视频的特性,本文采用UDP传输数据。通过接收端的反馈模块和发送端的参数控制模块及数据包重传模块,提高UDP的可靠性和稳定性。本文研究的主要内容集中在FLDA框架下的数据包重传和数据包分配模块。FLDA将每个链路状态建模为目标时延、端到端时延、带宽和网络利用率的组合,通过参数控制模块传递的数据,实时计算并评估当前子流的网络状态,当某一条链路出现网络波动、拥堵或其他异常情况时,快速地将异常链路上尚未确认的数据包和尚未发送的数据包转发至网络状况良好的链路,满足数据包传输在目标时延约束的情况下,充分地利用链路网络资源,实现链路利用率最大化和端到端时延最小化。
在实时视频多路并行传输场景中,结合当前实际生活异构互联的网络环境,采用异构网络融合技术,使用户端和服务器端可以使用多种不同或相同的网络,如LTE、IP网络、WiFi等,建立多条链路进行数据传输。本文所提算法以获得基于链路状态的最优数据包重传时间节点,避免部分链路因网络拥塞或某些突发状况导致系统错误判断并重传该链路上的数据包,使得该类链路的网络资源得不到充分利用。同时又保证接收端的数据包能够在满足目标时延的约束条件下,通过有限次的重传恢复数据包,保障实时视频传输的流畅性和低延时性。
假设发送端到接收端传输数据包可以使用的链路有n条,每条链路的网络状态属性都与端到端时延D、链路带宽B、丢包率PLR、链路上传输的数据包数量M、网络利用率U和目标时延Latency有关。因此,每条链路的网络状态属性都可由Si= {Di,Bi,PLRi,Mi,Ui,Latency},i= 1,2,…,n描述。其中,端到端时延D是衡量数据包交付情况和传输链路网络状况的一个关键要素,其是指数据包从发送端发送开始到接收端接收到该数据包的时间段,主要受传播时延P、排队时延Q和传输时延T影响。如式(1)所示:
Di=Pi+Qi+Ti,i=1,2,…,n。
(1)
(2)
而排队时延的大小通常取决于数据包大小、节点的利用率和传输速度以及数据包周期性或突发性的发送方式。在实时视频传输场景中,数据包通常是以一定的码率进行传输,故流量是连续性地到达节点,因此排队时延的大小可表示为:
(3)
链路相对时延即传输时延T,取决于发送数据的大小和链路网络当前的带宽,即:
(4)
因此,联立式(1)~(4)即得实时视频多路并行传输第i路的数据包端到端时延公式:
(5)
在实时视频多路并行传输系统中,影响实时视频传输质量和系统性能的往往是多路传输网络中的瓶颈链路,即传输网络i条链路中网络状态最差的链路。为了保证实时视频的流畅性,使数据包在目标时延Latency内到达接收端,同时兼顾数据包有限次传输的可靠性,就需要为瓶颈链路考虑预留一段重传时间Tre,使其整体的端到端时延满足目标时延的约束,即满足:
(6)
式中:sign(MiL)为符号函数
(7)
针对不同的实时视频传输业务类型,还需根据业务的实际情况和需求对多路并行传输系统的传输时延、丢包率和QoS等因素进行约束,因此,本文的FLDA采用线性规划手段将链路建模为当前带宽、端到端时延、网络利用率及目标时延的数学模型,通过求解这个线性规划问题,可以得到当前网络允许的最大链路切换时间节点,即得传输延时最小化的链路组合,目标函数和约束条件如下:
(8)
式中:D0表示链路空闲时刻的端到端时延,即链路上传输的数据包无需经历排队时延 ,τ表示一个可变值,它取决于实时视频传输业务类型的端到端时延要求,如直播、远程会议、远程医疗等延迟要求分别为τ=(τ1,τ2,τ3)。由式(8)可知,在目标延时的约束前提下,尽可能地利用链路网络资源带宽,在提高链路利用率和通过有限次重传确保传输可靠性的要求下,瓶颈链路的最佳切换时间是有上限的。
但在数据包实际传输过程中,链路的网络状况是在不断变化的,每个链路的实际带宽、网络利用率、端到端时延都不同且在不断地变化,因此针对链路的数据包重传最佳链路切换时间点Tre也是在不断变化的。在此优化问题的驱动下,本文提出的FLDA通过接收端的反馈数据包信息实时计算Tre,根据计算出的Tre和最后响应时间Tlst进行比较,如算法1所示。
算法1 动态链路状态感知算法输入 Di,Mi,L-,Bi,Ui,RTTi,D0,τ, Latencyi=1,2,…,n输出 链路i的网络状态1)LinkState获取链路i当前状态2)Tre根据获取当前时刻Tre的值3)Tlst获取当前时刻Tlst的值4) if LinkState==active_stable then5) if Tre>Tlst then6) Linkstateactive_unstable7) else if Tre=Tlst then8) Linkstateactive_wary9) else10) Linkstateactive_stable11) end if12)end if13)return Linkstate
Tlst是指当前时刻距离上一次接收到反馈数据包的时间段,即:
Tlst=Currenttime-lstACKtime。
(9)
如果Tre>Tlst,表明该链路的网络情况已经不再适合传输数据包,需要将该链路上尚未收到确认响应报文的数据包转移到状况良好的链路上进行重传,以确保这些数据包能够通过重传在目标时延内到达接收端,如算法2所示。如果Tre 算法2 动态链路的多路分流算法输入 LinkState, Trei,Tlsti i=1,2,…,n输出 链路数据包分配权重ωi1) αi计算链路i的权重因子2)for i∈{1,2,…,n} do3) if (LinkState!=active_stable) then4) ωi=05) else 6) ωi=∑ni=1αiαi7) end if8)end for9)return ωi10)αi=TreiTlsti,i=1,2,…,n 为了验证FLDA在实时视频多路并行传输系统动态网络环境下的响应能力,本文在增强UDP可靠性和稳定性的基础上,通过HoloWAN Network Emulator仿真仪器实现了FLDA,并通过与MPTCP进行模拟实验对比,验证了FLDA在实时视频传输场景下的可行性和稳定性。 实时视频多路并行传输系统的仿真实验场景如图3所示。实时视频通过编码板将编码后的视频信息以一定的码率传输到路由器,路由器通过两条不同的链路将编码后的数据包进行传输,并通过仿真仪发送到接收端,经过解码过程将原视频展示在显示器上。 图3 实验环境示意图Fig.3 Schematic diagram of experimental environment HoloWAN Network Emulator仿真参数如表1所示。鉴于当前网络高宽带低延时的发展情形,本文的模拟实验将仿真链路的端到端时延设置为10 ms,瓶颈带宽设置为100 Mbit/s。此外,链路数据包的具体端到端时延Di、链路带宽Bi、链路利用率Ui等参数均为变值,在传输系统运行过程中实时测量,其他值为不变参数。 表1 实验仿真参数Tab.1 Experimental simulation parameters 本文通过HoloWAN Network Emulator仿真评估了在Latency=120 ms的实时视频多路并行传输场景下,基于UDP的FLDA相较于传统MPTCP的优势。如图4所示,结果显示FLDA在减小端到端时延的方面有显著改善。当链路出现网络拥塞等异常情况时,如图中MsgID在1 800附近出现的峰值,FLDA相较于MPTCP,可以通过动态链路感知,及时地调整链路的数据包分配,并将拥塞链路上的数据包通过其他链路进行重传,从而显著地降低重传数据包的端到端时延,故拥塞处的峰值变化远小于MPTCP。此外,图中FLDA曲线出现的峰值个数远少于MPTCP曲线中出现峰值的个数,表明FLDA相较于MPTCP在实时视频多路并行传输场景下具有更强的稳定性。 图4 MPTCP对比仿真结果Fig.4 Simulation results compared to MPTCP 对FLDA中的Trei采用固定值与自适应动态变化重新进行实验对比,结果如图5所示。与固定切换时间Trei相比,具有自适应变化Trei的FLDA在降低拥塞链路上重传数据包的端到端时延具有显著改善。这表明合适的切换时间Trei对处理实时视频多路并行传输过程中面临的拥塞问题具有重要作用。如果Trei值不适当,链路的端到端延迟可能反而更长,如图5中MsgID在400、800、1 300处的峰值红线所示。 图5 固定Tre对比结果Fig.5 Results compared to fixed Tre 本文针对现有的MPTCP在实时视频传输方面的不足,提出并实现了一种基于UDP的高可靠性、低端到端时延的多路并行传输架构和多路并行传输分流算法FLDA。为现有的实时视频多路并行传输提供了新的实现方案,有效提升了在链路拥塞状态下实时视频的传输质量和流畅性。 首先,针对实时视频传输场景设计了基于UDP的多路并行传输框架,在发送端和接收端引入一些控制模块和反馈模块,并结合数据包有限次重传,以提高该框架的可靠性和稳定性。其次,将链路状态建模为端到端时延、链路带宽、丢包率等网络因素的组合,采用基于链路状态的FLDA实现数据包分配。通过优化拥塞链路最佳切换时间,从而最小化重传数据包端到端时延,可以得到基于目标时延约束的最优动态链路分配方案。通过仿真实验结果表明,该算法提升了动态环境下链路切换的响应能力,具有更少、更短、更稳定的重传数据包端到端时延。4 实验模拟与结果分析
4.1 测试场景
4.2 结果分析
5 结束语