摘 要:针对直播系统在复杂网络环境下传输信号差的缺陷,提出基于内容分发网络的实时流媒体直播系统。采用先进的流媒体服务器集群技术,在传输服务器接收流媒体信息时采用RUDP协议,在传输服务器将流媒体信息推送至媒体服务器时采用RTMP协议,可以极大地提升系统所要求支持的并发性流量和数目,有效地避免了单点失效给系统带来的不良影响。通过分别对用RTMP与RUDP结合、RTMP和RUDP实现的消息传输性能进行测试和比较,表明该方法可以提高复杂网络环境下直播系统中音视频流媒体的传输质量和传输效率。
关键词:内容分发网络;推流;服务器集群;流媒体
中图分类号:TP393 文献标识码:A
Abstract: Aiming at poor transmission signal of the live broadcast system in complex network environment, the paper proposes to design a real-time streaming media live broadcast system based on content distribution network, by adopting advanced streaming media server cluster technology. RUDP (Reliable User Datagram Protocol) protocol is used when transmission server receives streaming media information. RTMP (Real-time Messaging Protocol) protocol is used when transmission server pushes the streaming media information to media server. This greatly increases the concurrent traffic and number required by the system, and effectively avoids the adverse impact of single-point failure on the system. The message transmission performance achieved by combining RTMP and RUDP, by RTMP and by RUDP is tested and compared, which shows that this method can improve the transmission quality and transmission efficiency of audio and video streaming media in a live broadcast system in a complex network environment.
Keywords: content distribution network; push flow; server cluster; streaming media
1 引言(Introduction)
在用户观看直播过程中,如果网络传输信号差,则用户收到的语音数据和视频信号可能会变得较差,并且正在播放的视频信号效果会因此变得更糟[1]。针对上述问题,本文设计了一种基于内容分发网络的实时流媒体直播系统,采用先进的流媒体服务器集群技术[2-3],在传输服务器接收流媒体信息时采用RUDP(Reliable User Datagram Protocol)协议[4],在传输服务器将流媒体信息推送至媒体服务器时采用RTMP(Real Time Messaging Protocol)协议[5]。RUDP主要为了弥补RTMP在复杂网络环境下传输信号差的缺陷[6-7],通过内容分发网络设计,可以极大地提升系统所要求支持的并发性流量和数目,有效地避免了單点失效给系统带来的不良影响,可以提高复杂网络环境下直播系统中音视频流媒体的传输质量和传输效率。
2 系统总体设计(Overall system design)
本文设计的基于内容分发网络的实时流媒体直播系统,包括系统物理架构和系统逻辑架构设计、系统推流设计、内容分发网络CDN(Content Delivery Network)设计、媒体数据NAT(Network Address Translation, 网络地址转换)设计。
2.1 系统物理架构
系统物理架构采用三级交换网络,主播将音视频信息发送到MTS(Media Transfer Server, 媒体转发服务器),MTS在发生故障时可以通过备份的MTS进行房间迁移。MTS处于一级交换网络,MTS将信息推流到二级交换网的MSS-Origin(Media Streaming Server of Origin, 源媒体流服务器),然后推流到分布式CDN集群。观众通过各种浏览器访问MSS-Edge(Media Streaming Server of Edge, 边界媒体流服务器),MSS-Edge上的信息也可以回源到MSS-Origin端,数据流是可以双向访问和互动的。系统物理架构如图1所示。
2.2 系统逻辑架构
系统逻辑架构采用四层架构,最底层是LINUX内核,上层通过系统API接口访问LINUX内核。然后是网络层,网络层分为网络适配层、Net API接口和Event Drive三个部分,其中Net API接口遵循TCP/UDP(Transmission Control Protocol/User Datagram Protocol, 传输控制协议/用户数据报协议)协议[8],Event Drive通过epol()函数进行LINUX系统设备访问。接着是MTS层,MTS层包含房间管理、游客管理、认证鉴权、媒体转发、直播推流和故障管理这几个功能。最上层是接口层,包括MRS Interface(媒体资源管理服务器接口)、MTM Interface(媒体任务管理服务器接口)、MSS Interface(媒体流服务器接口)、Client Interface(客户端接口)。系统逻辑架构如图2所示。
2.3 主要状态图设计
首先,房间管理单元向媒体任务管理服务器(MTM)申请创建房间。MTM向媒体资源管理服务器(MRS)申请创建房间的消息代理,MRS向MTS发送申请创建房间消息,创建房间后向上一级返回创建结果。其次,房间管理单元进入房间,登记游客信息。第三,房间管理单元将开播参数发送给主播助手,主播助手连接MTS发送实时数据流,MTS通过用户鉴权接收实时数据流。第四,MTS将房间信息推流到MSS(媒体流服务器),用户通过浏览器访问MSS拉取房间数据流并播放房间数据信息。状态图如图3所示。
2.4 系统时序图
系统时序图包括房间管理时序图、用户管理时序图和角色管理时序图,各个时序图分别给出了各个模块的操作流程。
2.4.1 创建房间
房间管理单元向MTM申请创建房间,MTM审核通过后向MRS申请创建房间,MRS持久化房间信息,向MTM返回创建结果,MTM向RM返回申请结果。然后,MRS向MTS申请按能力分配房间资源,MTS分配资源后将分配的地址信息返回给MRS。创建房间时序图如图4所示。
2.4.2 删除房间
首先,RM向MTM申请删除房间,MTM审核通过后向MRS发送删除房间消息,MRS删除房间持久化信息,向MTM返回删除结果,MTM向RM返回删除结果。然后,MRS向MTS申请删除房间资源,MTS删除房间资源后向MRS返回删除结果。删除房间时序图如图5所示。
2.4.3 添加用户
首先RM向MTM申請添加用户,MTM获取该用户所在房间地址,然后向MTS反向代理申请添加用户;MTS向MTM返回结果和用户标记信息,然后MTM向RM返回结果和标记信息。添加用户时序图如图6所示。
2.4.4 删除用户
首先RM向MTM申请删除用户,MTM获取该用户所在房间地址,然后反向代理,向MTS申请删除用户;MTS删除用户后向MTM返回结果,然后MTM向RM返回结果。删除用户时序图如图7所示。
2.4.5 设置角色
首先RM向MTM申请变更用户角色,MTM获取该用户所在房间地址信息,然后反向代理变更角色;MTS变更角色后向MTM返回变更结果,然后MTM向RM返回结果。设置角色时序图如图8所示。
3 系统推流设计(System push flow design)
本系统设计了一种基于RUDP和RTMP结合的实时流媒体直播系统的推流方法[9],包括:
步骤1:流媒体从助手端通过RUDP实时传输至MTS,流媒体包括音频、视频数据包。
步骤2:流媒体进入MTS的缓冲队列进行去抖动后,判断缓冲队列中是否有数据,若有数据,则进入步骤3。
步骤3:将数据封装成RTMP流推送至MSS中,向MSS推送时需要遵循RTMP的URL格式,例如:RTMP://119.140.0.67:1935/live/10005689。然后判断是否结束直播,如果是,则关闭直播,结束推送;如果不结束直播,则MTS继续接收助手端推送的流媒体,并重复步骤1[10]。推流系统流程图如图9所示。
4 CDN内容分发网络设计(CDN content distribution network design)
本文设计了采用流媒体服务器集群技术的CDN(内容分发网络)。CDN是构建在数据网络上的一种分布式的内容分发网络。CDN的作用主要是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避免单点失效带来的不良影响。爱歌助手通过RUDP上传流媒体信息到MTS,MTS将数据封装成RTMP流,以推流的方式将流媒体信息推流到MSS内多个CDN网络中。在每个CDN网络内部,MSS Origin又将流媒体信息推送到多个MSS Edge,用户通过MSS Edge接收流媒体信息或与MSS Edge进行交互。CDN内容分发网络设计如图10所示。
5 媒体数据NAT设计(Media data NAT design)
考虑到传输效率,爱歌助手通过RUDP传输媒体数据到MTS,需要处理NAT(Network Address Translation)问题。为了确保互联网上每个客户端都能顺利地接入音视频房间,需避免全对称性NAT情况,所以每台中心服务器必须都使用一个固定公网IP与之绑定。媒体数据NAT设计如图11所示。
6 系统测试及分析(System test and analysis)
测试环境是基于内容分发网络的实时流媒体传输技术应用于爱歌助手系统进行测试,包括主播机1 台、MTS集群2 个、MSS-Origin服务器2 台、MSS-Edge服务器6 台,分布在不同的CDN网络,客户机6 台。
(1)主播机配置:Intel core i5 CPU,16 GB内存,Windows 10操作系统。
(2)MTS集群配置:
硬件环境:奔腾处理器。
软件环境:操作系统为Linux Cent OS 7.0,Web Server
为Tomcat 8+Nginx,文件元数据库为MySQL,文件系统为MFS,基础文件系统为lighthttd+fastCGI+MooseFS,内存为64 GB,硬盘为8 TB,SSD为480 GB,网卡为1000 Mb/s。
(3)MSS服务器配置:CentOS 7.0,CPU至强E3、4核、3.10 GHz,内存16 GB,硬盘500 GB,网卡1000 Mb/s。
在现有网络中分别对用RTMP与RUDP结合、RTMP和RUDP实现的消息传输性能进行了测试和比较。
6.1 RTMP与RUDP结合同RTMP和RUDP的测试与比较
对RTMP与RUDP相结合同RTMP和RUDP协议方式发送消息进行了比较性的测试,方法是:对主播与用户之间发送相同的消息量参数,用户在接收到相同的消息后,发送一个异步消息给主播,测试主播收到用户回发的异步消息后记录消息发送次数和当前系统运行时间(tick数),根据运行时间和消息数计算出异步通信效率。每个消息的长度为sizeof
(T_MSG)+50=90。实验结果如表1所示。
式中,表示通信效率,N表示通信的消息数,L表示每个消息的长度,T表示通信的时间,t表示每秒的tick数。
6.2 通信效率测试结果分析
(1) 使用RTMP与RUDP结合发送异步消息的平均效率为=0.841 Mb/s,使用RTMP发送异步消息的平均效率为=0.652 Mb/s,异步通信效率提高百分比為:
由式(2)可知,在使用异步消息通信时,使用RTMP与RUDP结合比使用RTMP的通信效率提高了28.99%。
(2)使用RTMP与RUDP结合发送异步消息的平均效率为=0.841 Mb/s,使用RUDP发送异步消息的平均效率为=0.761 Mb/s,异步通信效率提高百分比为:
由式(3)可知,在使用异步消息通信时,使用RTMP与RUDP结合比使用RUDP的通信效率提高了13.50%。
7 结论(Conclusion)
本文介绍了基于内容分发网络的实时流媒体直播系统,采用先进的流媒体服务器集群技术,在传输服务器接收流媒体信息时采用RUDP协议,在传输服务器将流媒体信息推送至媒体流服务器时采用RTMP协议。RUDP主要为了弥补RTMP复杂网络环境下传输信号差的缺陷,通过内容分发网络设计,可以极大地提升系统所要求支持的并发性流量和数目。通过在实际网络环境中的测试,表明该技术可以极大地提高整个系统的分发效率,提高复杂网络环境下直播系统中音视频流媒体的传输质量和传输效率。该技术值得更广泛地研究与应用。
参考文献(References)
[1] 李闻斌,庞璐宁,黄晟.实时流媒体传输系统中关键技术的研究与实现[J].信息通信,2020,216(12):159-161.
[2] 翁小松,张征.基于Storm的流媒体实时传输系统[J].计算机系统应用,2020,29(6):64-72.
[3] 李静,王军政,沈位.基于B/S和流媒体技术的远程监控系统研究[J].北京理工大学学报,2018,28(8):682-686.
[4] 陈炯.传输协议RUDP的分析研究及改进[D].成都:电子科技大学,2008.
[5] 张印.基于RTMP的流媒体系统的设计与实现[D].成都:电子科技大学,2015.
[6] 胡广.基于RUDP的可靠数据传输研究[D].武汉:武汉理工大学,2006.
[7] 李国栋,张琳琳,柳长安.基于RUDP的视频传输技术研究[J].计算机工程,2006,24(12):226-228.
[8] 王海军,刘彩霞,程东年.一种基于UDP的可靠传输协议分析与研究[J].计算机应用与研究,2005,22(11):181-183.
[9] 李涛,韩鹏,侯冠东,等.ORUDP协议栈设计与FPGA实现[J].计算机工程,2019,16(08):2-10.
[10] 吕昊.基于RTMP协议的嵌入式流媒体系统的设计与实现[D].北京:北京邮电大学,2019.
作者简介:
苏永红(1980-),女,硕士,讲师.研究领域:网络通信,网络安全,分布式计算.