流媒体实时传输协议:RTP

一、简介

    实时传输协议(RTP)为数据提供了具有实时特征的端对端传送服务,如在组播单播网络服务下的交互式视频音频或模拟数据。应用程序通常在 UDP 上运行 RTP 以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是 RTP 可以与其它适合的底层网络或传输协议一起使用。如果底层网络提供组播方式,那么 RTP 可以使用该组播表传输数据到多个目的地。

    RTP 本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于底层服务去实现这一过程。 RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性。 RTP 实行有序传送, RTP 中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。

二、RTP头格式

各个字段说明:

  • 版本(V): 2bit,此域定义了RTP的版本。此协议定义的版本是2.(值1被RTP草案版本使用,值0用在最初"vat"语音工具使用的协议中);
  • 填充为(P): 1bit,如果该位置位,则该RTP包的尾部就包含附件的填充字节;
  • 扩展位(X): 1bit,如果该位置位,RTP固定头部后面就跟有一个扩展头部;
  • CSRC计数器(CC): 4bit,含有固定头部后面跟着的CSRC的数目;
  • 标志(M): 1bit,标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如帧边界;
  • 负载类型(PT): 7bit,标识了RTP传输的负载类型;
  • 序列号(sequence number): 16bit,每发送一个RTP数据包,序列号加1,接收端可以依次检测丢包和重建包序列。序列号的初始值是随机的。
  • 时间戳(timestamp): 32bit,记录了该包中数据的第一个字节的采样时刻。在一次会话开始时,时间戳初始化成为一个初始值。即使在没有信号发送时,时间戳的数值也要随着时间而不断的增加。时间戳是去抖动和实现同步不可缺少的数据。
  • 同步源标识符(CSRC): 32bit,同步源是指RTP包的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是随机选取的,RFC1889推荐了MD5随机算法。
  • 贡献源列表(CSRC List): 0~15项,每项32bit,用来标志对一个RTP混合器产生的新包有贡献的所有RTP包的源。由混合器将这些有贡献的SSRC标识符插入表中。SSRC标识符都被列出来,以便接收端能正确指出交谈双方的身份。

 

参考:RTP协议详解

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值