您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 实时传输协议及在无线流媒体业务中的应用
《电信交换》2009年第2期实时传输协议及在无线流媒体业务中的应用张瑞丹(电信科学技术第十研究所陕西西安710061)摘要:分析了实时传输协议(RTP)和实时传输控制协议(RTCP)的基本概念、协议结构和工作机制,介绍了适用于无线流媒体通信的音视频编码标准,结合RTP协议的适用性,讨论了RTP在无线流媒体业务中的应用。关键词:实时传输协议流媒体编码第三代移动通信网络引入了具有先天技术优势的CDMA无线接入技术,具备高速数据传送能力。无线运营商可以随时、随地地为移动用户提供宽带数据的发送、接收应用业务。这些应用业务包括视频、视讯会议、高保真音频及互联网接入等服务,其中的许多服务都是基于无线实时流媒体通信技术之上。传统的TCP是面向连接的协议,它的重传机制和拥塞控制机制不适合用于实时媒体流的传输。实时传输协议(RTPRealtimeTransportProtocol)是一个应用型的传输层协议,它作为多媒体应用的核心协议,受到越来越多的重视,被广泛应用于流媒体传输业务中。一、实时传输协议:RTP是针对多媒体数据流的一个传输协议,由IETF(Internet工程任务组)作为RFC1889发布,它被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步;它的典型应用是建立在UDP之上,但也可以在TCP或ATM等其他协议之上工作;它本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠实时传输控制协议(RTCPRealtimeTransportControlProtocol)提供这些服务,RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送数据包的数量、丢失数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送实时数据。1.RTP协议结构RTP数据帧由RTP头和不定长的连续媒体数据组成,其中固定的RTP头为12字节,媒体数据可以是编码数据。RTP头结构如图1所示,各段含义如下:图1RTP数据帧结构(1)V:版本;2比特。定义RTP的版本(当前版本是2,版本1用于RTP草案)。(2)P:间隙(Padding);1比特。设置时,数据包包含一个或多个附加间隙位组,这部分不属于有效载荷。如果补齐位被设置成1,一个或多个附加的字节会加在包头的最后,附加张瑞丹:实时传输协议及在无线流媒体业务中的应用2的最后一个字节放置附加的字节数。补齐是一些加密算法所必需的,在下层网络数据包携带多个RTP包时也需要补齐。(3)X:扩展位;1比。如果被设置成1,一个头部扩展域会加在RTP包头后。(4)CSRCCount:包含CSRC标识符(在固定头后)的编号,4比特。定义了本头部包含的CSRC源数目。(5)M:标记;1比特。其解释由具体应用所定义,可不定义标记字段,也可以定义多个标记字段。(6)payloadtype:载荷类型;7比特。记录后面资料使用哪种编码方式,接收端找出相应的解码器解码出来。(7)sequencenumber:序列号;16比特。每发送一个RTP数据包,序列号增加1。接收端可以依次检测数据包的丢失,并恢复数据包序列。序列号的初始值是随机的(不可预料的),即使源的本身没有被加密,但包流通过translator后就被加密了。不可预料的序列号初始值使对加密的攻击变得更加困难。(8)timestamp:时标;32比特。记录RTP包中数据开始产生的时钟时间,采样时间必须通过时钟及时提供线性无变化增量获取,以支持同步和抖动计算。时标可以让接收端知道在正确的时间将资料播放出来。时钟频率和数据格式有关,不能使用系统时钟。对固定速率的音频来说,每次取样时戳、时钟增1,与包序号一样,时戳的开始值也是随机的。如果多个连续的RTP包在逻辑上是同时产生的,那么它们就具有相同的时戳。(9)SSRC:同步源;32比特。该标识符随机选择,旨在确保在同一个RTP会话中不存在两个同步源具有相同的SSRC标识符。(10)CSRC:作用源标识符;0到15段,每段32比特。CSRC列表表示包内对载荷起作用的源,标识数量由CC段给出,如果超出15个作用源,也只标识15个。CSRC标识由混合器插入,采用作用源的SSRC标识。2.RTP工作机制威胁流媒体数据传输的一个尖锐问题就是不可预料数据到达的时间。但是,流媒体的传输是需要数据的适时到达用以播放和回放。RTP协议提供了时间标签、序列号以及其它的结构用于控制适时数据的流放。在流的概念中,“时间标签”是最重要的信息,发送端依照即时采样,在数据包里隐蔽地设置了时间标签;当接受端收到数据包后,就依照时间标签并按照正确的速率恢复成原始的、适时的数据。不同的流媒体格式调时属性是不一样的,但是,RTP本身并不负责同步,它只是传输层协议。为了简化传输层处理,提高该层的效率,将部分传输层协议功能(比如流量控制)上移到应用层来完成。同步就属于应用层协议完成的,应用层没有传输层协议的完整功能,不提供任何机制来保证实时地传输数据,不支持资源预留,也不保证服务质量,RTP报文甚至不包括长度和报文边界的描述,而且其协议的数据报文和控制报文使用相邻的不同端口,这就大大提高了协议的灵活性和处理的简单性。RTP协议和UDP协议共同完成传输层协议的功能。UDP协议只传输数据包,不管数据包传输的时间顺序,它的多路复用使RTP协议利用它来支持显式的多点投递,可以满足多媒体会话的需求。RTP协议的数据单元是用UDP分组来承载的,在承载RTP数据包时,有时候一帧数据被分割成几个具有相同时间标签的包,由此可见时间标签并不是必须的。RTP协议虽然是传输层协议,但是它并没有作为OSI体系结构中单独的一层来实现,通常它只提供协议框架,并根据具体的应用来提供服务,开发者可以根据应用的具体要求对协议进行充分的扩展。二、无线流媒体编码及传输标准众所周知,电信系统之间的互操作性至关重要,而要保持这种互操作性的关键就是需要张瑞丹:实时传输协议及在无线流媒体业务中的应用3制定电信设备制造商、运营商在制造产品和提供服务的过程中必须遵守的开放标准。在提供无线流媒体方面,已经有数个音、视频压缩标准和基于包传输的标准得到较充分的发展。1.音频编码标准目前,在音频编码标准的制定上,无线多媒体标准组织将注意力集中到几个现存的蜂窝通信语音编码标准上,这些标准包括应用于GSM并得到3GPP支持的AMR(AdaptiveMulti-Rate)编码算法以及应用于CDMAOne得到3GPP2支持的EVRC(EnhancedVariableRateCoder)编码算法,这两种算法都具有良好的抗误码能力。MPEG-4音频包括如MPEG-4AAC(AdvancedAudioCoding)等音频编码标准,以支持宽带、可扩展音频通信。2.MPEG-4视频编码标准MPEG-4标准的制定始于1995年,于2000年初正式成为国际标准,是第一个基于音视频内容和对象的编码标准。它从音视频场景中,按照人的直观感受分为若干个音视频对象,并分别对这些对象进行形状、纹理和运动矢量等编码,而不是象传统编码方式那样基于像素进行编码。MPEG-4视频编码标准,作为MPEG-4标准的一部分,通常称为MPEG-4视频。它提供了大量视频编码工具,在不损失对端互操作性的前提下,MPEG-4定义了由对象类型、类及等级组成的分级策略。在无线应用环境下,最常用的是简单视频类和简单可扩展视频类,这两个类占用的运算资源及带宽较小,比较适合应用于目前的无线终端。简单视频类采用矩形I帧和P帧,具有基于运动补偿离散余弦变换(DCT)基本功能的编码处理,I帧为帧内编码,而P帧为帧间编码,这两类编码方式是为了降低冗余信息;简单视频类还具备可变比特率、压缩效率高和容错能力好等特性。简单可扩展视频类是在简单视频类的基础上,增加了对时域和空域可扩展对象的编码能力。3.第三代移动通信流媒体传输标准3G-324M作为3GPP提出的第三代移动通信流媒体传输标准,可确保有线视频传输系统与第三代移动视频传输系统之间的互操作性,它与ITU-TH.324中的视讯会议标准有较紧密的联系。3G-324M适用于UMTS移动网络中64kbit/s电路交换链路,其复用协议为H.223,控制协议为H.245,缺省视频编码器采用H.263及MPEG-4简单类第一级,缺省语音编码器则为GSM-AMR和G.723.1。3GPP2也将类似的标准集应用于3GPP2无线网络电路交换视频会议业务。3GPP采纳了基于IP协议的流媒体传输架构,该协议规定了控制信令、背景描述、媒体传输、媒体封装和动静态图像、语音、文本的编解码等标准,推荐了RTP/RTCP作为MPEG-4视音频流媒体网络传输协议。三、RTP协议在无线流媒体业务中的应用为使传输媒体信号时的时延最小,在UDP上利用RTP/RTCP对媒体流(音频、视频等)的封装、同步和控制流封装、控制信息的格式进行媒体流的打包与同步。发送端的媒体流使用通用标准进行编码,在音频、视频编码器输出的数据流经过成帧算法后,形成适合于RTP协议格式的封装,递交RTP分组处理模块,加上此协议的分组包头,根据当前的采样时钟打上时间戳、标记顺序号,给定帧频、分辨率和相应的载荷类型等参数,经多目地址传输来完成。接收端在实时数据到达后,去掉该层协议的头标,根据应用的端口号向上层递交。RTP分组模块处理递交的数据分组,根据其载荷类型和序列号进行鉴别,将有效的分组传递给相应的解码缓冲区,使用相应的解码器进行解码,实现数据流内部和数据流间的同步。一个RTP会话包括传给指定目的地的所有通信量,发送方可能包括多个。从同一个同步源张瑞丹:实时传输协议及在无线流媒体业务中的应用4发出的RTP分组序列称为流,一个RTP会话可能包含多个RTP流。一个RTP分组在服务器端发送出去的时候总是要指定属于哪个会话和流,在接收时也需要进行两级分用,即会话分用和流分用。只有当RTP使用同步源标识和分组类型把同一个流中的分组组合起来时,才能够使用序列号和时间戳对分组进行排序和正确回放。当音频与视频一起传输的时候,由于编码不同,RTP使用两个流分别进行传输,这就使两个流的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像一致。为能进行流同步,RTCP要求发送方给每个传送一个唯一的标识数据源的规范名(CanonicalName),尽管由一个数据源发出的不同的流具有不同的同步源标识(SSRC),但由于他们具有相同的规范名,这样接收方就知道哪些流是有关联的。而发送方报告所包含的信息可被接收方用于协调两个流中的时间戳值,报告中含有一个以网络时间协议NTP(NetworkTimeProtocol)格式表示的绝对时间值,接着RTCP报告中给出一个RTP时间戳值,产生该值的时钟就是产生RTP分组中的TimeStamp字段的那个时钟。由于发送方发出的所有流和发送方报告都使用同一个绝对时钟,接收方就可以比较来自同一数据源的两个流的绝对时间,从而确定如何将一个流中的时间戳值映射为另一个流中的时间戳值。四、结束语尽管RTP最初设计的目的是为了满足有多人参加视频会议的需要,但随着人们对它的不断深入研究,发现它在连续数据存储、交互分布式仿真等领域也有着良好的表现。可以预见,在未来移动通信网络中,各类高速实时流媒体业务的应用前景将十分广阔,RTP必将成为应用的主流协议得到更广泛的应用。参考文献[1]吴国勇,万燕仔.流媒体技术与应用[M].北京:北京邮电大学出版社,2001.[2]H.Schulzrinne,GMDFokus,S.Casner,etc.RTP:ATransportProtocolforReal-TimeApplications,RFC1889,January1996.[3]H.Schulzrinne,GMDFokus,RTPProfileforAudioandVideoCo
本文标题:实时传输协议及在无线流媒体业务中的应用
链接地址:https://www.777doc.com/doc-1640115 .html