近几年,车内音视频娱乐系统不断发展,功能不断丰富,对于音视频的传输需求也逐渐增多,随着车载以太网的日渐成熟,各主机厂逐步方案落地、成本逐步降低,基于车载以太网的音视频传输也在逐步应用,常用的有RTP(Real-time Transport Protocol)、AVB协议。
AVB协议基于2层传输,层级简单、协议多,同时有QoS可以保证音视频的传输质量,可以应用于带交换机的场景,QoS可以保证时间延迟,不过AVB协议多,开发及使用成本较高;RTP协议位于5-7层,基于TCP/IP协议,其底层协议使用UDP,适用于简单的应用场景,如倒车影像等;在RTP进行音视频传输时,它只负责传输数据包,需要配合RTCP(Real-time Transport Control Protocol)来保证RTP数据包的服务质量,遵循的标准是RFC3550。
为了确保音视频传输的协议一致性及可靠性,根据使用的协议,需要对RTP或AVB进行测试;AVB已有成熟的商业软件测试方案,因此,本文针对RTP测试解决方案进行介绍,首先简介RTP/RTCP协议,在此基础上进行RTP测试方案的详细说明,最后以案例来介绍项目应用。
一、RTP&RTCP协议一致性测试内容
RTP和RTCP是相互配合的两个协议,RTP是音视频实时传输协议,RTCP是音视频实时控制协议,两者都是封装在UDP报文中传输;每一个RTP会话,将使用连续的2个端口号分别用于RTP和RTCP,RTP报文的有效载荷封装音、视频数据流,RTCP报文不封装任何音、视频数据流。为确保协议实施有效,针对RTP和RTCP进行一致性测试。
1.1 RTP协议一致性测试
每帧RTP报文都是由头部(Header)和负载数据(Payload)两部分组成,RTP发送端将采集到的音视频信息封装成RTP包发送,RTP接收端获取到RTP数据包后解析数据,取得应用数据。
RTP头部前12个字节固定,存在于每一个RTP数据包中。
对RTP协议进行测试时,主要对RTP Header中的各个参数进行测试,RTP Payload内容与音视频编码方式有关,不在RTP协议测试范围内。针对RTP 的测试点列举如下:
1.2 RTCP协议一致性测试
RTCP监控服务质量并传送会话参与者信息,包括已发送的数据包数量、丢失的数据包数量等信息。RTP发送端以一定的时间间隔周期性的发送RTCP中的发送报告(SR),RTP接收端通过发送接收报告(RR)将RTCP反馈信息发送出去。RTCP常见报文类型有五种,如下表所示:
由于不同应用场景下需要支持的RTCP报文类型可能不同,怿星根据协议强制要求的内容设计RTCP测试点并实现测试。
针对RTCP 的测试点列举如下:
二、RTP&RTCP协议一致性测试解决方案
在简要介绍RTP/RTCP协议及测试内容后,我们一起了解下RTP测试解决方案,其主要包括测试环境搭建、测试规范编写、测试工程开发及调试三部分。
2.1 RTP&RTCP测试环境
针对RTP/RTCP的测试,从测试系统角度出发,可以分为节点级测试和系统级测试。
整体的测试方案基于CANoe,硬件设备所需包含程控电源、Ethernet接口卡。
2.1.1节点级测试
- 当测试环境中只有发送方时,Tester需要模拟接收方发送RR报文,报告已发送的数据包数量、丢失的数据包数量等信息,同时监控发送方发送的报文。
- 当测试环境中只有接收方时,Tester需要模拟发送方发送RTP和SR报文,同时监控接收方发送的报文。
2.1.2系统级测试
当RTP发送方和接收方处于同一个测试环境下,即系统级测试环境下,Tester通过TAP方式监控它们之间的通讯来完成测试。
2.2 RTP测试规范
测试RTP协议的目的是验证开发的样件符合RFC协议以及主机厂定义的规范,怿星参考RFC3550协议标准文档中对各个参数值的描述,以及主机厂定义的RTP协议应用规范文件,梳理测试规范V1.0版本,包含节点级和系统级、RTP和RTCP的测试内容。
2.3 RTP测试工程
2.3.1 RTP测试工程开发框架
针对RTP/RTCP测试,在完成测试规范编写后,将对应开发测试脚本。首先梳理测试输入前置参数,通过excel方式进行配置填写,之后依据测试步骤进行参数解析、报文接收与处理、模拟报文发送、测试结果比对,最后保存测试log并输出测试报告。
2.3.2 怿星RTP测试工程优势
操作简单、使用方便:测试人员只需将RTP相关的参数信息填写到Excel配置文件中,如RTP数据采样频率、SSRC值等,之后就可以在测试工程中勾选需要的用例执行自动化测试。
模块化、便于二次开发:测试工程将各个功能的实现进行模块化处理,便于在此基础上进行二次开发与调试。
规范脚本对照、报告可读性高:测试脚本是依据测试规范中测试用例描述的测试步骤,调用其余模块接口进行开发,实现测试脚本与测试步骤一一对照。测试报告中会打印每一个测试步骤的步骤描述、期望结果和实际结果,可以快速分析报告和测试Log。
三、测试方案应用案例
以下是在某项目中某case测试结果,该case测试目的是检查DUT发送的RTP报文参数Version字段值是否为2。Tester按照配置参数输入文件的内容,识别需要检查两个音频流的报文,根据输入的两个音频流的IP地址,端口号等信息,找到DUT发送报文中对应两个音频流的报文,提取其中的Version字段进行结果判断与输出。
测试Log如图所示:
测试报告打印如图所示,分别打印两个RTP音频流的测试结果。
本文简要介绍车载音视频协议RTP和RTCP,RTP节点级、系统级测试环境及测试拓扑,RTP测试规范,RTP测试工程及脚本。测试工程使用方便、易操作,测试脚本支持二次开发,测试报告可读性高。
若有RTP测试需求,欢迎联系怿星咨询;同时如有AVB测试需求,怿星同样有完整的解决方案及测试服务,也欢迎大家咨询。