- 1 -
中国科技论文在线
基于多连接的实时流媒体传输终端与方法
辛中文,赵耀**
作者简介:辛中文(1989-),男,硕士研究生,下一代网络
通信联系人:赵耀(1979-),男,副教授,下一代网络业务提供和业务支撑技术
(北京邮电大学网络与交换国家重点实验室)
摘要:一种基于多连接技术的实时流媒体传输终端和方法,该终端是在单连接终端基础上增设信令控制单5
元和媒体传输单元构成的,信令控制单元负责完成多连接链路的协商与建立,媒体传输单元负责完成媒体
流的收发传输功能。本发明的创新优点是:提高了建立多连接数据传输的可能性,从而提高了资源利用率
和传输效率,能够在更少的时间内传输更多的数据。而且,本发明方法中采用的基于 RTP 实时传输协议和
RTCP 实时传输控制协议的连接质量评估算法、流量分配调度算法和拥塞控制算法,可显著提高数据传输速
率、减小延时、减少不必要的快速重传,使得用户的体验效果得到显著改进。 10
关键词:流媒体;多连接;传输;SDP;RTP;SIP
中图分类号:
Real-time streaming media transmission terminal and a
method based on multiple connections 15
Xin Zhongwen, Zhao Yao
(State Key Laboratory of Networking and Switching Technology,Beijing University of Posts and
Telecommunications)
Abstract: A real-time streaming media transmission terminal and a method based on multi-connection
technology, the terminal is connected to the terminal based on the creation of a single control unit 20
signaling and media transmission unit composed of multiple signaling connection control unit
responsible for the completion of negotiations with the establishment of a link media transmission unit
is responsible for completing the transceiver transmission media stream. Innovation and advantages of
the invention are: to improve the possibility of establishing a multi-link data transmission, thus
improving the efficiency of resource utilization and transmission, can transmit more data in less time. 25
Moreover, based on the connection quality real-time transport protocol RTP and RTCP Real-time
Transport Control Protocol used in the method of the invention, assessment algorithms, flow and
congestion control algorithm scheduling algorithm can significantly improve data transfer rates,
reduced latency, and reduce unnecessary fast retransmit, the effect of making the user experience has
been significantly improved.(10 Points, Times New Roman) 30
Key words: Streaming ; Multi-connection; Transmission; SDP; RTP; SIP
0 引言
在现有的多媒体传输方式下,网络的吞吐能力没有被最大限度的使用。并且随着网络技
术的发展,越来越多的终端设备(如智能手机、平板电脑、笔记本电脑等)同时拥有 2G、35
3G 和 WiFi 等多种接入网络,这为流媒体的实时多连接传输提供了非常合适的应用环境[1]。
多连接传输能够弥补单连接传输的缺点,它可以最大限度地聚合多个网络的有效带宽,
实时动态调整各链接的传送量,最大效率的发送流媒体文件,从而提高各连接的有效带宽利
用率,提供更好的音视频享受和 QoS。
现有的对等互联或点对点 P2P 流媒体传输是一种多连接传输技术,但是,它在播放前 40
需要对媒体流进行缓存,只有将一部分媒体流全部接收到后,才能播放。缓存必然导致
延迟,而且,不同用户的缓存进度不同,使得节目不能同步,因此严格地讲,P2P 并非实时
传输。再者,在 P2P 技术中,流媒体数据是在多个终端 Peer 之间传输而非一对通信终端。
- 2 -
中国科技论文在线
因此,P2P 流媒体与实时流媒体技术有根本区别。
实时流媒体的特点是:数据是动态变化的,事先无法预知大小;实时性强,对传输延迟45
与抖动要求较高;音频数据和视频数据之间要求严格同步;数据量大,对网络吞吐量有较高
要求。多连接实时流媒体传输面向完全实时的音视频通话,缓存时间极短,通信两端必须保
持一致,并不需要像传统多连接应用那样等待流媒体数据传输完成无误后才可以使用[2]。
基于多连接的实时流媒体传输系统,充分考虑流媒体数据的特性,利用传统多连接技术
的分块和并发传输的思想,配合 RTP/RTP+UDP 协议,同时加入多连接质量评估、数据流动50
态分配、拥塞控制等功能,使得多连接技术能够在实时流媒体数据传输上得以使用,提高了
媒体流的传输效率、传输速度、用户体验和带宽利用率。
1 研究现状
为了有效解决和探测通信双方是否都具备多连接的特性的问题,目前现有技术的实现方
式主要有下述两种: 55
方案一:通过对多媒体会话描述协议 SDP(Session Description Protocol)扩展携带多连
接信息。其实施方案是通过在 SDP 协议中添加描述多连接特性的属性字段,用于支持多连
接传输,同时携带多个连接可用地址信息,用于后续的会话协商功能。
该技术方案通过扩展 SDP 协议来携带多连接信息的方法是可行、有效的,但是,其缺
陷是:首先它未考虑单个网卡情况下的多连接特性,该方案一般默认在只有一个网卡时,就60
不具备多连接特性。只有具备多个网卡时,才具备多连接特性并携带相应的地址端口信息,
因此该技术方案不能保证多连接的顺利建立。其次,它只是提供一种信令方面的支持多连接
技术的方法,并未考虑到多连接建立后,应如何协调多个连接上的数据传输,例如:如何探
测各个连接的可用带宽,以便分配流媒体数据进行传输,当连接状态发生改变时(如从空闲
变为拥塞时,或连接丢包情况严重不再适合传输数据时)如何调整数据流的分配策略,以适65
应这种改变。还有多个连接流媒体数据在对端的排序重组问题。
方案二:通过对数据包包头扩展携带多连接地址信息。其实施方案是先以单连接的方式
建立连接,并在数据传输过程中,周期检测是否有新的可用的地址端口可以使用,如果有新
的可用的地址端口,就将该可用的地址端口信息填入扩展的数据包包头传送给接收端;接收
端收到此信息后,会检测判断自己是否同样具有的新的可用的地址端口,并将检测判断结果70
反馈给发送端。如果接收端同样支持建立新的连接的条件,则发送端和接收端根据各自的新
的可用的地址端口信息建立新的连接。
该技术方案使用数据包包头携带多连接信息,虽然可以达到建立多个连接的目的,但其
缺陷是:浪费了过多的时间用于检测发送端或接收端是否支持新的可用的地址端口信息,也
会增加包头的字节大小,使得同样字节大小的数据包携带的有用数据信息更少,同时,通过75
在已经建立单连接的基础上继续添加可用的连接的方法,在数据传输的初始阶段,很可能并
不能达到最大范围的聚合有效带宽的目的,因此该技术方案的效果往往是不能让人满意。
为有效解决多个连接上数据传输的问题,目前现有技术实现方式主要是:
《一种改进的适用于多连接多路径的传输方法》(中国专利申请公开号:
CN101719918A)申请提供的一种改进的适用于多连接多路径的传输方法如下:主机 A 通过80
两个网络接口与网络上的主机 B 连接,主机 A 与主机 B 之间要传输的应用数据分割成多个
逻辑独立的数据流,主机 A 与主机 B 之间的每个数据流都绑定在特定的路径上进行传输,
在不发生连续拥塞丢包和路径故障的情况下,不允许进行数据流传输的路径切换;当发生连
- 3 -
中国科技论文在线
续拥塞丢包和路径故障时,发送端就会启用路径切换机制,将故障路径上的数据都转移到新
的路径上进行传输。主机 A 随时探测新的可用路径,并删除旧的故障路径,通过向主机 B85
发送动态地址添加和删除数据块来达到动态添加新路径和删除旧路径。该方法用于建立和实
现多连接多路径的数据传输。
该技术方案没有考虑多个连接的不同属性和动态变化的特性,所带来的数据流量在多个
连接上分配传输的动态变化的问题(即负载均衡策略动态变化的问题),同时也没有考虑针
对实时流媒体的特殊应用场景下,对数据包的丢包和重传的特殊要求:应该尽量满足用户的90
延时小、丢包数量尽量少的体验要求。
2 基于多连接的实时流媒体传输终端功能框架
如图 1 所示,为一种基于多连接的实时流媒体传输终端功能框架示意图,该终端构建在
传统单连接终端之上,包含所有单连接终端的功能模块,这里提出的是在单连接终端上新增
的功能模块。 95
基于多连接的实时流媒体传输终端的功能框架主要由信令控制单元和媒体传输单元组成:
多连接实时监测模块
多连接协商与建立模块
流量分配调度模块
合流模块
信令控制单元 媒体传输单元
QoS质量评估模块
数据缓冲区模块
基于多连接的实时流媒体传输终端框架
图 1 基于多连接的实时流媒体传输终端框架图
信令控制单元 100
信令控制单元完成多连接链路的协商与建立。一方面,通过与网络实体交换信令消息,
完成如用户注册、建立信令通道等各种信令交互功能;另一方面,当信令通道建立起来后,
触发媒体传输单元,启动媒体流的收发过程。
信令控制单元包含了以下功能模块:
多连接实时监测模块 105
多连接实时监测模块检测自身网络状况,将监测结果发送给多连接协商与建立子模块以
供其与通信对端协商与建立连接使用;多连接实时监测模块若发现自身出现新的可用连接,
则通知多连接协商与建立模块发送连接建立请求给通信对端,请求将该新的可用连接添加到
- 4 -
中国科技论文在线
现有的会话中,若发现某个自身在用连接发生断裂,则通知多连接协商与建立模块发送连接
删除请求给通信对端,请求将该断裂连接从现有会话中删除并将该信息发生给通信对端。整110
个通信过程中,多连接实时监测模块一直处于监测状态,只要网络状况发生变化,它就会通
知多连接协商与建立模块调整通信双方网络连接。
多连接协商与建立模块
多连接协商与建立模块负责发送信令协商请求给通信对端,完成会话协商功能。通信开
始前,多连接协商与建立模块接收多连接实时监测模块提供的自身网络信息,将自身网络信115
息添加到会话建立请求消息包中发送给通信对端请求建立多连接会话。
通信过程中,多连接协商与建立模块不断接收多连接实时监测模块提供的自身网络变化
信息,并根据该信息类型发送链接建立请求或链接删除请求;若信息是自身出现新的可用连
接,则多连接协商与建立模块发送连接建立请求给通信对端,请求将该新的可用连接添加到
现有的会话中,若信息是某个自身在用连接发生断裂,则通知多连接协商与建立模块发送连120
接删除请求给通信对端,请求将该断裂连接从现有会话中删除并将该信息发生给通信对端。
同时,多连接协商与建立模块不断接收通信对端发送来的请求,若为连接添加请求,则
该新的可用连接加入到现有会话中并回复对端,若为连接删除请求,则将该连接从现有会话
中删除并回复对端。
另外通信过程中,多连接协商与建立模块也会与合流模块交换信息,将合流模块统计得125
到的对端连接质量参数如数据包发送量、丢包率、时延等信息以 RTCP[3]包的形式发送给对
端。
媒体传输单元
媒体传输单元主要完成媒体流的收发功能。在信令控制单元完成会话建立、建立起信令
通道后,便启动媒体传输单元进行媒体交互。其媒体交互包括:控制媒体采集设备采集原始130
媒体流、从媒体采集设备中获取原始媒体流进行编码并发送至通信对端、从通信对端获取媒
体编码流进行解码,将解码后的流呈送给终端播放。本文档只描述在多连接终端里增加的媒
体传输模块,与传统流媒体终端中相同的模块不进行描述。
QoS 质量评估模块
为了充分利用各个连接的有效带宽达到负载均衡的目的,QoS 质量评估模块负责依据连135
接的数据包发送量、丢包率、时延等信息实时统计和计算各连接的网络状况和吞吐能力,判
断各连接所处状态即是空闲、正常、拥塞还是失效状态,从而为流量分配调度模块提供决策
依据。
本系统对传输层透明,采用 RTCP 协议作为流媒体数据包传输信息的统计工具,发送端
利用接收端回馈的 RTCP 的 RR 包信息进行阶段性吞吐能力统计计算,RR 包信息中包括发140
送端自前一个 RR 包发送以来所丢失的 RTP 数据包的比率,还包括发送端自前一个 RR 包发
送以来收到的最高的数据包序列号,以及接收这些数据包所用的时间。连接的带宽质量即可
根据与流媒体数据包的有效发送量成正比、与丢包率和传输时间成反比的关系算的。
流量分配调度模块
流量调度分配模块完成两方面的功能:第一,根据 QoS 质量评估模块提供的各连接的145
带宽质量决定各个连接的发送窗口的大小的优先级;第二:完成流量发送路径的选择,根据
流量分配策略实时决定流媒体数据应该发往哪个连接传输[4]。
- 5 -
中国科技论文在线
合流模块
合流模块负责接收通信对端发送来的流媒体数据,并统计各连接流媒体数据的发送量、
丢包率、时延等信息,然后将各个连接上的数据流按照全局序列号进行重排序,递交回放模150
块供其使用。
本系统采用双层序列号编码方案,每个数据包都有一个全局序列号和一个局部序列号,
全局序列号供媒体回放模块对数据包做重排序和回放使用,局部序列号供合流模块统计各连
接的数据包发送量、丢包率、时延等信息,并将统计所得信息以 RTCP 包的形势发送给通信
对端,供通信对端的流量分配调度模块做流量分配调度决策。 155
数据缓冲区模块
系统不仅有一个全局的数据缓存区,而且每个连接各自都有数据缓冲区,全局的数据缓
存区供数据包重排序和回放使用,各连接的数据缓冲区供合流模块统计连接质量信息使用。
3 基于多连接的实时流媒体传输方法的实施流程
本小节将介绍基于多连接的实时流媒体传输方法的实施流程。具体实施流程如下图: 160
多连接实时
监测模块
多连接协商与
建立模块
QoS质量
评估模块
流量调度
分配模块
合流
模块
5
4
1
7
2
3
6
图 2 实时流媒体传输方法实施流程
步骤 1,通信开始前,多连接实时监测模块检测自身网络状况,并将监测结果发送给多
连接协商与建立模块,以供其与通信对端协商与建立连接使用。
步骤 2,多连接协商与建立模块与通信对端按照标准会话发起流程与对端请求建立会165
话,交换各自可用网络接口信息,建立多个可选连接;再根据包括网络状况和用户需求的设
- 6 -
中国科技论文在线
定策略在可选连接中选择合适的多个连接建立多连接会话传输数据。并在通信过程中,多连
接实时监测模块根据各个连接的变化情况,通知多连接协商与建立模块实时调整通信双方连
接:即实时增删会话中的连接。
在步骤 2 中,以 SIP 多连接会话为例,多连接协商与建立模块的工作是基于对多媒体会170
话描述协议 SDP(Session Description Protocol)的扩展消息。SDP 是会话描述协议,为会话
通知、会话邀请和其他形式的多媒体会话初始化等目的提供了多媒体会话描述。它的文本有
效载体包括构成会话的媒体和有关接收媒体的信息(地址)等。通过扩展 SDP 消息,在 SDP
消息中增加的 mpip 字段和 mpport 字段,用于分别承载终端的多网卡信息和多个可用端口信
息。会话发起端发起会话前,多连接实时监控模块自动获取本地的网络信息和可用端口信息,175
在发送会话请求时,将多个网卡信息和多个可用端口信息分别填入会话建立 Invite 请求所携
带 SDP 的 mpip 和 mpport 字段。接收端收到会话建立请求后,解析 SDP 消息并构造回复消
息。这时有四种不同情况:
(A)发送端和接收端均有多个网卡时,Invite 请求所携带的 SDP 消息中,mpip 和 mpport
字段分别携带会话发起端的多个可用网络的 IP 地址和多个可用端口信息。接收端接收到180
Invite 请求后,解析出 mpip 所携带的多个可用网络和 mpport 所携带的多个可用端口,并与
自己的可用网络一一进行匹配,每对可用网络间会根据可用端口的数量建立多个连接,多个
网络及其建立的多个连接均属于同一个会话,并在回复 200OK 时,将该匹配结果告知会话
发起端,通知会话发起端以相同的策略建立连接,从而在一个会话中建立起多个连接。
(B)发送端有多个接入网卡,接收端只有一个网卡时,Invite 请求所携带的 SDP 消息185
中,mpip 和 mpport 字段分别携带会话发起端的多个可用网络的 IP 地址和多个可用端口信
息。接收端接收到 Invite 请求后,解析出 mpip 所携带的多个可用网络和 mpport 所携带的多
个可用端口,因接收端检测到自己只有一个可用网络,故接收端的这个网络将与发起端的每
个可用网络分别建立一个连接。所建立的上述多个连接均属于同一个会话,并在回复 200OK
时,将匹配结果告知会话发起端,通知会话发起端以相同的策略建立连接,从而在一个会话190
中建立起多个连接。
(C)发送端只有一个接入网卡,接收端有多个接入网卡时,Invite 请求所携带的 SDP
消息中,mpip 和 mpport 字段分别携带会话发起端的唯一可用网络的 IP 地址和会话发起端
的多个可用端口信息。接收端接收到 Invite 请求后,解析出 mpip 所携带的唯一可用网络和
mpport 所携带的多个可用端口,这时接收端的每个可用网络分别与发起端的唯一可用网络195
建立一个连接。所建立的上述多个连接均属于同一个会话,并在回复 200OK 时,将匹配结
果告知会话发起端,通知会话发起端以相同的策略建立连接,从而在一个会话中建立起多个
连接。
(D)发送端和接收端均只有一个接入网卡时,Invite 请求所携带的 SDP 消息中,mpip
和 mpport 字段分别携带会话发起端的唯一可用网络的 IP 地址和会话发起端的多个可用端口200
信息。接收端接收到 Invite 请求后,解析出 mpip 所携带的唯一可用网络和 mpport 所携带的
多个可用端口,这时接收端将根据可用端口的数量在这对网络间建立多个连接,该多个连接
均属于同一个会话,并在回复 200OK 时将该匹配后的结果回复给会话发起端,通知会话发
起端以相同的策略建立连接,从而在一个会话中建立起多个连接。
步骤 3,QoS 质量评估模块依据对端发来的 RTCP 数据包所携带的包括各个连接的数据205
包发送量、丢包率和时延的信息实时统计和计算各个连接的网络状况和吞吐能力,设定各连
接的工作状态。
- 7 -
中国科技论文在线
在步骤 3 中,QoS 质量评估模块判断各个连接的状态的操作包括下列内容:(参见图 3)
准备阶段:根据与流媒体数据包的有效发送量成正比、与丢包率和传输时间成反比的原
则,本发明设定三个连接质量的阈值:TH1、TH2、TH3,并相应设置连接质量的四种不同210
状态:空闲、正常、拥塞和失效;将小于 THl 的定义为空闲状态,大于 TH1 而小于 TH2 的
定义为正常状态,大于 TH2 而小于 TH3 的定义为拥塞状态,大于 TH3 的定义为失效状态。
QoS 质量评估模块根据通信对端周期反馈回来的 RTCP 数据包统计数据传输状况:从反
馈信息中提取包括各个连接的数据发送量、丢包率、和时延等信息,计算各个连接的质量;
再将计算得到的各个连接的质量与设定的三个阈值 TH1、TH2、TH3 进行比较,设置各个连215
接所处的工作状态,对判断结果进行存储记录。
反馈信息
提取数据包发送
量、丢包率、时延
等信息
空闲门限值 正常门限值 拥塞门限值 失效门限值否 否 否
状态记录
是
是
是
是
图 3 流程图
步骤 4,流量分配调度模块根据 QoS 质量评估结果初始化各个连接的发送窗口大小,并
根据 QoS 质量评估结果,动态调整各个连接的发送窗口大小,然后根据流量调度策略和冗220
余策略对流媒体数据进行分流,将数据分流到各个连接上进行传输[5]。
流量调度的依据是发送窗口大小的调整结果,以便将一帧视频数据按照连接发送窗口大
小占所有连接的比例分配到各个连接上;流量调度的具体方法是:
当新的视频流数据到达时,先判断各个发送窗口大小是否有更新;
如果没有更新,则按照原比例划分相应的数据到各个连接上分别进行传输; 225
如果有更新,则按照新比例划分相应的数据分流到各个连接上进行传输。
在步骤 4 中,流量分配调度模块根据 QoS 质量评估模块设定的各个连接状态,调整各
个连接的发送窗口大小的调整操作包括下述操作内容(参见图 4):
在通信初始阶段,因没有可用的足够信息进行连接 QoS 质量的评估,故 QoS 质量评估
模块在流媒体刚开始传输的阶段,将各个连接的初始状态评估为空闲状态,流量调度分配模230
块根据连接 QoS 的评估结果初始化流量分配策略时,将各个连接的优先级都设置为相等的
优先级,且各个连接的发送窗口模仿传输控制协议TCP(Transmission Control Protocol)慢
- 8 -
中国科技论文在线
启动方式增加;
若连接状态还为空闲状态,则逐渐增加发送窗口大小;
若连接状态为正常状态,则保持传输速率不变; 235
若连接状态为拥塞状态,理论上应对处于拥塞状态的连接的发送窗口进行缩小,以避免
进一步拥塞;但实际应用中,因马上更新流量发送窗口会引起窗口大小过多的摆动,故选择
设置一个窗口大小更新的间隔时间,在间隔时间到达后,如果判断该连接仍然处于拥塞状态,
则相应缩减该发送窗口;
若连接状态为失效状态,则停止该连接的发送,并通知多连接协商与控制模块将该失效240
连接从现有会话中删除。
各连接状态信息
空闲? 失效?拥塞?正常?否 否 否
修改相应连接发送窗口是
是 是
是
结束
图 4 发送窗口大小调整流程图
步骤 5,接收对端发送来的 RTCP 数据包,然后返回步骤 3 的操作。
本发明采用双层序列号编码方案,每个数据包都有一个全局序列号和一个局部序列号。245
另外,终端不仅设有全局的视频数据缓存区,每个视频收发线程也都有一个数据缓冲区,连
接 QoS 评估模块统计每个线程的丢包状况,并根据统计结果通知流量分发调度模块调整各
线程的收发比例等。
步骤 6,在通信过程中,若 QoS 质量评估模块统计计算出自身某个连接处于失效状态,
通知多连接协商与建立模块给通信对端发送连接删除请求:请求将该断裂连接从现有会话中250
删除,并将该信息发生给通信对端。
步骤 7,在通信过程中,多连接协商与建立模块接收到通信对端因其检测到自身网络状
况发生变化而发送来的连接变更请求,并作相应的后续处理。
步骤 8,在通信过程中,合流模块接收通信对端发送来的流媒体数据,将各个连接上的
数据流按照全局序列号进行重排序时,剔除冗余的流媒体数据包,然后递交给媒体回放模块;255
同时统计各个连接的流媒体数据的发送量、丢包率和时延信息,将统计信息以 RTCP 包的形
式发送给通信对端。
- 9 -
中国科技论文在线
4 结论
本文给出了基于传统单连接终端提供一种基于多连接技术的实时流媒体传输终端与传
输方法,本文是一种改进与探测通信双方是否都具备多连接特性和采用多个连接上传数据的260
实时流媒体传输终端,以及在流媒体应用环境下使用该终端实现多连接数据的传输方法。
本文解决的技术问题是:判断终端是否具备多连接特性的方法和携带多连接信息的方
法,实时流媒体数据在多连接上传输的方法,并提出一种基于多连接的实时流媒体传输终端。
[参考文献] (References)
[1] 李世勇. 基于效用最优化的多路径网络资源分配研究[D]. 北京: 北京交通大学, 2010. 265
[2] Xu C Q, Liu T J, GUAN J F, et al. CMT-QA: Quality-aware Adaptive Concurrent Multipath Data Transfer in
Heterogeneous Wireless Networks[J]. IEEE TRANSACTIONS ON MOBILE COMPUTING, 2013,12(11):
2190-2200.
[3] SINGH V, KARKKAINEN J, OTT J, et al. Multipath RTP(MPRTP)[S]. Internet-Draft, draft-singh-avt-mprtp,
2010. 270
[4] SINGH V, AHSAN S, OTT : Multipath Considerations for Real-time Media[C]. In Proceedings of
the 4th ACM Multimedia Systems Conference, ACM New York, 2013: 190-201.
[5] SCHULZRINNE H, CASNER S, FREDERICKAND T, et al. RFC 3550, RTP: A Transport Protocol for
Real-Time Applications[S]. New York: IETF, 2003.
275