随着以太网音视频桥接(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反馈信息发送出去。

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

实时传输协议——RTP协议相关推荐

  1. 音视频传输:RTP协议详解和H.264打包方案

    问题背景: 前面讲解了PS.TS.FLV这三种媒体封装格式,现在新开一个系列讲解下传输协议,这里面会包含RTP.RTSP.HLS.RTMP等.当然最复杂的封装格式MP4在准备中,后面会把封装格式这个系 ...

  2. RTSP协议 RTP协议

    RTSP(Real-Time Streaming Protocol)实时流式协议 需要注意的是,RTSP本身不传输数据,音视频流数据是通过RTP传输的. C/S请求应答整体流程: 客户端->&g ...

  3. 音视频协议-RTP协议

    1 协议简介 音视频传输的基石:RTP和RTCP.对于协议的讲解主要是是对于RFC文档的阅读和理解.不同的使用场景用到的字段也有所侧重,RTP和RTCP定义在RFC3550中.其中RTP用于数据流的传 ...

  4. 音视频协议-RTP协议打包

    目录 H264打包RTP的方法 RTP打包AAC 1. H264打包RTP的方法 RTP的特点不仅仅支持承载在UDP上,这样利于低延迟音视频数据的传输,另外一个特点是它允许通过其它协议接收端和发送端协 ...

  5. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍

    **************************************************************************************************** ...

  6. webrtc 和 rtp 协议

    我会开辟一个空间rtp协议,包含vp9 h264 h265 aac opus 等rtp实例,包含实例代码,让看文章的人得到真实的提升 一.webrtc rtp协议为实时传输协议 real transf ...

  7. RTP协议学习大总结从原理到代码

    一.流媒体概念  流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传 输流和回放流的一系列技术.方法和协议的总称,即流媒体技术:狭义上  的流媒体是相对 于传统的下载-回 ...

  8. 基于RTP协议的IP电话QoS监测及提高策略

    基于RTP协议的IP电话QoS监测及提高策略 本文转自 http://jxic.jiangxi.gov.cn/Html/2008321143656-1.html 1. 概述  随着Internet和多 ...

  9. 国标28181:什么是RTP协议与RTCP协议

    前言 流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下边播的方式,它是视频会议.IP电话等应用场合的技术基础.RTP是进行实时流媒体传输的标准协议和关 ...

最新文章

  1. pycharm导包错误
  2. c语言大作业之镖行天下,天下识君--如何最快速度刷完天下识君
  3. CMD命令名详细大全
  4. python中的栈结构_python中有栈吗
  5. Couldn‘t find grammar element for class javax.ws.rs.core.Response
  6. Python File 介绍
  7. W25Q128 闪存芯片SPI详解
  8. 程序员35岁之后的职业发展
  9. Ubuntu IPFS小白安装入门教程
  10. 【计算机图形学】Liang-Barsky裁剪算法(C++实现)
  11. windows7打不开html文件格式,mht是什么文件?Win7打不开mht格式文件的解决办法
  12. 儿童学习与发展指南《倾听与表达》篇
  13. oracle 倒库详细步骤,详细的“倒车入库”步骤来了!一图一解析,照着做考试轻松一把过...
  14. 对于Python的get-pip.py安装教程
  15. 怎么修改html的空格大小,css设置空格宽度间距样式
  16. 基于Vue3实现扫码枪扫码并生成二维码的代码解析
  17. QQ邮箱发送验证码功能的实现
  18. 输入框上的Magnifier
  19. 网易考拉规则引擎平台架构
  20. eclipse oxygen java7,Eclipse Oxygen:M7重点在于可用性

热门文章

  1. MAC系统 如何显示隐藏的文件(文件夹)
  2. [转]情侣相处最佳模式
  3. 7段均衡器最佳参数_7段均衡器怎么调能达到最佳效果
  4. android平台上持久化存储3种手段_Android--数据持久化之内部存储、Sdcard存储
  5. 2020程序员VS码农,“金三银四”春招指南
  6. 一款简单的本地音乐播放器,界面美观、包括主题切换、歌单管理等等
  7. 无人巴士和无人出租车都能用的L4自动驾驶通用硬件方案
  8. 神经网络训练失败原因总结
  9. CTP下单与持仓查询
  10. CTF中出现的各种字符/密码总结