一、RTSP/RTMP/HLS协议解析
1.1协议原理
RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。
RTSP,实时流协议,是一个C/S多媒体节目协议,它可以控制流媒体数据在IP网络上的发送,同时提供用于音频和视频流的“VCR模式”远程控制功能,如停止、快进、快退和定位。同时RTSP又是一个应用层协议,用来与诸如RTP、RSVP等更低层的协议一起,提供基于Internet的整套流化服务。基于RTSP协议流媒体服务器的实现方案可以让流媒体在IP上自由翱翔。
RTMP 在可靠流式传输(TCP)的基础上提供了双向的消息多路复用服务,在通讯双方之间传输与时间相关的并行流数据,如音频,视频和数据消息。协议实现方通常为不同的消息类型指定不同的优先级,这样在网络带宽受限时能改变底层传输顺序。
HLS (HTTP Live Streaming),依据RFC8216标准,是基于HTTP的流媒体网络传输协议,一种基于 HTTP 的自适应格式,用于将视频和音频数据从媒体服务器传输到观众的屏幕。
1.2工作原理
RTSP中所有的操作都是通过服务器和客户端的消息应答机制完成的,其中消息包括请求(request)和应答(response)两种。
RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。在基于传输层协议的链接建立完成后,RTMP协议也要客户端和服务器通过“握手”来建立基于传输层链接之上的RTMP Connection链接,在Connection链接上会传输一些控制信息,如SetChunkSize,SetACKWindowSize。其中CreateStream命令会创建一个Stream链接,用于传输具体的音视频数据和控制这些信息传输的命令信息。RTMP协议传输时会对数据做自己的格式化,这种格式的消息我们称之为RTMP Message,而实际传输的时候为了更好地实现多路复用、分包和信息的公平性,发送端会把Message划分为带有Message ID的Chunk,每个Chunk可能是一个单独的Message,也可能是Message的一部分,在接受端会根据chunk中包含的data的长度,message id和message的长度把chunk还原成Message,从而实现信息的收发。
HLS它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
图(1)请求报文
图(2)请求报文
1.3协议用途
用于多媒体数据流的控制,如播放,暂停等。RTSP作为一个应用层协议,提供了一个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要用来控制具有实时特性的数据的发送,但其本身并不用于传送流媒体数据,而必须依赖下层传输协议(如RTP/RTCP)所提供的服务来完成流媒体数据的传送。RTSP负责定义具体的控制信息、操作方法、状态码,以及描述与RTP之间的交互操作。
RTMP本身具有稳定、兼容性强、高穿透的特点。常被应用于流媒体直播、点播等场景。常用于推推流方(主播)的稳定传输需求。
图(3)RTSP媒体服务协议框架
HLS 不需要花哨的硬件来提供视频服务。这是一种简单高效的协议,可以使用常规 Web 服务器来存储和分发内容。
图(4)HLS 视频流服务架构
二、在supernova测试仪中可应用的场景
2.1 网关模式
测试仪同时模拟客户端和服务器,测试流量穿过受测设备(防火墙、交换机、路由器等),得到受测设备的性能。
图2-1
说明:测试仪使用“网关模式”模拟RTSP的客户端和服务端,过一台防火墙(网关模式),测试防火墙性能。
2.2应用服务模式
测试仪只模拟客户端,向受测的RTSP/RTMP/HLS服务器发送流量,获取响应,及服务器的性能。
图2-2
三、用例和功能介绍
3.1.用例介绍
(1)播放新建:获取受测设备播放流媒体的最快新建速率,每个虚拟用户建立RTSP/RTP/RTCP连接,控制终端与服务器之间的媒体传输事务,最后关闭所有连接,循环往复。流量如:优酷、爱奇艺的视频点播。
(2)播放质量:获取受测设备播放流媒体的清晰度,并根据RFC4445,算出MDI和相关数据,与配置的MDI清晰度范围进行比较,统计数量。每个虚拟用户建立RTSP/RTP/RTCP连接,控制终端与服务器之间的媒体传输事务,最后关闭TCP连接。流量如:优酷、爱奇艺的视频点播。
(3)播放并发:获取受测设备处理流媒体的并发量,并根据RFC4445,算出MDI和相关数据。每个虚拟用户建立RTSP/RTP/RTCP连接,控制终端与服务器之间的媒体传输事务,最后关闭TCP连接。虚拟用户数量就是并发的媒体播放数量。流量如:优酷、爱奇艺的视频点播。
(4)播放吞吐:获取受测设备处理流媒体的吞吐量,并根据RFC4445,算出MDI和相关数据。每个虚拟用户建立RTSP/RTP/RTCP连接,控制终端与服务器之间的媒体传输事务,最后关闭TCP连接。提高虚拟用户数量、播放码率就会提高吞吐率。流量如:优酷、爱奇艺的视频点播。
(5)音频播放:获取DUT处理音频流媒体的并发量及语音质量,并根据RFC4445,计算Mos值等相关数据。每个虚拟用户循环播放音频流媒体,虚拟用户数量就是并发的音频播放用户数量。流量如:优酷、爱奇艺的视频点播。
(6)RTMP: RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
(7)HLS:依据RFC8216标准,是基于HTTP的流媒体网络传输协议。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
3.2. 媒体传输质量指标
MDI(Media Delivery Index)媒体传输质量指标,对视频流在IP网络中传输质量进行评估,已在RFC4445忠作为标准定义。
作为IP视频流传输质量测试的行业标准,MDI测量指标广泛地应用于IPTV和IP有线数字电视网络质量评估和监测。
MDI包括了两个参数:
1.Delay Factor(延迟因素,简称DF):该数值表明被测试视频流的延迟和抖动状况,DF的单位是毫秒(ms)。
DF将视频流抖动的变化换算为对视频传输和解码设备缓冲的需求。被测视频流抖动越大,DF值越大。当网络设备和解码器的缓冲区容纳的视频内容时间不小于被测视频流DF读数时,将不会出现视频播放质量的下降。因为网络节点需要分配不小于DF值的缓冲用于平滑视频流抖动,所以DF的最大值为视频内容通过该网络节点的最小延迟。
2. Media Loss Rate(媒体丢包速率,简称MLR):MLR的单位是每秒的媒体封包丢失数量。该数值表明被测试视频流的传输丢包速率。由于视频信息的封包丢失将直接影响视频播放质量,理想的IP视频流传输要求MLR数值为零。因为具体的视频播放设备对丢包可以通过视频解码中进行补偿或者丢包重传,在实际测试中MLR的阈值可以相应调整。
两个条件同时满足,才能符合这一