RTP包的学习记录
Posted 七 六 伍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTP包的学习记录相关的知识,希望对你有一定的参考价值。
RTP标准定义了两个子协议,RTP和RTCP。
数据传输协议RTP,用于实时传输数据。该协议提供的信息包括:时间戳(用于同步)、序列号(用于丢包和重排序检测)、以及负载格式(用于说明数据的编码格式)。
控制协议RTCP,用于QoS反馈和同步媒体流。相对于RTP来说,RTCP所占的带宽非常小,通常只有5%。
**
报文格式
**
RTP报文由两部分组成:报头和有效载荷。RTP报头格式其中:
**l V:**RTP协议的版本号,占2位,当前协议版本号为2。
**l P:**填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
**l X:**扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。
**l CC:**CSRC计数器,占4位,指示CSRC 标识符的个数。
l M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。
**l 同步信源(SSRC)标识符:**占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
**l 特约信源(CSRC)标识符:**每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
l PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等。
**l 序列号:**占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。
**l 时戳(Timestamp):**占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
以上是关于RTP包的学习记录的主要内容,如果未能解决你的问题,请参考以下文章
ROS学习笔记-rosbag数据记录包的使用-记录和回放小海龟历程
ROS学习笔记-rosbag数据记录包的使用-记录和回放Spark机器人建图过程