实时传输协议——RTP协议

随着以太网音视频桥接(AVB)技术的引入,汽车可支持各种基于音频、视频的流媒体服务。在流媒体数据传输过程中,为保障音视频流的实时传输,需采用RTP和RTCP协议。接下来,我们一起来了解下实时传输协议吧!

什么是RTP?

RTP定义:Real-time Transport Protocol,是由IETF的多媒体传输工作小组于1996年在RFC 1889中公布的。RTP为IP上的语音、图像等需要实时传输的多媒体数据提供端对端的传输服务,但本身无法保证服务质量(QoS),因此,需要配合实时传输控制协议(RTCP)一起使用。

RTCP定义:Real-time Transport Control Protocol,监控服务质量并传送会话参与者信息,服务器可利用RTCP数据包信息改变传输速率、负载数据类型。

RTP相关概念介绍

流媒体:使用流式传输技术的连续时基媒体。使用流式传输可以边下载边播放,无需等待音频或视频数据信息全部下载完成后再播放。

混频器(Mixer):一种中间系统,将一个或多个源的RTP数据包合成一个新的RTP数据包,然后转发出去。混频器可能会改变数据包的数据格式,并对各个流组合的新数据包生成一个新SSRC。

图片

转换器(Translator):一种中间系统,转发RTP数据包但不改变数据包的同步源标识符,可用于通过IP多播无法直接到达的用户区,如在防火墙两端使用转换器,外侧转换器通过安全连接将数据传输到内侧转换器。

图片

RTP利用混频器和转换器完成实时数据传输,混频器接收来自一个或多个发送方的RTP数据包,并把它们组合成一个新的RTP数据包继续转发。这个组合数据包使用新的SSRC标识,组合数据包将作为新的发送方加入到RTP传输中。混频器将不同的媒体流组合在一起,需要通过转换器来对单个媒体流进行操作,可进行编码转换或协议翻译。典型的RTP数据包传输流程如下图所示,其中S1、S2、S3、S4是数据源的发送端,R4是RTP数据包的接收端。

图片

RTP工作原理

RTP和RTCP位于传输层,但运行在UDP协议之上。UDP协议实时性更好,可减少数据传输延时,另外,应用程序在UDP上运行RTP还可利用UDP的多路复用,校验和服务。

图片

RTCP向RTP会话中的所有成员周期性的发送控制包,RTCP使用和RTP数据包相同的传输机制。RTP会话使用合法的偶数端口(2n),对应的RTCP包使用下一个奇数端口(2n+1)。

图片

RTP报文分析

每帧RTP报文都是由头部(Header)和负载数据(Payload)两部分组成,头部前12个字节固定,存在于每一个RTP数据包中,最后的CSRC列表只在Mixer中使用。负载数据可以是音频数据或视频数据。

图片

RTP报头中V(Version)[2 bits]:标识RTP版本,RFC3550规定设置为2

P(Padding)[1 bit]:设定报文末端的填充字节,设置为1时指示报文末端附加填充字节

X(Extension)[ 1 bit]:设定固定报头后的报文扩展,设置为1时固定报头后必须有扩展

CC(CSRC Count)[4 bits]:标识固定报头后的CSRC数量,最大值为15

M(Marker)[1 bit]:由配置文件(profile)定义,需根据具体用途解释意义,可用来标记流数据中的重要事件

PT(Payload Type)[7 bits]:标识数据类型,内容包含编码算法、媒体类型、时钟频率及承载通道

序列号(sequence number)[16 bits]:标识数据包序列号,用于接收方重构数据包序列并记录丢包量,序列号初始值是随机产生的,每发送一个RTP数据包,序列号加1

时间戳(timestamp)[32 bits]:标识RTP数据包中第一个字节的采样时间,时间戳初始值也是随机数,每个采样周期时间戳加1,接收端利用时间戳来去除由网络引起的数据包抖动,并且在接收端提供同步功能

SSRC(Synchronization Source)[32 bits]:同步源标识符用于标识RTP数据流的起源,在一个RTP会话中,每个数据流的SSRC都不同,同步源标识符的值是随机数

CSRC list(Contributing Source) [N*32 bits]:贡献源列表用于标识此RTP数据包中数据来源,由混频器将所有贡献源的SSRC标识符放入此表中,数量N由CC决定,最大数量为15,因此,当数量N超过15时,仅识别15个

RTCP报文分析

RTP只负责传输数据包,需要与RTCP配合使用,由RTCP来保证RTP数据包的服务质量。RTCP的主要功能:服务质量的监控和反馈、媒体设备间的同步以及多播组中的成员标识。在RTP会话期间,各参与者周期性传送RTCP数据包,RTCP数据包中包含已发送的数据包数量、丢失的数据包数量等信息,各参与者通过这些信息动态改变传输速率或传输的数据类型。

RTCP可划分成五种类型,如下表所示:

图片

RTP和RTCP协作传输多媒体数据的流程图如下图所示,在一个RTP会话中有发送端和接收端,发送端将数据封装到RTP中发送,同时以一定的时间间隔周期性发送RTCP中的发送报告(SR),也收到接收端发过来的接收报告(RR)或从其他发送端发送过来的发送报告(SR)。接收端获取到RTP数据包后解析数据,取得应用数据,获取其他参与者发送的发送报告(SR),接收数据的同时通过发送接收报告(RR)将RTCP反馈信息发送出去。

图片

以上就是今天的主要内容啦,往期小怿也介绍过各类汽车以太网协议,如果大家感兴趣可以通过下方链接进入阅读。如果想要了解更多汽车以太网知识,请持续关注我们呦!

猜你喜欢

转载自blog.csdn.net/m0_47334080/article/details/114091501
今日推荐