RTCP协议解析--RR

RR包为接收反馈RTCP包,向服务端反馈当前接收到的RTP的情况。定义如下:


使用wireshark抓包工具,抓取了一个RR包,如下:

解析如下:

Version(V) :2bits

识别 RTP 版本,RTCP 报文也一样、一般为2.

padding (P):1 bit

如果设定了 padding 位,这个个别的 RTCP 报文在尾部包含一些附加的padding 字段,不是控制信息但却包含在长度域中。padding 的最后一个字段是应该忽略的字段的计数,包括自己。一般为0

reception report count (RC):5 bits

本报文中包含的接收报告块的数量、一般为1

packet type (PT):8 bits

201 是标识本报文是 RTCP RR 报文

length:16 bits

本 RTCP 报文长度(以 32-bit 形式)减一,包括头和 padding(减一是为了零长度有效和避免无限循环来寻找混合的 RTCP 报文,而 32-bit 字是避免对四的倍数的有效检查)。这里值为7,简单的说就是记得是头的长度减去1的值

SSRC:32 bits

 此值为一个随机数,但是却要保持唯一

SSRC_n (source identifier):32 bits

源的 SSRC identifier,本报告块的信息所属。说白了,就是rtp包的ssrc值。

fraction lost:8 bits

上次 SR 或 RR 发送之后,从 SSRC_n 源的 RTP 报文丢失的部分,以定点数来表达,二进制的点在左边沿(相当于 loss 部分乘 256 之后取整)。这部分定义为丢失报文的数量除以期望的报文,像下段所应依的那样。如果因为复制而使损失为负,lost 部分设定为零。注意到接收者不能辨认是否有报文丢失,如果在上次报告间隔期间的报文丢失了,不会有没有接收报告来关注这个问题

cumulative number of packets lost:24 bits

从接收开始,SSRC_n 源的 RTP 报文丢失的数量。定义为期望的减去实际接收的,其中接收的包括迟到的和复制的,如果有复制,丢失可能为负。期望的报文定义为由上次接收的序列号延伸出的序列号,如下所定义,减去接收到的初始序列号。

extended highest sequence number received:32 bits

低 16 位包含从源 SSRC_n 接收到的 RTP 数据报文中最高的序列值、高16位表示循环的次数

interarrival jitter:32 bits

关于 RTP 数据报文 interarrival 时间的统计方差的估值,以 timestamp 单元来估值,表现为无符号整数。interarrival jitter J 定义为 D 的均方差,D为接收者和发送者的间隔。像下面方程所示,等于两个报文的“相对传输时间”(the relative transit time) 的差;相对传输时间是一个报文的 RTP timestamp 和到达接收者的时钟的差,在相同单元衡量。

last SR timestamp (LSR):32 bits NTP timestamp的中间 32 位作为从源 SSRC_n 来的最近的 RTCPSR。如果尚未接收到 SR,域设置为零。

delay since last SR (DLSR):32 bits延迟定义为从接收到从源 SSRC_n 来的上一个 SR 到发送本接收报告块的间隔,表示为 1/65536 秒一个单元。如果尚未收到 SR,DLSR 域设置为零



猜你喜欢

转载自blog.csdn.net/g0415shenw/article/details/79825524