H.264/ACC音视频编码流的RTP/RTSP传输实现(3)

http://blog.csdn.net/kzq_qmi/article/details/46381645

实时传输协议RTP 
  RTP(Real-time Transport Protocol)[[[] H S, CASNER S, FREDERICK R.RTP: A Transport Protocol for Rea-l Time Applications[J]. 2003]]是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频数据。 
  RTP 协议用于实时多媒体数据的传输时,具有如下的特点: 
  1)RTP协议传输与控制分开,没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。 
  2)满足流媒体传输的实时性要求 
  3)支持多个参与者和流同步 
  4)RTP 协议与下层协议无关,可以在TCP、UDP等上实现。 
  5)实时加密功能,可保证数据的安全性 
  6)…… 
  RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,RTCP可以升级到大型的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。RTP和RTCP和下面的传输层和网络层无关。 
RTP数据包由RTP包头和不定长的连续媒体数据载荷组成,RTP数据包的格式如表3-1所示: 
 
  版本(V):2比特,此域定义了RTP的版本。此协议定义的版本是2。 
  填充(P):1比特,若此比特被设置,则此包包含一到多个附加在末端的填充比特,填充比特不算作负载的一部分。填充的最后一个字节指明可以忽略多少个填充比特。 
  扩展(X):1比特,若设置扩展比特,固定头后面跟随一个头扩展。 
  CSRC计数(CC):4比特,CSRC计数包含了跟在固定头后面CSRC识别符的数目。 
  标志(M):1比特 标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如帧边界。 
  负载类型(PT):7比特,此域定义了负载的格式,由具体应用决定其解释。协议可以规定负载类型码和负载格式之间一个默认的匹配。其他的负载类型码可以通过非RTP方法动态定义。RTP发送端在任意给定时间发出一个单独的RTP负载类型;此域不用来复用不同的媒体流。 
  序列号(sequence number):16比特,每发送一个RTP数据包,序列号加1,接收端可以据此检测丢包和重建包序列。序列号的初始值是随机的(不可预测), 一是使用随机的序列号可以避免重放,当某次会话的分组在网络上延时以后,却被稍后的另一次会话所接受,就会遇到重放的问题;另一个原因是可以以对数据进行加密,从而提高安全性。 
  时间戳(timestamp):32比特,时间戳反映了RTP数据包中第一个字节的采样时间。时钟频率依赖于负载数据格式,并在描述文件(profile)中进行描述。也可以通过RTP方法对负载格式动态描述。不同媒体流的RTP时间戳可能以不同的速率增长。而且会有独立的随机偏移量。可以通过时间戳对不同媒体流进行同步。同序列号一样,RFC3550推荐,对于一次会话的初始时间戳进行随机选择。 
  SSRC:32比特,用以识别同步源。标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。 
  CSRC列表:0到15项,每项32比特,CSRC列表识别在此包中负载的所有贡献源。此字段对于RTP数据包携带多个数据源信息时非常有用,如携带多个源的混音数据时,将各个源的SSRC列在CSRC列表中,以便接收端辨别。

实时传输控制协议RTCP 
  RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP)8来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,该协议(RTCP)可以升级到大型的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。 
  RTCP协议作为RTP的补充控制协议提供了以下功能: 
  1)提供数据传输质量的反馈。这是RTP作为一种传输协议的主要作用,它与其他协议的流量和拥塞控制相关。 
  2)RTCP为每个RTP源传输一个固定的识别符,称为规范名(CNAME)。接收者用CNAME来关联一系列相关RTP会话中来自同一个成员的多个数据流,例如同步语音和图像。 
  3)通过让每个成员向所有成员发送控制包,各个成员都可以独立地观察会议中所有成员的数目。此数目可以用来估计发包速率。 
  4) 第四个可选的功能是传输最少的会议控制信息,例如在用户接口中显示参与的成员。 
RFC3550中共定义了五种RTCP的分组类型,如下所示: 
  ○SR:发送者报告,描述作为活跃发送者成员的发送和接收统计数字。 
  ○RR:接收者报告,描述非活跃发送者成员的接收统计数字。 
  ○SDES:源描述项,其中包括规范名CNAME。 
  ○BYE:表明参与者将结束会话。 
  ○APP:应用描述功能。 
  下面以RR包、报文和SR报文为例,介绍RTCP包的包格式。RR包主要由RTCP包固定头部分和报告块组成,RR包报文分组如表3-2。 
 
  RR包的大小取决于源的多少,其中主要的字段含义如下: 
  版本(V):2bit,RTP版本识别符,此协议中定义的版本号为2。 
  填充(P):1bit,若设置填充比特,该RTCP包在末端包含一些附加填充比特。 
  接收报告块计数(RC):5bit,该包中所含接收报告块的数目,零值有效。 
  包类型(PT):8bit, 201时为RR包。 
  长度:16bit,该RTCP包的长度减1。其单位是32比特字,包括头和任何填充字节。 
  SSRC:32bit,发送者的同步源标识符。 
  SSRC_n(同步源标识符):32bit,在此接收报告块中信息所属源的SSRC标识符。 
  丢包率:8bit,自从前一SR包或RR包发送以来,从SSRC_n传来的RTP数据包的丢失比例。 
  累计分组丢失数:24bit,从开始接收到现在,从源SSRC_n发到本源的RTP数据包的丢包总数。 
  接收到的扩展的最高序列号:32bit,低16bit包含从源SSRC_n来的最高接收序列号,高16bit用相应的序列号周期计数器扩展该序列号。 
  LRR:从该源接收到上一个RR包的时间。 
  DLRR:从上一个RR包接收时间到该RTCP包发送的时间间隔。

  发送报告SR包与RR包类似,只比RR包多了一个“发送者信息”部分,该部分包含了发送端所要传输的信息,其中主要包括以下几个字段: 
  1)NTP时间戳(NTP timestamp):包含该RTCP包NTP格式的发送时间。 
  2)RTP时间戳(RTP timestamp):与NTP时间相对应,为该RTCP包发送时的RTP时间戳。 
  3)发送包计数(sender’s packet count):包含RTP传输开始到发送此RTCP包为止,发送端总共发出的RTP包数量。 
  4)发送字节计数(sender’s byte count):包含RTP传输开始到发送此RTCP包为止,发送端总共发出的RTP包字节数。当发送端的SSRC改变时,此项将被清零。该项常常被用于估计实际数据传输率。

0
0
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值