王蕊,周慧,赵海茹,赵盛萍
(玉溪师范学院,云南玉溪,653100)
近年来,随着计算机网络技术的发展,数据业务呈爆炸式增长。实时流媒体业务、社交网络、云计算、移动应用等需要消费高带宽的应用层出不穷,特别是实时流媒体业务,根据中国互联网络信息中心(CNNIC)于2021年2月发布的中国互联网络发展状况统计报告显示[1]:截至2020年12月,视频和语音等对流量要求较大的实时流媒体服务增长迅速,我国网络视频用户规模达9.27亿,较2020年3月增长7633万,占网民整体的93.7%。其中短视频用户规模为8.73亿,较2020年3月增长1.00亿,占网民整体的88.3%。实时流媒体技术必然对经济、对人们的日常工作以及生活产生深远的影响。
虽然现有技术能满足人们对网络视频业务的基本需求,但是有限的带宽成为了高质量实时流媒体传输的瓶颈。而利用终端的多个网路接口,实现终端之间的多路径并行传输,将网路资源有效聚合,可以解决目前网路带宽不足的情况。图1给出了一个简单的基于多路传输的示例,移动终端可以通过多条可用路径,同时与媒体服务器进行通信。
图1 多接口环境下多路数据传输场景
目前传输层多路并行传输协议主要有由流控制传输协议SCTP扩展而来的CMT-SCTP和多路径传输控制协议MPTCP。
SCTP被首先提出[2]。SCTP并不支持多路并行传输,但支持多宿主的特性,能在端到端建立多条连接。2004年由特拉华大学的PLE实验室(Protocol Engineering Laboratory,PEL)提出了对SCTP的扩展CMT-SCTP[3],以支持多路径并行传输。CMT-SCTP结合了TCP 和UDP在实时流媒体传输上的优势,具有选择性有序传输和分流的特性,但是CMT-SCTP不兼容现有网络和应用,因此并没有被大规模地部署商用。
2011年1月,IETF相继公布了MPTCP相关RFC文档[4]。MPTCP是对TCP的扩展,目的是以资源共享的方式,把数据流分发到多条子流上以提高网络资源利用率。MPTCP是面向连接的传输层协议,可靠性好,并且与现有的TCP协议兼容,MPTCP使用多路并行传输能够很好的实现带宽聚合。但是使用MPTCP传输实时流媒体也存在TCP协议的传输数据平滑性不够好、包重传机制增加数据包的延迟抖动和乱序等问题。
在2011年,法国LIP6实验室首先提出了并行多路径UDP(Multipath UDP,MPUDP),但是近年来国内外基于MPUDP的研究成果凤毛麟角,即使有MPUDP方面的研究,也并未针对实时流媒体传输做出优化。
IETF组织于1999年提出并且制定了MPTCP标准。MPTCP作为标准TCP的扩展协议,可用支持传输层端到端的多路径并行传输。MPTCP在功能上可分为路径管理、包调度、子流接口和拥塞控制四个方面。把以上这些功能组合在一起,路径管理发现主机之间的多条路径;包调度接着接收发往网络应用的数据流,并进行必要的操作(如:在片段发送至子流之前,把数据分割为连接级的片段并且添加连接级的序列号);子流添加自己的序列号,再把片段传递至网络;接收子流重排序数据(如有必要),并把它传递包调度模块,执行连接级重新排序;最后把数据传送到应用层。拥塞控制作为包调度的一部分,控制报文段的发送速率。
MPTCP是标准TCP的扩展,本身就具有相应的流量控制、拥塞控制和差错控制机制,并且能够保证传输的TCP友好性;更重要是MPTCP为多路并行传输的方式,对于端到端的传输速率、带宽和吞吐量上都有很大提高,更适合于实时流媒体的传输。不过,使用MPTCP协议用于实时流媒传输仍然存在和TCP协议一样的不足:
(1)TCP的发送速率乘性减小的特性使得在传输实时流媒体过程中速率陡降,大大影响实时流媒体传输的平滑性。
(2)包重传机制增加数据包的延迟抖动和乱序的可能,增加了网络开销,降低了实时流媒体的播放质量。
(3)并行多路径传输流媒体,并行传输大量数据,如果不能有效控制,接收端缓存会造成大量的溢出。
考虑到现存的互联网体系结构及新的互联网传输的需求。提出了一个基于Tng(下一代传输层)思想的多路径UDP体系结构,多路径UDP与UDP协议体系结构的对比如图2所示,该结构通过对现有互联网体系结构的兼容及扩展,能够有效支持多路径UDP传输实时流媒体的高性能目标。由图2可以看出多路径UDP通过保留UDP的语义方式保证了对应用层的兼容性,通过单条的UDP子流保证了面向网络层的兼容性。
图2 多路径UDP与UDP体系结构对比
多路径UDP为了有效地处理下层的多个UDP子流,必须实现以下关键技术:
(1)路径管理。使用主机间存在的多个IP地址,为主机发送可选地址信号,实现子流的新建、添加和删除。在设计路径管理机制时,如果多条路径同时传输时,有一条路径性能较差,时延较大,则会引起严重乱序。因此,使用多条路径全部进行传输不如使用较少的性能优的路径进行传输。
(2)数据调度。一个GOP中只有一个I 帧,I帧含有重建图像的恢复信息,所占的信息量比较大,直接关系到是否整个GOP 帧的恢复。P帧是采用运动补偿的方法传输它与前面I帧或是P帧的差值及运动矢量(预测误差),只有通过I帧中的预测值和预测误差求和之后才能构建P帧。B帧是通过前面I帧或是P帧和后面的P帧来进行重建,因此他们之间的优先级I≥P≥B。在传输的过程,对这三类的不同帧数据应该采用不同可靠性质的传输方式。因此,可提出一种基于实时流媒体编码帧优先级的数据调度策略,旨在保证关键帧的可靠到达,提高实时流媒体的解码有效性,满足实时视频数据的时延敏感性和数据相关性。研究内容主要包括:1)测量路径的带宽和RTT;2)评估子路径的拥塞状态;3)综合考虑编码帧的优先级和相关性,对实时流媒体数据序列中不同帧采取不同的传输策略
(3)接收端缓存排序。对到达接收端的数据进行合理排序并递交至应用层。多路径UDP为基于UDP并行多路径传输技术,对于传统的UDP技术“尽力而为”的特性,数据到达传输层后直接递交至应用层,由应用层来完成数据的排序任务,该策略的有优势是可提高实时流媒体传输的实时性,但对于多路径实时流媒体传输,如果继续沿用单路径UDP的传输策略,将会影响实时流媒体传输的实时性,因为将大量乱序的实时流媒体数据的排序任务交由应用来完成,增大了应用层缓存的压力,主动丢包,从而影响实时流媒体业务的服务质量。考虑到并行多路径实时流媒体数据量大、允许丢包并且实时性要求高的特点,提出了一种新的排序策略,该策略能在减小接收端应用层缓存乱序的同时,最好地满足实时流媒体数据传输的实时性需求。
本文提出了用于流媒体传输的两种多路径传输协议。多路径TCP和多路径UDP均能利用多路径传输优势提高流媒体传输的带宽和可靠性。但通过进一步分析可知,多路径TCP由于是面向连接的传输层协议,面向连接虽然可靠性好,但不可避免地增加了许多的开销和时延,如确认、流量控制及连接管理等机制,大大降低了传输效率。基于多路径TCP存在的问题,我们进一步提出了网络开销较少的多路径UDP协议,并对其系统框架及关键技术进行介绍。为了进一步验证多路径UDP的有效性,下一步在NS3上搭建多路径UDP环境及实现相关关键技术算法,评估多路径UDP协议用于流媒体传输时网络的性能。