RTP协议解析

1、协议简介

RTP是针对Internet上多媒体数据流的一个传输协议。可以实现一对一或一对多的传输情况。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。

  RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制。

2、工作机制

多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。但是流媒体的传输是需要数据的适时的到达用以播放和回放。

  rtp协议就是提供了时间标签,序列号以及其它的结构用于控制适时数据流的播放。发送端依照即时的采样在数据包里设置了时间标签。在接受端收到数据包后,就依照时间标签按照正确的速率恢复成原始的适时的数据。

   在rtp协议中,一帧数据被分割成几个包,这几个包具有相同的时间标签,但是每一个包又具有不同的序号

3、协议头

RTP协议解析_第1张图片

①版本(V)

      2位,标识RTP版本。

②填充标识(P)

      1位,如设置填充位,在包尾将包含附加填充字,它不属于有效载荷。填充的最后一个字节指明可以忽略多少个填充比特。填充可能用于某些具有固定长度的加密算法

③扩展(X)

      1位,如设置扩展位,固定头后跟一个头扩展。

④CSRC计数(CC)

      4位,CSRC计数包括紧接在固定头后CSRC标识符个数。

⑤标记(M)

      1位,标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如 帧边界

⑥载荷类型(PT)

      7位,记录后面资料使用哪种编码,接收端找出相应的 decoder 解码出来。H264的为96

⑦系列号

      16位,系列号随每个RTP数据包而增加1,由接收者用来探测包损失。系列号初值是随机的。

⑧时标

      32位,时标反映RTP数据包中第一个八进制数的采样时刻,采样时刻必须从单调、线性增加的时钟导出,以允许同步与抖动计算。时标可以让receiver端知道在正确的时间将资料播放出来。

      只有系列号而没有时标,并不能完整按照顺序的将data播放出来,因为如果data中间有一段是没有资料的,只有系列号的话会造成错误.一般rtp头以0x80 60开头


H264 over RTP基本上分三种类型:

1.Single NAL unitpacket 也就是实际的NAL类型,可以理解为一个包就是一帧H264数据,这个在实际中是比较多的。

2. Aggregation packet 一包数据中含有多个H264帧。

3. Fragmentationunit  一帧数据被分为多个RTP包,这也是很常见的,特别是对于关键帧。





你可能感兴趣的:(工作,加密,算法,tcp,扩展,internet)