RTP与RTCP协议介绍

本文主要介绍RTPRTCP协议。
author: ZJ    06-11-17
 
1流媒体( Streaming Media)
1.1流媒体概念
流媒体技术是网络技术和多媒体技术发展到必定阶段的产物。术语流媒体既能够指在网上传输连续时基媒体的流式技术,也能够指使用流式技术的连续时基媒体自己。在网上传输音频、视频等多媒体信息目前主要有两种方式:下载和流式传输。采用下载方式,用户须要先下载整个媒体文件,而后才能进行播放。因为网络带宽的限制,下载经常要花很长时间,因此这种处理方式延迟很大。而流媒体实现的关键技术是流式传输。传输以前首先对多媒体进行预处理(下降质量和高效压缩) ,而后使用缓存系统来保证数据连续正确地进行传输。使用流式传输方式,用户没必要像采用下载方式那样要等到整个文件所有下载完毕,而是只需通过几秒到几十秒的启动延时便可在客户端进行播放和观看。此时媒体文件的剩余部分将在后台继续下载。与单纯的下载方式相比,这种对多媒体文件边下载边播放的流式传输方式不只使启动延时大幅度地缩短,并且对系统缓存容量的需求也大大下降。使用流式传输的另外一个好处是使传输那些事先不知道或没法知道大小的媒体数据(如网上直播、视频会议等) 成为可能。
到目前为止,Internet 上使用较多的流式视频格式主要有如下三种:RealNetworks 公司的RealMedia ,Apple 公司的QuickTime 以及Microsoft 公司的Advanced Streaming Format (ASF)
 
1.2支持流媒体的协议
多媒体应用的一个显著特色是数据量大,而且许多应用对实时性要求比较高。传统的TCP 协议是一个面向链接的协议,它的重传机制和拥塞控制机制都是不适用于实时多媒体传输的。RTP 是一个应用型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。RTP 位于UDP(User Datagram Protocol) 之上。UDP 虽然没有TCP 那么可靠,而且没法保证明时业务的服务质量,须要RTCP 实时监控数据传输和服务质量。可是,因为UDP 的传输时延低于TCP ,能与音频和视频很好地配合。所以,在实际应用中,RTP/ RTCP/ UDP 用于音频/ 视频媒体,TCP 用于数据和控制信令的传输。目前,支持流媒体传输的协议主要有实时传输协议RTP( Real-Time Transport Protocol) 、实时传输控制协议RTCP(Real-Time Transport Control Protocol) 和实时流协议RTSP(Real-Time Streaming Protocol) 等。下面分别对这三种协议做简要介绍。流媒体协议栈如图1 所示。
1 流媒体协议栈
 
2实时传输协议RTPReal-Time Transport Protocol):
RTP是针对Internet上多媒体数据流的一个传输协议, IETF(Internet工程任务组)做为RFC1889发布。RTP被定义为在一对一或一对多的传输状况下工做,其目的是提供时间信息和实现流同步。RTP的典型应用创建在UDP上,但也能够在TCPATM等其余协议之上工做。RTP自己只保证明时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
 
2.1 RTP工做机制
威胁多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。可是流媒体的传输是须要数据的适时的到达用以播放和回放。rtp协议就是提供了时间标签,序列号以及其它的结构用于控制适时数据的流放。在流的概念中时间标签是最重要的信息。发送端依照即时的采样在数据包里隐蔽的设置了时间标签。在接受端收到数据包后,就依照时间标签按照正确的速率恢复成原始的适时的数据。不一样的媒体格式调时属性是不同的。可是rtp自己并不负责同步,rtp只是传输层协议,为了简化运输层处理,提升该层的效率。将部分运输层协议功能(好比流量控制)上移到应用层完成。同步就是属于应用层协议完成的。它没有运输层协议的完整功能,不提供任何机制来保证明时地传输数据,不支持资源预留,也不保证服务质量。rtp报文甚至不包括长度和报文边界的描述。同时rtp协议的数据报文和控制报文的使用相邻的不一样端口,这样大大提升了协议的灵活性和处理的简单性。
rtp协议和udp两者共同完成运输层协议功能。udp协议只是传输数据包,无论数据包传输的时间顺序。 rtp的协议数据单元是用udp分组来承载的。在承载rtp数据包的时候,有时候一帧数据被分割成几个包具备相同的时间标签,则能够知道时间标签并非必须的。而udp的多路复用让rtp协议利用支持显式的多点投递,能够知足多媒体会话的需求。
rtp协议虽然是传输层协议可是它没有做为osi体系结构中单独的一层来实现。rtp协议一般根据一个具体的应用来提供服务,rtp只提供协议框架,开发者能够根据应用的具体要求对协议进行充分的扩展。
 
2.2  RTP协议的报文结构
RTP头格式如图2所示:
开始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位,时标反映RTP数据包中第一个八进制数的采样时刻,采样时刻必须从单调、线性增长的时钟导出,以容许同步与抖动计算。时标可让receiver端知道在正确的时间将资料播放出来。
由上图可知,若是只有系列号,并不能完整按照顺序的将data播放出来,由于若是data中间有一段是没有资料的,只有系列号的话会形成错误,需搭配上让它知道在哪一个时间将data正确播放出来,如此咱们才能播放出正确无误的信息。
 
×××C
32位,×××C段标识同步源。此标识不是随机选择的,目的在于使同一RTP包链接中没有两个同步源有相同的×××C标识。尽管多个源选择同一个标识的几率很低,全部RTP实现都必须探测并解决冲突。如源改变源传输地址,也必须选择一个新×××C标识以免插入成环行源。
 
CSRC列表
015项,每项32位。CSRC列表表示包内的对载荷起做用的源。标识数量由CC段给出。如超出15个做用源,也仅标识15个。CSRC标识由混合器插入,采用做用源的×××C标识。
 
3.实时传输控制协议RTCP(Real-Time Transport Control Protocol)
RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。所以,服务器能够利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTPRTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。
 
3.1 RTCP工做机制
当应用程序开始一个rtp会话时将使用两个端口:一个给rtp,一个给rtcprtp自己并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠rtcp提供这些服务。在rtp的会话之间周期的发放一些rtcp包以用来传监听服务质量和交换会话用户信息等功能。rtcp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。所以,服务器能够利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtprtcp配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,于是特别适合传送网上的实时数据。根据用户间的数据传输反馈信息,能够制定流量控制的策略,而会话用户信息的交互,能够制定会话控制的策略。
 
3.2 RTCP数据报
RTCP通讯控制中,RTCP协议的功能是经过不一样的RTCP数据报来实现的,主要有以下几种类型:
SR:发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也能够是接收端。
RR:接收端报告,所谓接收端是指仅接收但不发送RTP数据报的应用程序或者终端。
SDES:源描述,主要功能是做为会话成员有关标识信息的载体,如用户名、邮件地址、电话号码等,此外还具备向会话成员传达会话控制信息的功能。
BYE:通知离开,主要功能是指示某一个或者几个源再也不有效,即通知会话中的其余成员本身将退出会话。
APP:由应用程序本身定义,解决了RTCP的扩展性问题,而且为协议的实现者提供了很大的灵活性。
 
4资源预订协议RSVP (Resorce Reservation Protocol)
因为音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求以外,还需其余更多的条件。RSVPInternet上的资源预订协议,使用RSVP预留部分网络资源(即带宽),能在必定程度上为流媒体的传输提供QoS
 
5.参考资料
[1]蒋爱权,流媒体技术的Java实现,计算机应用研究200210
[2]吴国勇,网络视频流媒体技术与应用,北京邮电大学出版社,2001
[3]台湾国立中央大学电机工程系通信专题报告VOIP
相关文章
相关标签/搜索