官方文档参考:RFC 3550 - RTP: A Transport Protocol for Real-Time Applications
RTCP是实时控制协议(Real-Time Control Protocol)的缩写。
RTCP 由 RFC 3550 定义(取代作废的 RFC 1889)。
RTCP 的功能
RTCP(Real-time ControlProtocol,RTCP)实时传输控制协议的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。在RTP会话期间,每个会话参与者周期性地向所有其他参与者发送RTCP控制信息包。每个RTCP信息包不封装声音数据或者电视数据,而是封装发送端(和 / 或者)接收端的统计报表。RTCP也是用UDP来传送的。
根据所携带的控制信息不同RTCP信息包可分为RR(接收者报告包)、SR(源报告包)、SEDS(源描述包)、BYE(离开申明)和APP(特殊应用包)五类5类:

1、RTCP 主要功能是提供有关质量的反馈数据分发。这是 RTP 角色不可或缺的一部分,传输协议,与流量和拥塞有关其他传输协议的控制功能。
2、RTCP 带有 RTP 的持久性传输级别标识符源称为规范名称或 CNAME。自从如果发现冲突或程序重新启动,接收方要求 CNAME 跟踪每个参与者。
接收者也可能要求 CNAME 将来自给定参与者的多个数据流关联到集合中相关 RTP 会话的数量,例如同步音频和视频。媒体间同步还需要 NTP 和 RTP 数据发送方在 RTCP 数据包中包含的时间戳。
3、前两个功能要求所有参与者发送 RTCP 数据包,因此必须控制速率以使 RTP 能够扩大到大量参与者。通过让每个参与者将其控制包发送给所有其他人,每个人都可以独立观察参与者的数量。
4、这项功能对于参加者可以任意进入和离开的松散会话进程十分有用,参加者可以自由进入或离开,没有成员控制或参数协调。
功能 1-3 应该在所有环境中使用,尤其是在 IP 多播环境。RTP 应用程序设计师应避免只能在单播模式下工作且无法扩展到的机制更大的数字。RTCP 的传输可以单独控制对于发送者和接收者,适用于例如单向链接,而接收者没有反馈可能的。
RTCP 协议的端口
RTSP 通常使用 RTP 协议来传送实时流,RTP 一般使用偶数端口,而 RTCP 使用相邻的奇数端口,即 RTP 端口号+1。
RTCP 信息包有哪些
RTCP协议中规定对的类型有20多个,常用的是下面列出的前4个,在视频流监督的时候主要用123
在 RTCP 通信控制中,RTCP 协议的功能是通过不同类型的 RTCP 包来实现的。RTCP 也是基于 UDP 包来传送的,主要有五种类型的封包:
- SR:发送者报告,描述作为活跃发送者成员的发送和接收统计数字;。200
- RR:接收端报告,描述非活跃发送者成员的接收统计数字; 。 201
- SDES: 源描述,传递与会话成员有关的标识信息的载体,如用户名、邮件、电话, 其中包括规范名 CNAME . 202
- BYE: 通知离开,通知回话中的其他成员将退出会话。 203
- APP: 由应用程序自己定义,作为 RTCP 协议的扩展。204
我们以推流的场景说明:
第一步:在客户端推流给服务器的时候,会隔一段时间发送 SR类型的RTCP
第二步:当服务器端在收到这个RTCP 后,会发送RR给客户端,并发送SDES 给客户端。也可以不发送 SDES。
总的来说,SR 是单独发送的, RR 和 SDES结合使用,也可以单独发RR。
RTCP 整体 = RTCP头部 + RTCP 身体
RTCP头部分析
大小为:4个字节 = 32位


version 2位 版本号, 此协议定义的版本是2
padding 1位 如果填充位被设置为1,则一个或多个附加的字节会加在包头的最后,附加的最后一个字节放置附加的字节数。填充可能于某些具有固定长度的加密算法,或者在底层数据单元中传输多个RTP包
Itemcount 5位 有些RTCP分组类型包含多个条目(item),IC用来计算有多少个条目。因为IC只有5个bit,所以最多31个item。如果需要的item超过31个,那么应用实现必须包含多个RTCP分组。如果IC为0表示空的item列表。分组如果不需要item列表,那么可以把IC字段用于其他目的
Pakcet type 8位 PT 表示了分组中携带消息的类型,也就是RR,SR,SDES,BYE和APP
Length 16位 除了RTCP头外的长度,也就是RTCP身体的长度 注意的是:这个长度*4 bytes 才是真正的长度。例如length 的值是6,那么 RTCP身体的 大小就是 24 bytes
由于 RTCP 头部占用 4个字节,因此 RTCP的总长度为 4+24 = 28 字节
分析:

80C8 0006
对应的2进制如下:
1000 0000 1100 1000 0000


2039

被折叠的 条评论
为什么被折叠?



