Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1814375
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-06-13 17:18:52

RTP(Real-time Transport Protocol)基于IP网络,定义发发视频和音频的标准包格式。


RTP和RTCP(RTP Control Protocol)一起工作。RTP携带了媒体流,而RTCP用于监控传送统计和服务质量(Quality of Service,QoS)并辅助多个媒体流的同步。RTP的端口号为偶数,而RTCP的端口号比它大一的奇数。


RTP用于端到端的,实时的流数据的传输。它提供抖动(jitter)补偿,以及察觉数据乱序到达。RTP通过IP组播支持到多个地址的传输。


实时多媒体流应用需要及时的信息,为此可以容忍一些包的丢失。这些缺失的包可以使用合适的错误隐藏算法而不被注意。RTP的多数实现都是基于UDP。


除了RTP和RTCP,RTP规范还包含:

1、可选的信号协议,比如H.323和会话初始化协议(Session Initiation Protocol,SIP);

2、可选的媒体描述协议,比如会话描述协议(Session Description Protocol,SDP)。


对每个多媒体流都会有一个会话建立。一个会话包括IP地址以及RTP和RTCP的一对端口。RTP和RTCP通常使用无特权的UDP端口(1024~65535)。



RTCP收集媒体的连接和信息的统计,比如传送的字节数和包数、丢失的包数、抖动以及来回通讯延迟时间。应用可以使用这些信息控制服务质量参数,也许是通过限制流,或使用不同的解编码器。

RTCP本身不提供流加密或认证方法。这些机制可以通过安全实时传输协议(Secure Real-time Transport Protocol,SRTP)实现。


RTCP提供了三种基本功能,用于所有的RTP会话:

1、收集在会话期间媒体分发的质量方面的统计,并把这个数据传送给会话媒体源和其它会话参与者。如果会话在组播网络上执行,那么这允许非侵入式的会话质量的监控。

2、为所有会话参与者提供标准(canonical)终端ID(CNAME)。尽管RTP流的源ID被期望为唯一的,但源ID(SSRC)到终端的瞬间绑定可能在一个会话里会改变。CNAME为各个应用程序的端点都建立一个唯一的ID,并用于第三方的监控。

3、RTCP的报告被期望发给会话的所有参与者,哪怕是涉及上千人的组播会话。通信量会随着参与者数的增加而成比例增长。因此,为避免网络阻塞,协 议必须包含会话带宽管理。这通过动态控制报告传输的频率来完成。RTCP所占用的带宽通常不会超过总会话带宽的5%。此外,25%的RTCP带宽应该为随 时为媒体源预留,以便在很大的会议里新的参与者可以收到发送者的CNAME ID而没有延迟。

4、可选特性,会话控制函数的供应,因为RTCP可以很方便地到达所有参与者,而RTP本身不能。


RTCP有几种不同类型的包:

1、发送者报告(Sender Report,SR):会议里活动的发送者周期性地发送在一段时间间隔内RTP包的发送和接收统计的报告。SR包括一个绝对时间戳(1900/1/1午夜 至今的秒数),允许接收方同步RTP消息。这对于同时传送视频和音频非常重要,因为它们使用独立的相对时间戳。

2、接收者报告(Receive Report,RR):被动参与者向发送者以及其它接收者通知服务质量的报告。

3、源描述(Source Description,SDES):用于为会话参与者发送CNAME项。它也可以用来提供一些额外信息,比如拥有者或源的控制者的名字、邮箱、地址、电话。

4、参与结束(End of participation,BYE):源发送BYE消息来关闭流。它允许终端声明离开一个会议。尽管其它源可以察觉某个源的缺失,但这是一个直接的声明。它对媒体混合也很有用。

5、应用相关的消息(Application-specific Message,APP):允许对RTCP进行应用相关的扩展。


阅读(1263) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~