王辰生
上一期介绍了IP系统中PTP同步测量的相关要点,今天继续和大家分享IP测量的内容。本期主要针对流特性的检测,涉及到的标准包含ST 2110-10的一部分,以及ST 2110-20,-30,-40标准。
图54 本期主要内容-红框部分
本期主要内容点有:
RTP包的检测,RTP header中哪些信息是有用的?
SDP中都包含什么信息,SDP描述错误会出现什么问题
流特性常规指标Protocol和Frequency
测量中数据流的带宽和标准值有出入,这有什么问题么?
流定时能够反映出哪些信息,测量它有什么意义?
一、ST2110-10中RTP和SDP的相关检测
首先,我们再次回顾下ST2110-10标准,ST2110-10全名是:Professional Media Over ManagedIP Networks:System Timing and Definitions 系统定时及定义,主要包括以下几个方面:
定义IP流使用RTP(实时传输协议-RFC3550),可通过UDP传输实时媒体数据。
说明了ST2059 PTP同步如何在ST2110系统中使用。
定义如何描述IP流,即SDP(Session Description Protocol),由控制系统分发(ST2110-10未定义其分发)。
IP流的具体格式等信息在ST2110系列协议的其他部分介绍。
所以在该标准中我们需要关注的测量重点呼之欲出:即RTP/PTP/SDP。PTP之前我们进行过详细介绍,下面我们来介绍RTP以及SDP的检测内容。
1、RTP Header
实时传输协议(Real-timeTransport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC1889中公布的,RTP基于UDP之上运行。
图55 RTP协议解析
RTP作为网络媒体传输协议,其包头携带了很多媒体流的关键信息,RTP Header可以直接反映RTP包的主要信息,可作为RTP包是否正确的重要依据。利用示波器或者Wireshark软件可以分析RTP包的包头,其中Telestream示波器测量该参数的菜单被称为IP SESSION-VIDEO/AUDIO/DATA。如图55所示,可以看到包头各个字段的详细信息:
图56 Telestream示波器VIDEO信号的RTP包头分析
Leader示波器测量该参数的菜单被称为IP MENU,如图56所示,可以看到包头各个字段的详细信息:
图57 Leader示波器VIDEO信号的RTP包头分析
这里简单给大家介绍下各个项的主要意义,详细解释说明可以查看下面两个链接的标准文件:
https://www.ietf.org/rfc/rfc3550.txt
https://www.ietf.org/rfc/rfc3551.txt
图58 RTPheader 构成
Version
RTP包头最开始的两个字节定义了 RTP的版本。这里默认的版本都是 2。0和1都已被使用。
Padding
这一字节表示是否存在填充字节。如果显示false,则表示在RTP数据包的末尾没有额外的填充字节。如果显示true,则表示在RTP数据包中加入了不属于有效载荷的填充字节。
Extension
这一字节表示是否存在一个扩展。false表示不存在扩展。true表示存在一个扩展。
CSRC
这里表示合并的数据流中各个源数据流的ID。我们的系统中此项值应为0。
Marker
这一字节用来标记数据流中的重要的事件,例如帧边界。
RTP Payload Type
RTP Payload Type用来描述此RTP流传输的媒体类型,目前在协议RFC3551中,未规定组播流的Payload Type,只划分了96-127可供使用。ST2110流的payload type也应在96-127的范围内,具体使用数值可以自定义,目前我们常规设置是将视频流定义为96,音频流定义为97,辅助数据流定义为100。
发送端和接收端对于一类IP流Payload Type必须一致,若不一致则往往会导致收端无法正常解析IP流。
图59 通过示波器读取Payload Type
如图59所示,读取到Payload Type为96时,即可认为该信号是一个视频信号;若一个音频信号Payload Type是98,接收设备对应音频的Payload Type为97,即需要对发端的相应参数做修改,以免接收端无法解析IP流。我们在项目中也遇到过这种情况,这个时候示波器就将这个流识别成了2022-6的流,而系统内的IPG无法接收到这个音频流,很显然这是不对的。
Sequence number
RTP序列的计数器,每发送一个RTP数据包这个数值都会顺序增加,在示波器上,可以看到这项值往往应该是随时间增长的。
RTP Timestamp
RTP Timestamp即RTP时间戳,记录了该包中数据的第一个字节的采样时刻。在一次会话开始时,时间戳初始化成一个初始值,即使在没有信号发送时,时间戳的数值也要随时间而不断地增加,时间戳是去除抖动和实现同步不可缺少的。几个连续的RTP包如果是同时产生的,则拥有相同的时间戳,如:属于视频同一帧的RTP包,将有相同的RTP时间戳。
图 60 通过示波器读取Timestamp
SSRC
这些字节用来识别同步源,SSRC随机生成,以保证系统中的RTP通讯里任意的两个同步源的SSRC是不同的,避免相同的SSRC被当成环路。
RTP header中的信息很多,但是由于很多信息相对比较固定,我们只需要注意几个重要的参数,例如payload type,RTP Timestamp的情况,确保Sequence number是顺序增长的。RTP提供时间戳和序列号是用来检测RTP包的时间问题和数据包是否丢失,它无法纠正数据包丢失时的错误。RTP payload type虽然无明确规定,但是目前2110系统中是以96,97和100用来分别表示视频流,音频流和辅助数据流。
2、SDP
如前文所述,SDP即会话描述协议,在ST2110系统内实现对ST2110 IP流的描述,在SDP文件中的媒体部分,对ST 2110-20、30、40等流的媒体类型参数进行了描述,例如采样率、位深度、画面的宽和高、色彩空间等。
如图63所示,可以在示波器中对SDP文件内部信息进行查看,也可以使用SDPoker开源软件读取SDP数据。
图63 通过示波器读取NMOS服务器及SDP描述
图64 示波器读取到的SDP文件内容
如图64,即为我们在项目中使用示波器读取到的SDP文件,可以通过SDP读取到IP流端口号,组播地址,设备信息,以及格式等信息。
此外,在项目中还常碰见一种情况,某些设备需要手写SDP的方式收取IP流,此时需检查SDP文件内的格式、组播地址、IP地址等信息,否则会导致接收端无法收流。
二、ST2110-20/30/40中描述
的数据流相关指标测量
图65 ST2110系列标准
ST2110-20即非压缩活动视频,对于一个视频信号,首先需关注的自然是图像的画面、颜色、质量、有无画面异常等信息,这也是传统测量常关注的一点,这里就不再赘述。
ST2110-30/40即为音频、辅助数据,对于音频同样需要关注声音质量,有无声音异常等情况;辅助数据信号目前更多需关注其携带的格式信息是否正常。
在2110系统中,如前文ST2110-10中RTP/SDP的介绍,首先需要测量该IP流的RTP Header是否正常,SDP文件描述是否正常。此外,对于ST2110 IP数据流来说还有一些其他需要关注的要点,我们来一一介绍。
1、Protocol
这里会展示接收到的流使用的协议情况,ST2110系统中对应的流会有相应的protocol,如果被识别成ST2022-6,那么需要检查发端设备的设置是否正确。
图66 示波器Protocol状态截图
2、Frequency
我们需要确保收到的数据流频率和发端设置一致,在prism中可以看marker bit frequency这项参数,在leader中直接会在图像的格式中查看该值。
图67 Frequency截图
3、Packing mode
ST2110-20标准介绍了两种打包模式,分别是GPM(General Packing Mode)和BPM(Block Packing Mode),其中GPM是遵循RFC 4175的开放打包方式,而BPM是基于180字节,无论格式如何,都能使数据包大小保持一致(利于网络配置和故障排查)
图61 不同采样率和位深度的BPM包大小
在索尼的系统一般都采用GPM的打包方式,这一点我们可以在示波器上看到。
图62 示波器显示Packing mode截图
4、Bitrate
IP系统中不管是业务流,还是控制数据,在网络中都是以比特(bit)作为最小的信息度量单位进行传输,IP流的带宽就是用比特率来衡量的——比特率是指单位时间内传送的比特数。对于视频系统而言,单位一般采用Gbps(又作Gb/s,bps=bitsper second);音频和辅助数据则分别采用Mbps和Kbps作为单位。
带宽的计算方法和详解可参照本公众号之前的文章,ST 2110数据封装策略和媒体流带宽计算。
不同格式的信号带宽也不一样,如下图即为ST2110各个格式信号带宽的典型值:
图68 ST2110各格式信号带宽典型值
在示波器上也可测量IP流带宽:
图69 Telestream 示波器测量信号带宽
图70 Leader示波器测量信号带宽
一般来说,在实际系统中我们需要关注同一格式信号的带宽不应超过或低于典型值过多。由于各家设备数据打包方式不尽相同,发送器类型不同,导致带宽也略有出入,测量结果与IP流带宽典型值(图68)接近即可。
5、Stream RTP/PTP offset
ST2110 IP流均采用RTP协议进行传输,而如上文所述,RTP协议头部携带有IP包的时间戳,我们通过测量接收到的视频、音频和数据相对于嵌入的RTP时间戳的计时,来比较其相对于RTP时间的延时,并通过它了解各类数据在网络中传输后到达接收端是否有较大抖动。
利用示波器可以测量该参数,不同示波器参数名称也略有不同,如Telestream示波器测量菜单被称为Stream Timing:
图71 Telestream 示波器测量IP流定时
如图72所示,Leader示波器该选项被称为TimingComparison:
图 72 Leader 示波器测量包到达间隔
暂未有标准规定该项数值的取值范围,在实际系统中测量此数据时一般认为数据保持稳定即可。流定时描述整个网络的延迟情况,其具体数值取决于网络的负载情况。同时流定时也可以反映当前状态下音频/视频,数据/视频等之间的相对延迟。
总结
RTP header需要重点关注payload type,时间戳和序列号这几项数值,其中时间戳和序列号是用来检测RTP包的时间问题和数据包是否丢失,而不是纠错的手段。
SDP中的格式信息需要和实际数据流的格式一致,否则可能导致无法解析到正确的流。实际的系统中,数据流的带宽往往和标准值有一定出入,这是因为不同设备的打包方式,发送器类型各不相同,只要和典型值相差不大,我们就可以认为其正常。在稳定的网络环境中测量到的流定时应该也是稳定的数值,流定时出现波动时,很可能网络中出现了不稳定的因素,需要立刻检查。
本期的内容就介绍到这里,我们将流特性的检查项梳理了一遍,希望对您有所帮助。下期我们将介绍传输特性和NMOS的检查项,期待和大家多多交流。
原文标题:IP测量探索(五)——流特性的检测
文章出处:【微信公众号:索尼中国专业】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !