五分钟技术趣谈 | 音视频通信及信令SIP协议压测方法浅析

网络
网络基础设施升级、音视频传输技术迭代、WebRTC开源等因素,驱动音视频服务时延逐渐降低,使实时音视频(RTC)技术成为炙手可热的研究方向。实时音视频业务在消费互联网领域蓬勃发展,并逐渐向产业互联网领域加速渗透。

Part 01

音视频通信过程 

音视频通信技术依托核心音视频编解码、信道传输、网络调度等能力,为用户提供低延时、高品质的音视频内容。音视频通信完整流程有如下几个环节:前后处理、采集、编码、传输、解码、缓冲、渲染等。

图片

图1 音视频通信过程

Part 02

音视频通信相关协议 

音视频通信涉及的协议有:rtp,rtcp, rtmp,rtsp,http,hls,srt,sip。其中rtp和rtcp为传输层协议,它依赖底层的udp协议,常配合rts直播;rtsp,rtmp,hls,srt为应用层媒体传输协议,常用于直播,互动直播,点播等;sip为依赖底层udp协议信令控制协议,用于媒体会话发起、终止、修改控制。

表1 音视频通信相关协议详情

图片

计算机网络采用了层次化设计方法,层与层之间通过层间接口联系起来,每层通过特定的协议完成一种功能,多层叠加完成整个信息的发送和接收。媒体通信协议与OSI协议体系结构的关系如下:

图片

图2 媒体通信协议与OSI协议体系结构的关系

Part 03

基于SIP的中心信令控制服务 

云桌SIP(Session Initiation Protocol)是应用层会话初始协议,可用于媒体会话的发起、终止、修改,是NGN即为下一代网络中的重要协议,是由IETF制定的多媒体通信协议。会话的参与者可以通过组播、网状单播或两者的混合体进行通信。信令(Signaling)是指通信系统中的控制指令,如:状态上报,配置参数下发,网络资源调度,是实现音视频通信的重要一环。要实现音视频通信,需要经过信令服务器交换信息:媒体信息、网络信息、具体业务(例如:拉流,暂停,加入房间,禁言等)

图片

图3 信令控制服务过程

媒体信息:在双端通信之前,通过SDP(SessionDescription Protocal)会话描述协议了解双方具备哪些能力,SDP媒体信息携带了编解码器是什么,是否支持音频视频,编码方式是什么等。

图片图片

图片图片

图4 SDP会话描述协议中的关键属性

网络信息:当A向B通信时,首先将网络相关信息传到信令服务器,服务器帮你交换到对端,对端拿到你的信息后,若在同一局域网内,直接通过P2P传输;若不在,首先进行P2P穿越,看是否能打通,打通则传输,打不通则中转等。

Part 04

SIPP性能测试 

在SIPP测试过程前,我们先了解sip创建/结束会话过程:

1.主叫方向被叫方发送SIP INVITE 请求消息(携带SDP),请求建立会话

2.被叫方返回SIP 200 OK响应消息(携带SDP),接受会话建立请求

3.主叫方发送SIP ACK 请求消息确认会话的建立。

4.会话中的任意一方可以发送SIP BYE 请求消息,请求结束会话;

5.另一方返回SIP 200 OK响应消息,接受会话结束请求。

图片

图5 sip创建/结束会话过程

SIPP可以用来测试许多真实的SIP设备,如SIP代理、B2BUAS,SIP服务器,SIP/X网关、SIPPBX等等,它可以模仿上千万个SIP代理呼叫你的SIP系统。

❖ 以模拟UAC为例,测试步骤:

1.用户操作端口设备的管控功能,如拉流,暂停,云台控制等功能

2.xshell链接信令所在服务器,执行抓包命令tcpdump -i any -s 0 -w xx.pcap

3.使用xftp将抓包xx.pcap文件同步到本地 ,使用wireshark 查看

4.根据sip的交互报文,编写sipp脚本(如右图1)

5.将uac脚本放在在sipp部署的服务器目录下执行以下命令:

6.sipp -i 172.xx.xx.86 -p 5xxx5 -sf uac3.xml -inf data.csv 172.xxx.xxx.38:5xx0 -r 1 -l 10 -m 20

图片

图6 SIPP性能测试脚本编写

Part 05

结束语 

随着新一代信息技术的快速发展,我们已经进入了进入一个全新的智能时代。作为质量保障部门,一方面我们要深入了解业务所涉及的技术,另一方面要探究质量保障方法为家庭安防生态业务发展保驾护航。

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2023-09-12 07:10:13

Nacos架构

2023-09-17 17:51:43

Android 14

2023-08-06 06:55:29

数字可视化物联网

2023-09-18 07:10:48

限流算法

2023-07-23 18:47:59

Docker开源

2023-07-16 18:49:42

HTTP网络

2023-09-03 19:21:07

大数据架构

2023-09-02 20:22:42

自动化测试软件开发

2023-08-29 07:02:09

3D

2023-04-15 20:25:23

微前端

2023-07-23 08:26:39

平安乡村网络

2023-09-03 19:06:42

2023-07-02 16:09:57

人工智能人脸识别

2023-07-02 16:34:06

GPU虚拟化深度学习

2023-07-23 08:35:13

Web网络

2023-08-06 07:05:25

Android优化

2023-07-31 08:55:15

AI技术网络暴力

2023-07-12 15:50:29

机器学习人工智能

2023-08-29 06:50:01

Javamaven

2023-08-29 06:55:43

点赞
收藏

51CTO技术栈公众号