RTP
控制协议
RTCP
在基于周期性传输的基础上,
采用与数据包相同的分配机制,
向会话参
与者发送控制包?/p>
底层协议必须提供数据多路技术和控制包,
例如使用
UDP
的特定端口号?/p>
RTCP
完成四个功能服务?/p>
1.
RTCP
提供数据分配质量反馈信息。作为传输协议这?/p>
RTP
功能的主要部分并且它
涉及到了其它传输协议的流控制和拥塞控制?/p>
2.
RTCP
?/p>
RTP
源(称为规范名或
CNAME
)传送一个持久性传输层标识符。由于一?
发现冲突或需要重启程序时?/p>
SSRC
标识符会随之改变,所以接收方要求
CNAME
?/p>
了每一个参与者,
同时接收方还要求
CNAME
能够连接多重数据流和一组相关会话中
的指定参与者,例如同步视频和音频?/p>
3.
上述前两个功能要求所有的参与者都要发?/p>
RTCP
包,因此必须控制速率以便
RTP
按比例增加大量的参与者?/p>
通过每一个参与者发送各自的控制包给其它所有参与者,
每一个参与者能够独立观察到参与者数量,该数量可用来估算包的发送速率?/p>
4.
OPTIONAL
的功能是传送最小会话控制信息,
例如在用户界面显示参与者标识?/p>
这对
于“松散受控”会话(在没有成员控制或阐述协商的情况下,参与者可以进出该?/p>
话)是非常有用的?/p>
上述功能
1
?/p>
3
适用于所有环境,尤其?/p>
IP
组播环境?/p>
RTP
应用程序设计者应该避?/p>
设计只能工作于单播模式的机制并且不能大量增加其数量。由于在某些情况下如单向链接
中,
不可能有来自接收方的反馈?/p>
所?/p>
RTCP
的传输就可能由发送方和接收方分别独立控制?/p>
2
3
8
16 bit
Version
P
RC
Packet type
Length
?/p>
Version
?nbsp;识别
RTCP
版本?/p>
RTP
数据包中的该值与
RTCP
数据包中的一样。当?/p>
规定值为
2
?/p>
?/p>
P ?nbsp;
间隙?/p>
Padding
?/p>
。设置时?/p>
RTCP
数据包包含一些其?/p>
Padding
八位位组?/p>
它们不属于控制信息?/p>
Padding
的最后八位是用于计算应该忽略多少间隙八位位组?/p>
一些加密算法中需要计算固定块大小时也可能需要使?/p>
Padding
字段?/p>
在一个复?/p>
RTCP
数据包中?/p>
只有最后的个别数据包中才需要使?/p>
Padding
?/p>
这是因为复合数据
包采用的是整体加密方法?/p>
?/p>
RC ?nbsp;接收方报告计数。接收方报告块的编号包含在该数据包中,有效值为
0
?/p>
?/p>
Packet Type ?nbsp;包括常量
200
,识别一?/p>
RTCP SR
数据包?/p>
?/p>
Len
gth
?nbsp;
RTCP 数据包的大小?/p>
32
位字减去
1
),包含头和任意间隙(偏移量的引
入使?/p>
0
成为有效值,并避免了扫描复合
RTCP
数据包过程中的无限迂回现象,?/p>
采用
32
位字计数方法则避免了?/p>
4
的倍数的有效校验)?/p>