本文主要介绍RTP与RTCP协议。
author: ZJ 06-11-17
1威胁多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。但是流媒体的传输是需要数据的适时的到达用以播放和回放。rtp时间标签”本身并不负责同步,rtp协议的数据报文和控制报文的使用相邻的不同端口,这样大大提高了协议的灵活性和处理的简单性。
rtp协议只是传输数据包,不管数据包传输的时间顺序。 rtp数据包的时候,有时候一帧数据被分割成几个包具有相同的时间标签,则可以知道时间标签并不是必须的。而udp协议虽然是传输层协议但是它没有作为osi只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。
2.2 RTP报文结构
RTP头格式如图2所示:
![](https://i-blog.csdnimg.cn/blog_migrate/c448ea105eb24802292f2444ac19faad.jpeg)
开始12个八进制出现在每个RTP包中,而CSRC标识列表仅出现在混合器插入时。各段含义如下:
①版本(V)
2位,标识RTP版本。
②填充标识(P)
1位,如设置填充位,在包尾将包含附加填充字,它不属于有效载荷。填充的最后一个八进制包含应该忽略的八进制计数。某些加密算法需要固定大小的填充字,或为在底层协议数据单元中携带几个RTP包。
③扩展(X)
1位,如设置扩展位,固定头后跟一个头扩展。
④CSRC计数(CC)
4位,CSRC计数包括紧接在固定头后CSRC标识符个数。
⑤标记(M)
1位,标记解释由设置定义,目的在于允许重要事件在包流中标记出来。设置可定义其他标示位,或通过改变位数量来指定没有标记位。
⑥载荷类型(PT)
7位,记录后面资料使用哪种 Codec , receiver 端找出相应的 decoder 解碼出來。
常用 types:
Payload Type
|
Codec
|
0
|
PCM μ -Law
|
8
|
PCM-A Law
|
9
|
G..722 audio codec
|
4
|
G..723 audio codec
|
15
|
G..728 audio codec
|
18
|
G..729 audio codec
|
34
|
G..763 audio codec
|
31
|
G..761 audio codec
|
⑦系列号
16位,系列号随每个RTP数据包而增加1,由接收者用来探测包损失。系列号初值是随机的,使对加密的文本攻击更加困难。
⑧时标
32端知道在正确的时间将资料播放出来。
由上图可知,如果只有系列号,并不能完整按照顺序的将data正确播放出来,如此我们才能播放出正确无误的信息。
⑨SSRC
32位,SSRC段标识同步源。此标识不是随机选择的,目的在于使同一RTP包连接中没有两个同步源有相同的SSRC标识。尽管多个源选择同一个标识的概率很低,所有RTP实现都必须探测并解决冲突。如源改变源传输地址,也必须选择一个新SSRC标识以避免插入成环行源。
⑩CSRC列表
0到15项,每项32位。CSRC列表表示包内的对载荷起作用的源。标识数量由CC段给出。如超出15个作用源,也仅标识15个。CSRC标识由混合器插入,采用作用源的SSRC标识。
3.实时传输控制协议RTCP(Real-Time Transport Control Protocol)
RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。
3.1 RTCP工作机制
,一个给rtcp提供这些服务。在rtp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp资源预订协议RSVP (Resorce Reservation Protocol)
上的资源预订协议,使用RSVP,能在一定程度上为流媒体的传输提供QoS
[2]台湾国立中央大学电机工程系通讯专题报告VOIP
本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/25481