关闭

RTCP协议

1043人阅读 评论(1) 收藏 举报

RTCP协议

rtcp控制协议需要与RTP数据协议一起配合使用,当应用程序启动一个RTP会话时将同时占用两个端口,分别供RTPRTCP使用。RTP本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。通常RTCP会采用与RTP相同的分发机制,向会话中的所有成员周期性地发送控制信息,应用程序通过接收这些数据,从中获取会话参与者的相关资料,以及网络状况、分组丢失概率等反馈信息,从而能够对服务质量进行控制或者对网络状况进行诊断。

RTCP协议的功能是通过不同的RTCP数据报来实现的,主要有如下几种类型:
SR  发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。发送端报告分组SR用来使发送端周期性地向所有接收端用多播方式进行报告。发送端每发送一个RTP流就要发送一个发送端报告分组SR。SR分组的内容有:该RTP流的SSRC;该RTP流中最新产生的RTP分组的时间戳和绝对时钟时间(或墙上时钟时间wall clock time);该RTP流包含的分组数;该RTP流包含的字节数。绝对时钟时间是必要的。因为RTP要求每一种媒体使用一个流。例如,要传送视频图像和相应的声音就需要传送两个流。有了绝对时钟时间就可以进行图像和声音的同步。
RR  接收端报告,所谓接收端是指仅接收但不发送RTP数据报的应用程序或者终端。这是一个接收质量的反馈,对Sender和其他的第三方如网络的monitor等都有意义,如:
1)可以计算Round-trip Time (RR收到时间-LSR - DLSR),round-trip time的估计是很重要的
2)Lost fraction:短期内,对媒体格式的选择有参考
3)Jitter:突然增大的Jitter通常意味着丢包的开始

SDES  源描述,主要功能是作为会话成员有关标识信息的载体,如用户名、邮件地址、电话号码等,此外还具有向会话成员传达会话控制信息的功能。
BYE  通知离开,主要功能是指示某一个或者几个源不再有效,即通知会话中的其他成员自己将退出会话。
APP  由应用程序自己定义,解决了RTCP的扩展性问题,并且为协议的实现者提供了很大的灵活性。
      rtcp数据报携带有服务质量监控的必要信息,能够对服务质量进行动态的调整,并能够对网络拥塞进行有效的控制。由于RTCP数据报采用的是多播方式,因此会话中的所有成员都可以通过RTCP数据报返回的控制信息,来了解其他参与者的当前情况。

   在一个典型的应用场合下,发送媒体流的应用程序将周期性地产生发送端报告SR,该RTCP数据报含有不同媒体流间的同步信息,以及已经发送的数据报和字节的计数,接收端根据这些信息可以估计出实际的数据传输速率。另一方面,接收端会向所有已知的发送端发送接收端报告RR,该RTCP数据报含有已接收数据报的最大序列号、丢失的数据报数目、延时抖动和时间戳等重要信息,发送端应用根据这些信息可以估计出往返时延,并且可以根据数据报丢失概率和时延抖动情况动态调整发送速率,以改善网络拥塞状况,或者根据网络状况平滑地调整应用程序的服务质量。

复合包的规则如下:

#所有的包必须是复合包。

#版本必须是2 。
#复合包开始的RTCP Packet必须是SR和RR,然后是SDES,SDES必须包含一个CNAME,其他可选。

#如果需要Padding,则只有最后一个packet是padding的。
#所有的RTCP packets的长度必须等于复合RTCP包的长度。

#如果有BYE的话,放到最后.其他的包可以随意。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:544199次
    • 积分:7905
    • 等级:
    • 排名:第2598名
    • 原创:200篇
    • 转载:367篇
    • 译文:0篇
    • 评论:37条
    最新评论