高效测试丨怿星RTP协议测试解决方案

近几年,车内音视频娱乐系统不断发展,功能不断丰富,对于音视频的传输需求也逐渐增多,随着车载以太网的日渐成熟,各主机厂逐步方案落地、成本逐步降低,基于车载以太网的音视频传输也在逐步应用,常用的有RTP(Real-time Transport Protocol)、AVB协议。

车载以太网OSI七层模型

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进行一致性测试。

基于RTP数据组包/拆包示意图

1.1 RTP协议一致性测试

每帧RTP报文都是由头部(Header)和负载数据(Payload)两部分组成,RTP发送端将采集到的音视频信息封装成RTP包发送,RTP接收端获取到RTP数据包后解析数据,取得应用数据。

RTP头部前12个字节固定,存在于每一个RTP数据包中。

RTP Header结构

对RTP协议进行测试时,主要对RTP Header中的各个参数进行测试,RTP Payload内容与音视频编码方式有关,不在RTP协议测试范围内。针对RTP 的测试点列举如下:

1.2 RTCP协议一致性测试

RTCP监控服务质量并传送会话参与者信息,包括已发送的数据包数量、丢失的数据包数量等信息。RTP发送端以一定的时间间隔周期性的发送RTCP中的发送报告(SR),RTP接收端通过发送接收报告(RR)将RTCP反馈信息发送出去。RTCP常见报文类型有五种,如下表所示:

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报文,同时监控接收方发送的报文。

单节点RTP测试(仿真节点)简易图

单节点RTP测试拓扑

2.1.2系统级测试

当RTP发送方和接收方处于同一个测试环境下,即系统级测试环境下,Tester通过TAP方式监控它们之间的通讯来完成测试。

系统级RTP测试(TAP连接方式)简易图

系统级RTP测试拓扑

2.2 RTP测试规范

测试RTP协议的目的是验证开发的样件符合RFC协议以及主机厂定义的规范,怿星参考RFC3550协议标准文档中对各个参数值的描述,以及主机厂定义的RTP协议应用规范文件,梳理测试规范V1.0版本,包含节点级和系统级、RTP和RTCP的测试内容。

RTP&RTCP测试规范

2.3 RTP测试工程

2.3.1 RTP测试工程开发框架

针对RTP/RTCP测试,在完成测试规范编写后,将对应开发测试脚本。首先梳理测试输入前置参数,通过excel方式进行配置填写,之后依据测试步骤进行参数解析、报文接收与处理、模拟报文发送、测试结果比对,最后保存测试log并输出测试报告。

RTP/RTCP测试工程开发框架

2.3.2 怿星RTP测试工程优势

操作简单、使用方便:测试人员只需将RTP相关的参数信息填写到Excel配置文件中,如RTP数据采样频率、SSRC值等,之后就可以在测试工程中勾选需要的用例执行自动化测试。

模块化、便于二次开发:测试工程将各个功能的实现进行模块化处理,便于在此基础上进行二次开发与调试。

规范脚本对照、报告可读性高:测试脚本是依据测试规范中测试用例描述的测试步骤,调用其余模块接口进行开发,实现测试脚本与测试步骤一一对照。测试报告中会打印每一个测试步骤的步骤描述、期望结果和实际结果,可以快速分析报告和测试Log。

测试方案应用案例

以下是在某项目中某case测试结果,该case测试目的是检查DUT发送的RTP报文参数Version字段值是否为2。Tester按照配置参数输入文件的内容,识别需要检查两个音频流的报文,根据输入的两个音频流的IP地址,端口号等信息,找到DUT发送报文中对应两个音频流的报文,提取其中的Version字段进行结果判断与输出。

测试Log如图所示:

RTP 测试log截图

测试报告打印如图所示,分别打印两个RTP音频流的测试结果。

RTP 测试报告截图

本文简要介绍车载音视频协议RTP和RTCP,RTP节点级、系统级测试环境及测试拓扑,RTP测试规范,RTP测试工程及脚本。测试工程使用方便、易操作,测试脚本支持二次开发,测试报告可读性高。

若有RTP测试需求,欢迎联系怿星咨询;同时如有AVB测试需求,怿星同样有完整的解决方案及测试服务,也欢迎大家咨询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/601340.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何远程监控员工的电脑

如何远程监控员工的电脑 为什么要对员工使用电脑的行为进行监控呢?对企业来说是有其必要性的。其必要性主要体现以下4个方面。 1.数据安全与知识产权保护 防止数据泄露:企业内部往往存储着大量的敏感信息,如客户数据、财务资料、商业秘密、…

鸿蒙ArkUI开发实战:制作一个【简单计数器】

构建第一个页面 使用文本组件 工程同步完成后,在 Project 窗口,点击 entry > src > main > ets > pages ,打开 Index.ets 文件,可以看到页面由 Row 、 Column 、 Text 组件组成。 index.ets 文件的示例如下&#xff1…

Qt+VS2019中使用QAxObject时的环境配置

在纯Qt中 在.pro中添加axcontainer模块即可 而VSqt中: 特别傻的是:我运行的是release,但配置的是debug的属性页,一直报错,人都傻了。 最后发现果然是人傻。

《2024工业软件行业软件授权方案使用情况调研报告》发布

深度解析行业应用与趋势 随着制造业的转型升级和数字化、智能化的加速推进,工业软件行业市场规模持续增长的同时也推动着行业技术和商业模式的创新。软件供应商需要根据市场需求和自身特点来制定合适的授权策略和商业模式,以实现软件产品的最大化商业价值…

算法练习第12天|● 239. 滑动窗口最大值● 347.前 K 个高频元素

239.滑动窗口的最大值 力扣原题 题目描述: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff…

Excel返回数值的各个位数值

运行结果 千位 如下图 INT(MOD(A2,10000)/1000) 百位 如下图 INT(MOD(A2,1000)/100) 十位 如下图 INT(MOD(A2,100)/10) 个位 如下图 MOD(A2,10) 特此记录 anlog 2024年4月8日

JavaScript - 请你说一说对随机数的理解

难度级别:初级及以上 提问概率:40% 在前端开发中,随机数的应用场景非常多,而且也是一个常见的考点。例如网页登录的验证码,看似只有4个随机数字加字母的组合,其实这也是随机数的范畴;例如在抽奖算法中,可以用随机数确定用户中奖的概率…

蓝桥杯每日一题:有序分数(递归)

给定一个整数 N,请你求出所有分母小于或等于 N,大小在 [0,1] 范围内的最简分数,并按从小到大顺序依次输出。 例如,当 N5 时,所有满足条件的分数按顺序依次为: 0/1,1/5,1/4,1/3,2/5,12/,35,2/3,3/4,4/5,1/…

类,构造,this,static

第1关:什么是类,如何创建类 100 任务要求参考答案 任务描述相关知识 什么是类怎么定义类创建对象并且使用对象的属性和方法编程要求测试说明 任务描述 本关任务:创建一个类和一个对象,调用这个对象的属性和方法。 相关知识 …

Linux虚拟主机中如何进行扫描检查恶意软件

看到论坛中有网友留言想要知道Linux虚拟主机上是否有扫描检测工具可以检测病毒文件或者恶意软件的。因为想要知道是否有此功能,以便他后去购买产品是可以更清晰的去咨询以及了解。正如这边是有使用Hostease提供商的Linux 虚拟主机,而cPanel中如何进行扫描…

使用nodejs搭建脚手架工具并发布到npm中

使用nodejs搭建脚手架工具并发布到npm中 一、安装环境依赖及脚手架搭建过程二、搭建Monorepo 风格的脚手架工程三、脚手架的必备模块命令参数模块获取命令参数设置子命令用户交互模块文件拷贝模块脚手架中的路径处理目录守卫文件拷贝模块动态文件生成模块mustache简介自动安装依…

近距离共享数字化实战经验,深挖数据价值赋能千行百业

近期,思迈特软件积极投身于金融、制造、零售、医疗等多个行业的线下活动中,深度解析行业趋势,分享BI数字化创新解决方案,并与客户及合作伙伴进行深入交流。通过这些活动,不仅展示了思迈特软件在各领域的先进技术和成果…