实时传输协议RTP和实时控制协议RTCPWord格式文档下载.docx
《实时传输协议RTP和实时控制协议RTCPWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《实时传输协议RTP和实时控制协议RTCPWord格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
图16-13RTP和UDP之间的接口
现以用RTP传输声音为例来说明它的工作过程。
假设音源的声音是64kb/s的PCM编码声音,并假设应用程序取20毫秒的编码数据为一个数据块(chunk),即在一个数据块中有160个字节的声音数据。
应用程序需要为这块声音数据添加RTP标题生成RTP信息包,这个标题包括声音数据的类型、顺序号和时间戳。
然后RTP信息包被送到UDP套接接口,在那里再被封装在UDP信息包中。
在接收端,应用程序从套接接口处接收RTP信息包,并从RTP信息包中抽出声音数据块,然后使用RTP信息包的标题域中的信息正确地译码和播放声音。
如果应用程序不使用专有的方案来提供有效载荷类型(payloadtype)、顺序号或者时间戳,而是使用标准的RTP协议,应用程序就更容易与其他的网络应用程序配合运行,这是大家都希望的事情。
例如,如果有两个不同的公司都在开发因特网电话软件,他们都把RTP合并到他们的产品中,这样就有希望:
使用不同公司电话软件的用户之间能够进行通信。
这里需要强调的是,RTP本身不提供任何机制来确保把数据及时递送到接收端或者确保其他的服务质量,它也不担保在递送过程中不丢失信息包或者防止信息包的次序不被打乱。
的确,RTP的封装只是在系统端才能看到,中间的路由器并不区分那个IP数据报是运载RTP信息包的。
RTP允许给每个媒体源分配一个单独的RTP信息包流,例如,摄像机或者麦克风。
例如,有两个团体参与的电视会议,这就可能打开4个信息包流:
两台摄像机传送电视流和两个麦克风传送声音流。
然而,许多流行的编码技术,包括MPEG-1和MPEG-2在编码过程中都把声音和电视图像捆绑在一起以形成单一的数据流,一个方向就生成一个RTP信息包流。
RTP信息包没有被限制只可应用于单目标广播,它们也可以在一对多(one-to-many)的多目标广播树或者在多对多(many-to-many)的多目标广播树上传送。
例如,多对多的多目标广播,在这种应用场合下,所有发送端通常都把他们的RTP信息包流发送到具有相同多目标广播地址的多目标广播树上。
16.6.2RTP信息包标题域
RTP标题由4个信息包标题域和其他域组成:
有效载荷类型(payloadtype)域,顺序号(sequencenumber)域,时间戳(timestamp)域和同步源标识符(SynchronizationSourceIdentifier)域等。
RTP信息包的标题域的结构如下图所示:
Payload
Type
(有效载荷类型)
SequenceNumber
(顺序号)
Timestamp
(时间戳)
SynchronizationSourceIdentifier
(同步源标识符)
MiscellaneousFields
(其他)
1.有效载荷类型
RTP信息包中的有效载荷域(PayloadTypeField)的长度为7位,因此RTP可支持128种不同的有效载荷类型。
对于声音流,这个域用来指示声音使用的编码类型,例如PCM、自适应增量调制或线性预测编码等等。
如果发送端在会话或者广播的中途决定改变编码方法,发送端可通过这个域来通知接收端。
表16-01列出了目前RTP所能支持的声音有效载荷类型。
表16-01目前RTP所能支持的声音有效载荷类型
有效载荷号
声音类型
采样率(kHz)
数据率(kb/s)
PCMmu-law
8
64
1
1016
4.8
2
G.721
32
3
GSM
6
DVI
16
7
LPC
2.4
9
G.722
48~64
14
MPEGAudio
90
-
15
G.728
对电视流,有效载荷类型可以用来指示电视编码的类型,例如motionJPEG,MPEG-1,MPEG-2或者H.231等等。
发送端也可以在会话或者期间随时改变电视的编码方法。
表16-02列出了目前RTP所能支持的某些电视有效载荷类型。
表16-02目前RTP所能支持的声音有效载荷类型
电视格式
26
MotionJPEG
28
31
H.261
MPEG-1video
33
MPEG-2video
2.顺序号
顺序号(SequenceNumberField)域的长度为16位。
每发送一个RTP信息包顺序号就加1,接收端可以用它来检查信息包是否有丢失以及按顺序号处理信息包。
例如,接收端的应用程序接收到一个RTP信息包流,这个RTP信息包在顺序号86和89之间有一个间隔,接收端就知道信息包87和88已经丢失,并且采取措施来处理丢失的数据。
3.时间戳
时间戳(Timestamp)域的长度为32字节。
它反映RTP数据信息包中第一个字节的采样时刻(时间)。
接收端可以利用这个时间戳来去除由网络引起的信息包的抖动,并且在接收端为播放提供同步功能。
4.同步源标识符
同步源标识符(SynchronizationSourceIdentifier,SSRC)域的长度为32位。
它用来标识RTP信息包流的起源,在RTP会话或者期间的每个信息包流都有一个清楚的SSRC。
SSRC不是发送端的IP地址,而是在新的信息包流开始时源端随机分配的一个号码。
16.6.3实时传输控制协议
实时传输控制协议(Real-timeControlProtocol,RTCP)也定义在1996年提出的RFC1889中。
多媒体网络应用把RTCP和RTP一起使用,尤其是在多目标广播中更具吸引力。
当从一个或者多个发送端向多个接收端广播声音或者电视时,也就是在RTP会话期间,每个参与者周期性地向所有其他参与者发送RTCP控制信息包,如图16-14所示。
RTCP用来监视服务质量和传送有关与会者的信息。
对于RTP会话或者广播,通常使用单个多目标广播地址,属于这个会话的所有RTP和RTCP信息包都使用这个多目标广播地址,通过使用不同的端口号可把RTP信息包和RTCP信息包区分开来。
图16-14每个参与者周期性地发送RTCP控制信息包
RTCP的主要功能是为应用程序提供会话质量或者广播性能质量的信息。
每个RTCP信息包不封装声音数据或者电视数据,而是封装发送端和/或者接收端的统计报表。
这些信息包括发送的信息包数目、丢失的信息包数目和信息包的抖动等情况,这些反馈信息对发送端、接收端或者网络管理员都是很有用的。
RTCP规格没有指定应用程序应该使用这个反馈信息做什么,这完全取决于应用程序开发人员。
例如,发送端可以根据反馈信息来修改传输速率,接收端可以根据反馈信息判断问题是本地的、区域性的还是全球性的,网络管理员也可以使用RTCP信息包中的信息来评估网络用于多目标广播的性能。
16.6.4实时流放协议
实时流放协议(Real-TimeStreamingProtocol,RTSP)是一个刚开始开发的协议,它的设想描述在RFC
播放的数据流被分成许多信息包,信息包的大小很适用于客户机和服务器之间的带宽。
当客户机已经接收到足够多的信息包之后,用户软件就可开始播放一个信息包,同时对另一个信息包解压缩和接收第三个信息包。
这样用户就不需要把整个媒体文件从服务器上下载之后就可立即播放。
广播源可以是现场的数据流也可以是存储的数据流。
RTSP协议想要提供控制多种应用数据传送的功能,提供一种选择传送通道的方法,例如UDP,TCP,IP多目标广播通道,以及提供一种基于RTP协议的递送方法。
正在设计的RTSP将工作在RTP的上层,用来控制和传送实时的内容。
RTSP能够与资源保留协议一起使用,用来设置和管理保留带宽的流式会话或者广播。
2326文件中。
RTSP是应用级的实时流放协议,它主要目标是为单目标广播和多目标广播上的流式多媒体应用提供牢靠的播放性能,以及支持不同厂家提供的客户机和服务机之间的协同工作能力。
实时传输协议详解[转帖]
实时传输协议RTP
1.RTP协议:
RTP(Real-timeTransportProtocol)协议最初是在70年代为了尝试传输声音文件,把包分成几部分用来传输语音,时间标志和队列号。
经过一系列发展,RTP第一版本在1991年8月由美国的一个实验室发布了。
到本世纪1996年形成了标准的的版本。
很多著名的公司如Netscape,就宣称“NetscapeLiveMedia”是基于RTP协议的。
.Microsoft也宣称他们的“NetMeeting”也是支持RTP协议.
RTP被定义为传输音频、视频、模拟数据等实时数据的传输协议。
最初设计是为了数据传输的多播,但是它也用于单播的。
与传统的注重的高可靠的数据传输的运输层协议相比,它更加侧重的数据传输的实时性。
此协议提供的服务包括时间载量标识、数据序列、时戳、传输控制等。
RTP与辅助控制协议RTCP一起得到数据传输的一些相关的控制信息。
2.RTP协议是如何工作的:
在前面说明过,威胁多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。
但是流媒体的传输是需要数据的适时的到达用以播放和回放。
RTP协议就是提供了时间标签,序列号以及其它的结构用于控制适时数据的流放。
在流的概念中“时间标签”是最重要的信息。
发送端依照即时的采样在数据包里隐蔽的设置了时间标签。
在接受端收到数据包后,就依照时间标签按照正确的速率恢复成原始的适时的数据。
不同的媒体格式调时属性是不一样的。
但是RTP本身并不负责同步,RTP只是传输层协议,为了简化了运输层处理,提高该层的效率。
将部分运输层协议功能(比如流量控制)上移到应用层完成。
同步就是属于应用层协议完成的。
它没有运输层协议的完整功能,不提供任何机制来保证实时地传输数据,不支持资源预留,也不保证服务质量。
RTP报文甚至不包括长度和报文边界的描述。
同时RTP协议的数据报文和控制报文的使用相邻的不同端口,这样大大提高了协议的灵活性和处理的简单性。
RTP协议和UDP二者共同完成运输层协议功能。
UDP协议只是传输数据包,是不管数据包传输的时间顺序。
RTP的协议数据单元是用UDP分组来承载的。
在承载RTP数据包的时候,有时候一帧数据被分割成几个包具有相同的时间标签,则可以知道时间标签并不是必须的。
而UDP的多路复用让RTP协议利用支持显式的多点投递,可以满足多媒体会话的需求。
<
br>
RTP协议虽然是传输层协议但是它没有作为OSI体系结构中单独的一层来实现。
RTP协议通常根据一个具体的应用来提供服务,RTP只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。
目前,RTP的设计和研究主要是用来满足多用户的多媒体会议的需要,另外它也适用于连续数据的存储,交互式分布仿真和一些控制、测量的应用中。
基于RTP的实验和商业产品也层出不穷。
实时传输控制协议RTCP协议
1.RTCP协议:
RTCP(Real-timeTranspor、ControlProtocol)是设计和RTP一起使用的进行流量控制和拥塞控制的服务控制协议。
2.RTCP协议如何工作:
当应用程序开始一个RTP会话时将使用两个端口:
一个给RTP,一个给RTCP。
RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
在RTP的会话之间周期的发放一些RTCP包以用来传监听服务质量和交换会话用户信息等功能。
RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。
因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
根据用户间的数据传输反馈信息,可以制定流量控制的策略,而会话用户信息的交互,可以制定会话控制的策略。
RTCP协议处理机根据需要定义了五种类型的报文——
RR:
receiverreport<
SR:
senderreport<
SDES:
sourcedescriptionitems.<
BYE:
indicatesendofparticipation.<
APP:
applicationspecificfunctions<
它们完成接收、分析、产生和发送控制报文的功能。
实时流协议RTSP协议
1.RTSP协议:
RTSP(RealTimeStreamingProtocol)协议定义了如何有效地通过IP网络传送多媒体数据,是一种客户端到服务器端的多媒体描述协议。
RTSP是一个非常类似于HTTP的应用层协议。
每个发布和媒体文件也被定义为RTSPUPL。
而媒体文件的发布信息被书写进一个被称为媒体发布文件里,这个文件在后面会说明。
在这个文件说明的包括编码器,语言,RTSPULS,地址,端口号以几其它参数。
这个发布文件可以在客户端通过EMAIL形式或者HTTP形式获得。
RTSP是由RealNetworks和Netscape以及哥伦比亚大学共同提出的。
它是从RealNetworks的"
RealAudio"
和Netscape的"
LiveMedia"
的实践和经验发展来来的。
第一份RTSP协议是由IETF在1996年8月9日正式提交后作为INTERNET的标准,在此后此协议经过了很多明显的变化。
它的应用现在是广泛的,APPLE、IBMNetscape,Apple,IBM,SiliconGraphics,VXtreme,Sun还有其它公司都宣称它们的在线播放器支持RTSP协议,不过微软一直都坚持不支持此协议,不知道这种局面还会持续多久。
2.RTSP协议的特点:
RTSP是应用层协议,与RTP、RSVP一起设计来完全流式服务。
RTSP有很大的灵活性,可被用在多种操作系统上,它允许客户端和不同厂商的服务平台交互。
RTSP在体系结构上位于RTP和RTCP之上,它使用RTP完成数据传输。
它将流式媒体数据可控制的通过网络传输到客户端。
RTSP可以保持用户计算机与传输流业务服务器之间的固定连接,用于观看者与单播(Unicast)服务器通信并且还允许双向通信,观看者可以同流媒体服务器通信.
提供类似“VCR”形式的例如暂停、快进、倒转、跳转等操作。
操作的资源对象可以是直播流也可以是存储片段。
RTSP是设还提供了选择传输通道,如使用UDP还是多点UDP或是TCP。
资源预留协议RSVP
1.RSVP协议:
RSVP(ResorcereSerVationProtocol)资源预留协议并不是一个路由协议,而是一种IP网络中的信令协议,它与路由协议相结合来实现对网络传输服务质量(QoS)的控制。
RSVP是为支持因特网综合业务而提出的。
这是解决IP通信中QoS(服务质量)问题的一种技术,用来保证点端到端的传输带宽。
2.RSVP协议是如何工作:
RSVP使用控制数据报,这些数据报在向特定地址传输时包括了需要由路由器检查(有些时候需要更新)的信息,如果路由器需要决定是不是要检查数据报的内容的时候对上层数据内容进行语法分析。
这种分析的代价可不小。
现在的情况是,网络终端利用它向网络申请资源,在这种表明“申请”的信号中,包含着如下的信息:
业务的种类?
使用者类型?
什么时间?
需要多大带宽?
其他参考信息?
网络在接收到上类信息后,会根据实际情况为此次连接分配一个优先代码,用户利用优先代码进行信息传递时,网络不需重新对业务进行分析与判别,从另外一个角度来说,利用RSVP能从一定程度上减少网络对信息处理的时延,提高网络节点的工作效率,改善信息传输的服务质量(QoS)。
实时应用用RSVP是为了在传输路径中保持必要的资源以保证请求能确保到达。
RSVP是IP路由器为提供更好的服务质量向前迈进的具有深刻意义的一步。
传统上IP路由器只负责分组转发,通过路由协议知道邻近路由器的地址。
而RSVP则类似于电路交换系统的信令协议一样,为一个数据流通知其所经过的每个节点(IP路由器),与端点协商为此数据流提供质量保证。
RSVP协议一出现,立刻获得广泛的认同,基本上被任为较好地解决了资源预留的问题。
在前面我们讨论了一些实时媒体控制的相近的四个协议。
在这里我再概括性的说明一下:
RTP是实时数据传输协议。
它提供时间标志,序列号以及其它能够保证在实时数据传输时处理时间的方法。
它是依靠RVSP保证服务质量标准的。
RTCP是RTP的控制部分,是用来保证服务质量和成员管理的。
RTSP是开始和指引流媒体数据从流媒体服务器。
它又可叫做"
网上录像机控制协议"
.它是提供远程的控制,具体的数据传输是交给RTP的。
RSVP是Internet上的资源预订协议,使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供QoS。
实时传输协议
RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议。
RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。
RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。
当应用程序开始一个RTP会话时将使用两个端口:
通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
实时传输控制协议RTCP。
RTCP(Real-timeTransportControlProtocol)和RTP一起提供流量控制和拥塞控制服务。
在RTP会话期间,各参与者周期性地传送RTCP包。
RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
6.2.1RTP数据传输协议
RTP提供端对端网络传输功能,适合通过组播和点播传送实时数据,如视频、音频和仿真数据。
RTP没有涉及资源预订和质量保证等实时服务,RTCP扩充数据传输以允许监控数据传送,提供最小的控制和识别功能。
RTP与RTCP设计成独立传输和网络层。
2.1.1RTP固定头
RTP头格式如下:
-----------------------------------------------------------------------------------------------
|V=2|P|X|CC|M|PT|系列号|
|时标|
|同步源标识(SSRC)|
|作用标识(CSRC)|
|....|
开始12个八进制出现在每个RTP包中,而CSRC标识列表仅出现在混合器插入时。
2.1.2复用RTP连接
为使协议有效运行,复用点数目应减至最小。
RTP中,复用由定义RTP连接的目的传输地址(网络地址与端口号)提供。
例如,对音频和视频单独编码的远程会议,每个媒介被携带在单独RTP连接中,具有各自的目的传输地址。
目标不在将音频和视频放在单一RTP连接中,而根据SSRC段载荷类型进行多路分解。
使用同一SSRC,而具有不同载荷类型的交叉包将带来几个问题:
如一种载荷类型在连接期间切换,没有办法识别新值将替换那一个旧值。
SSRC定义成用于标识单个计时和系列号空间。
如媒体时钟速率不同,而要求不同系列号空间以说明那种载荷类型有丢包,交叉复用载荷类型将需要不同计时空间。
RTCP发送和接收报告可能仅描述每个SSRC的计时和系列号空间,而不携带载荷类型段。
RTP混合器不能将不兼容媒体流合并成一个流。
在一个RTP连接中携带多个媒介阻止几件事:
使用不同网络路径或网络资源分配;
接受媒介子集。
对每种媒介使用不同SSRC,但以相同RTP连接发送可避免前三个问题,但不能避免后两个问题。
2.1.3对RTP头特定设置的修改
可以认为,现用RTP数据包头对