多路径UDP关键技术研究
2022-01-14赵海茹赵盛萍
王 蕊,周 慧,赵海茹,赵盛萍
玉溪师范学院,云南 玉溪 653100
0 引言
随着信息技术的飞速发展,在视频会议、人工智能、高清视频、虚拟现实等各个领域都出现了大量的应用。它们有严格的服务质量(QoS)要求。目前,大多数数据传输都通过一条路径。在大多数情况下,单个路径不能完全支持这些新兴的应用程序。此外,在高损耗或延迟的情况下,单路径传输的性能显著下降。为提高新兴应用的网络服务质量,优化现有的传输技术至关重要。终端设备之间多路径的可用性不断增加,为解决上述需求提供了机会。并发多径传输(CMT)是一种很有前途的解决方案,它可以聚合多条路径的带宽。
1 多路径传输协议的研究现状
传统的传输协议,如TCP和UDP,不支持同时使用多条路径。为了解决该问题,IETF标准化了多路径TCP(MPTCP)[1]和流控制传输协议(SCTP)。MRTP(Multipath RTP)是一种多路径RTP(Multipath RTP),它定义了如何利用终端设备之间的多条路径传递多媒体信息。杜恒[2]提出SCTP具有多流的特性,支持多宿主,在端到端之间可以有多个可用的IP地址。在SCTP的主版本中,多个路径只被认为是主路径的备份。为了进行扩展,SCTP增加了CMT的特性。樊晓原[3]基于CMT-SCTP 协议对实时流媒体进行传输,研究CMT-SCTP 传输协议在实时流媒体传输场景下的所遇到的严重乱序、当前CMT-SCTP的重传策略比较简单不适合于实时流媒体传输等问题展开了研究。MPTCP是面向连接的传输层协议,面向连接虽然可靠性好,但不可避免地增加了许多的开销和时延。SCTP很好地结合了TCP 和UDP在流媒体传输上的各自优势,能够很好地支持流媒体的传输,但是SCTP不兼容现有网络和应用。综上,虽然SCTP和MPTCP能够提高端到端的传输速度,提高网络传输效率,但仍然不适用于流媒体数据的传输。
2 多路径UDP协议
2.1 多路径UDP框架
多路径UDP的总体框架分为用户层、编码层、流处理层、多路径UDP传输控制层和网络层。多路径UDP是一种基于会话的协议,为上层应用程序在多个流上分发和传输数据提供了方便的工具。从协议栈架构的角度来看,MPUDP作为应用层和传输层之间的中间层。应用程序通过常规的套接字API与多路径UDP交互,多路径UDP管理多个TCP/UDP流。
2.2 多路径UDP实际部署存在的问题
综合分析传输层协议及并行多路径传输技术的特点后发现,要实现多路径UDP的实际部署需要解决如下问题。
(1)不能有效地建立并行多路径UDP。在多路径并行传输技术中,若要实现并行多路径的建立,发送端必须知道接收端是否支持多路径,若支持则两端必须交换双方的地址信息以确认对端可用的IP地址。而UDP是无连接的、不可靠的传输协议,它不能保证双方的多路径可用性信息和地址信息是否可靠地交付,有效建立并行多路径的概率会大大降低。
(2)因为乱序引起的较高主动丢包率。现有流媒体传输过程中,UDP协议使用尽力而为的交付方式,即不保证可靠交付。在基于并行多路径的流媒体传输技术中,因为多条路径性能的差异,UDP协议发送端所发送的每个数据包可能不按照原先发送的顺序到达接收端,有可能早发送的数据包较后到达接收端。并且,多路径并行UDP传输本来就是通过不同的路径传送,因此,出现乱序的可能性更大。若对未按序到达的数据报采用直接丢弃的方式,这将会因主动丢包率较大而造成流媒体传输质量降低。
(3)严格的排序不能保证流媒体传输的实时性。与单径传输不同,在多径传输过程中,包在多条路径上进行传输,包由于在不同性能的路径上进行传输,因此引起乱序可能性更大。若对到达接收端的数据在缓存区进行严格的排序,在流媒体数据不能按序到达的情况下,缓存区不能向应用层及时递交数据,流媒体的实时性不能得到保证。
综上所述,解决如何有效建立多路径UDP、传输过程中较高的主动丢包率、严格排序造成实时性降低等问题可以有效地增大网络吞吐量、减少乱序及降低丢包率,并通过多路径传输提高网络资源的利用率。这正好与流媒体传输技术朝着大流量、高服务质量方向发展相一致,具有极强的现实意义。
2.3 多路径UDP关键技术
为解决以上问题,笔者提出了以下关键技术促进多路径UDP的实际部署。在传输过程中,发送方为每个路径分配一个流。原始应用程序数据分布在多个流中。当到达目的地时,这些数据包结合起来重建原始消息。多路径UDP的关键技术如下所述。
(1)路径建立。使用并行多路径UDP 技术传输流媒体,首先要研究的内容就是在初始化过程中,怎样有效建立路径,能够对两端是否支持并行多路径 UDP 传输、动态的添加可用的 IP 地址删除不可用的 IP 地址等信息进行可靠的交互。流媒体传输对实时性要求高,但是可以允许一定的丢包率。对于 UDP 协议来说,它的特点是不可靠、启动时间短、时延小。并行多路径 UDP 技术对多条 UDP 路径实现带宽聚合,提高整体的传送速率、吞吐量,更符合流媒体传输的特点。然而,基于UDP 协议的并行多路径传输也是不可靠的,如果发生丢包的现象,也没办法通知发送端重新发送包。因此,如果在初始化的过程中,使用 UDP协议发送包含支持并行多路径 UDP 传输、交互两端的 IP 地址等重要信息显然是不够有效的。
基于上述问题,文章提出了一种有效建立并行多路径UDP的策略,即对含有是否支持多路径 UDP 传输、动态的添加、删除 IP 地址等重要信息的包,建立一条可靠的 TCP连接发送,而其他流媒体大数据使用实时性高,有一定丢包率的 UDP 协议发送。初始化时,首先在此路径上建立一条可靠的TCP连接,然后发送端和接收端基于该TCP进行三次握手,在SYN,SYN/ACK的交换过程中,增加双方协商是否采用多路径UDP协议。如果双方都支持并同意采用多路径UDP协议,则完成多路径初始化。双方再通过该TCP连接交换可用的地址信息,任意一方可以采用一对当前没有使用的地址来新建一个UDP子流,以此实现多路径UDP并行传输。路径管理示意图如图1所示。
图1 多路径UDP路径管理示意图
(2)数据调度。建立并行多路径UDP容易导致数据乱序问题,原因在于即使是每条路径同时传输数据的时候,到达接收端时也不是同时到达。并且UDP协议本身也会因为数据在经过中间路径的传送时会根据各个数据传送的路径不同或者其他原因而造成这些数据到达的顺序不同。传统的轮询方式的资源调度,即当应用层发送数据时,分组被依次分配给每条路径进行传输。 轮询方式的优点是简单、直接。但是它没有考虑不同路径在带宽、延迟和丢包率等方面的差异,并没有解决乱序问题。因此,通过一种有效的资源调度的方法,能够使数据在接收端大致按序进行,减少不按序丢弃的数据,并且保障流媒体传输的实时性。因此,在充分考虑流媒体传输低时延和高带宽的要求下,研究并设计一种尽量保证数据按序传输的资源调度算法。首先设计一种UDP路径的带宽和前向传输时延测量策略。再综合考虑各子流间的带宽和前向时延,用相关性因子给子流分类,使得同一集合内的子流传输时延差相对较小。然后在逻辑集合内采用最快路径优先算法(FSF算法),集合间采集合间计算发送起始序列号,使多子流上的数据尽可能按原顺序到达接收端,以此减轻因时延差异导致的数据乱序。
(3)数据排序。现有的并行多路径传输的排序策略中,基于面向连接的可靠特性,都是严格排序的。面向连接的严格排序策略是每条可靠路径数据包传输完成后进行排序,然后在总的接收端再开辟大量的缓存进行排序。在排序过程中,如果个别包时延较大,则要等待它到达排序;如果有包丢失,则通知发送端重新发送。该策略的优势是可靠性强、内容基本不会发生差错,但是实时性较弱。对于文件、邮件类型的数据传输比较合适。考虑到流媒体数据量大允许丢包并且实时性要求高的特点,本文采用一种不严格按序的数据排序策略。由于UDP数据报本身不具有序列号,为了实现接收端数据的排序,首先在发送端给UDP数据报选项字段中加入连接级序列号。接收端根据连接级序号,对到达接收缓存的数据进行排序。当缓存中的数据到达一定数量便递交应用层,对于未按序到达的数据,接收端采取丢弃的策略。
3 结束语
文章提出了基于多路径UDP进行流媒体数据的传输。相比SCTP和多路径TCP传输协议,多路径UDP结合UDP与并行多路径传输技术的特性,可进一步提升流媒体传输实时性需求。为实现多路径UDP协议,文章还设计了协议的框架及关键技术,下一步将采用NS3仿真工具验证所提关键技术算法的有效性。