RTCP
包组成
- 数据包格式
- 时序规则
- 参与者数据库
包格式
规范定义了统一的基本包格式,如下:
- V 版本号,默认为2
- P 填充,加密使用,类似于RTP的方式,最后一个字节为填充总数
- IC,item count条目数量,最多为31个,注意MTU的限制,如果超过31个条目,则需要对内容进行分包。
- PT,Packet Type,包类型,看下面的定义
- Length, 长度
五种RTCP包类型
- 接收方报告(RR)
- 发送方报告(SR)
- 源描述(SDES)
- 成员管理(BYE)
- 应用程序定义(APP)
PS: RTCP包不会单独的被传输。它需要打包在一起形成复合包(compound packets)进行传输。每一个复合包都会被一个底层的包封装(通常是UDP/IP包)用来传输。如果要对复合包进行加密,那么RTCP的包组的前缀通常是一个32位的随机数。
复合包的结构
包类型-RR
- Reporter SSRC: 报告者,即我是谁
- Reportee SSRC: 被报告者,即我要报告谁
- Loss fraction: (24bit),丢包率,是在这个报告间隔中所丢失包的数量,除以预期到达的数量
- Interarrival jitter: 到达间隔抖动
- last sender report,LSR
- delay since last sender report,DSLR,自上次发送者报告起的延迟,以1/65,536秒为单位
累计丢包计算
累计丢包 += 预期到达的包 - 实际接收到的包。
预期到达的包 = 最后接收到的包的序列号 - 初始包序列号