RTP协议

 RTP协议  
  RTP
协议    
 
实时传输协议RTP提供了实时信息的端对端传输业务,如交互的语音和图象;这些业务包括负载类型识别,序列编号,加入时间标志,传输监视.典型的应用是在UDP层上传输RTP,以利用它的复用和总和检测业务.    
  RTP
包括两个紧密相关的部分:    
  -  
实时传输协议(RTP),传输有实时特性的信息;    
  -   RTP
控制协议(RTCP),监视业务质量和传输对话中成员的信息.    
  RTP
包头    
  RTP
头有以下格式:    
  0   1   2   3    
  0   1   23   4   5   6   7   89   0   1   2   3   45   6   7   8   90   1   2   34   5   6   7   8   9   0   1    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |V=2|P|X|   CC   |M|   PT   |  
序列号   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |  
时间标志   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |  
同步源(SSRC)识别符   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |  
有贡献源(CSRC)识别符   |    
  |   ...   ...   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  RTP
包头格式    
 
12个字节出现在每个RTP包中,仅仅在被混合器插入时,才出现CSRC识别符列表.这些域有以下意义:    
 
版本(V):2比特   此域定义了RTP的版本.此协议定义的版本是2.(1RTP草案版本使用,0用在最初"vat"语音工具使用的协议中.)    
 
填料(P):1比特   若填料比特被设置,此包包含一到多个附加在末端的填充比特,不是负载的一部分.填料的最后一个字节包含可以忽略多少个填充比特.填料可能用于某些具有固定长度的加密算法,或者在底层数据单元中传输多个RTP.    
 
扩展(X):1比特   若设置扩展比特,固定头()后面跟随一个头扩展.    
  CSRC
计数(CC):4比特   CSRC计数包含了跟在固定头后面CSRC识别符的数目.    
 
标志(M):1比特   标志的解释由具体协议规定.它用来允许在比特流中标记重要的事件,如帧范围.规定该标志在静音后的第一个语音包时置位.    
 
负载类型(PT):7比特   此域定义了负载的格式,由具体应用决定其解释.协议可以规定负载类型码和负载格式之间一个默认的匹配.其他的负载类型码可以通过非RTP方法动态定义.RTP发射机在任意给定时间发出一个单独的RTP负载类型;此域不用来复用不同的媒体流.    
 
序列号:16比特   每发送一个RTP数据包,序列号加一,接收机可以据此检测包损和重建包序列.序列号的初始值是随机的(不可预测),以使即便在源本身不加密时(有时包要通过翻译器,它会这样做),对加密算法泛知的普通文本攻击也会更加困难.    
 
时间标志:32比特   时间标志反映了RTP数据包中第一个比特的抽样瞬间.抽样瞬间必须由随时间单调和线形增长的时钟得到,以进行同步和抖动计算.时钟的分辨率必须满足要求的同步准确度,足以进行包到达抖动测量.时钟频率与作为负载传输的数据格式独立,在协议中或定义此格式的负载类型说明中静态定义,也可以在通过非RTP方法定义的负载格式中动态说明.RTP包周期性生成,可以使用由抽样时钟确定的额定抽样瞬间,而不是读系统时钟.例如,对于固定速率语音,时间标志钟可以每个抽样周期加1.若语音设备从输入设备读取覆盖160个抽样周期的数据块,对于每个这样的数据块,时间标志增加160,无论此块被发送还是被静音压缩.    
 
时间标志的起始值是随机的,如同序列号.多个连续的RTP包可能由同样的时间标志,若他们在逻辑上同时产生.如属于同一个图象帧.若数据没有按照抽样的    
 
顺序发送,连续的RTP包可以包含不单调的时间标志,MPEG交织图象帧.    
  SSRC:32
比特   SSRC域用以识别同步源.标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符.尽管多个源选择同一个SSRC识别符的概率很低,所有RTP实现工具都必须准备检测和解决冲突.若一个源改变本身的源传输地址,必须选择新的SSRC识别符,以避免被当作一个环路源.    
  CSRC
列表:015,每项32比特   CSRC列表识别在此包中负载的有贡献源.识别符的数目在CC域中给定.若有贡献源多于15,仅识别15.CSRC识别符由混合器插入,用有贡献源的SSRC识别符.例如语音包,混合产生新包的所有源的SSRC标识符都被陈列,以期在接收机处正确指示交谈者.    
  RTP
头扩展    
  RTP
提供扩展机制以允许实现个性化:某些新的与负载格式独立的功能要求的附加信息在RTP数据数据包头中传输.设计此方法可以使其它没有扩展的交互运行忽略此头扩展.RTP头扩展的格式如下图所示.    
  0   1   2   3    
  0   1   2   34   5   6   78   9   0   1   2   3   4   56   7   8   90   1   23   4   5   6   7   8   9   0   1    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |  
由协议定义   |   长度   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
  |  
头扩展   |    
  |   ...   ...   |    
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
 
RTP头中的扩展比特位置1,则一个长度可变的头扩展部分被加到RTP固定头之后,.头扩展包含16比特的长度域,指示扩展项中32比特字的个数,不包括4个字节扩展头(因此零是有效值).RTP固定头之后只允许有一个头扩展.为允许多个互操作实现独立生成不同的头扩展,或某种特定实现有多种不同的头扩展,扩展项的前16比特用以识别标识符或参数.16比特的格式由具体实现的上层协议定义.基本的RTP说明并不定义任何头扩展本身.     
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值