跳到主要内容

RTCP

· 阅读需 4 分钟

RTCP(Real-time Transport Control Protocol)是RTP(Real-time Transport Protocol)的控制协议,用于监测RTP传输的质量和控制RTP流的发送速率。

RTP被划分在传输层,它建立在UDP上。同UDP协议一样,为了实现其实时传输功能,RTP也有固定的封装形式。RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量。服务质量由RTCP来提供。

RTCP的封装

RTP需要RTCP为其服务质量提供保证。RTCP的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。在RTP会话期 间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,各参与者可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。

RTCP也是用UDP来传送的,但RTCP封装的仅仅是一些控制信息,因而分组很短,所以可以将多个RTCP分组封装在一个UDP包中。RTCP有如下五种分组类型:

类型缩写表示用途
200SR(Sender Report)发送端报告
201RR(Receiver Report)接收端报告
202SDES(Source Description Items)源点描述
203BYE结束传输
204APP特定应用

定义

SSRC(Synchronization source)是RTP报文流的一个Source,由RTP头中定义的32-bit的SSRC identifier来标识,这样做是为了不依赖网络地址。同一个SSRC中发送的所有包都具有同一时序和序列号间隔,因此接收者可以通过SSRC将收到的数据包分组并排序。一个信号源(麦克风,摄像头,Mixer)的报文流会有由一个SSRC的发送器发送。一个SSRC可能会随着时间的变化,改变其数据格式,例如音频编码。SSRC的身份识别码都是随机生成的,但是必须保证整个RTP session中该身份识别码不会重复,这些工作是通过RTCP来完成的。如果一个与会者在一个RTP session中发送不同的媒体数据流,那么每个流的SSRC必须不同。