(完整版)RTP协议分析

合集下载

RTP协议中的音视频传输流程详解

RTP协议中的音视频传输流程详解

RTP协议中的音视频传输流程详解RTP(Real-time Transport Protocol,实时传输协议)是一种用于实时传输音视频数据的协议。

它是一种基于UDP协议的传输协议,主要用于实时音视频通信领域,如视频会议、实时直播等。

本文将详细介绍RTP协议在音视频传输中的流程。

一、RTP协议简介RTP协议定义了音视频在网络中传输的规范。

它提供了时间戳、序列号等机制,用于优化音视频传输的时序和可靠性。

RTP协议常与RTCP(RTP Control Protocol,RTP控制协议)共同使用,用于传输控制信息和接收反馈。

二、RTP数据包格式RTP数据包由固定的12字节头部和负载数据组成。

头部包含了版本号、报头扩展位、数据类型等字段,以及时间戳、序列号等用于时序和顺序控制的信息。

负载数据是实际的音视频数据,可以是压缩格式,如H.264、AAC等。

三、RTP传输流程1. 建立RTP会话:发送方和接收方需要通过一定的手段建立RTP 会话,通常利用SDP(Session Description Protocol,会话描述协议)来交换RTP相关信息。

2. 数据封装:发送方将音视频数据封装成RTP数据包。

在封装过程中,需要将数据进行压缩和打包,同时附加时间戳、序列号等控制信息。

3. 数据传输:发送方利用UDP协议将RTP数据包发送给接收方。

由于RTP协议是无连接的,因此需要保证数据包的可靠传输,一般采用重传机制或者前向纠错。

4. 数据接收:接收方收到RTP数据包后,首先解析头部获取时间戳、序列号等控制信息。

然后对负载数据进行解码和解压,还原成原始的音视频数据。

5. 数据播放:接收方将解码后的音视频数据进行播放或显示。

由于RTP协议只负责传输数据,因此接收方需要根据时间戳控制播放的时序和同步性。

四、RTP协议的优点1. 实时性好:RTP协议能够保证音视频数据的实时传输,适用于对时延要求较高的应用场景。

2. 可拓展性强:RTP协议可以与其他控制协议结合,支持多路流媒体传输和多播。

RTP协议的中文版

RTP协议的中文版

RTP协议的中文版协议名称:RTP协议的中文版一、引言RTP(Real-time Transport Protocol)是一种用于实时传输音频和视频数据的协议。

本协议旨在提供一套标准化的通信机制,以确保实时数据的传输和接收的准确性和可靠性。

本文档旨在描述RTP协议的中文版,以便在中文语境下更好地理解和应用该协议。

二、范围本协议适用于所有需要实时传输音频和视频数据的应用场景,包括但不限于实时音视频通话、实时音视频会议、实时音视频直播等。

三、定义3.1 RTP数据包RTP数据包是RTP协议中的基本单位,用于传输音频和视频数据。

每个RTP 数据包由RTP头和有效载荷组成。

RTP头包含序列号、时间戳、同步信源标识符等字段,用于标识和同步数据包。

有效载荷部分包含音频和视频数据。

3.2 RTP会话RTP会话是指在特定时间段内,通过RTP协议传输的一组相关音频和视频数据。

RTP会话由一个或多个RTP参与者组成,可以包含多个RTP流。

3.3 RTP参与者RTP参与者是指通过RTP协议发送和接收音频和视频数据的实体。

每个RTP 参与者都有唯一的同步信源标识符(SSRC),用于标识该参与者的数据包。

四、协议规范4.1 RTP数据包格式RTP数据包采用以下格式:- RTP头部:包含版本号、填充位、扩展位、CSRC计数、标记位、负载类型、序列号、时间戳、同步信源标识符等字段。

- CSRC列表:包含零个或多个CSRC标识符,用于标识参与者。

- 扩展头部:可选字段,用于扩展RTP头部。

- 有效载荷:包含音频和视频数据。

4.2 RTP会话管理RTP会话的建立和终止应遵循以下规范:- 参与者加入:新参与者加入RTP会话时,应向其他参与者发送加入请求,并等待其他参与者的确认。

- 参与者退出:参与者退出RTP会话时,应向其他参与者发送退出通知,并等待其他参与者的确认。

- 同步信源标识符:每个参与者在加入RTP会话时,应生成唯一的同步信源标识符,用于标识该参与者的数据包。

RTP

RTP

RTP协议介绍RTP概要RTP定义在RFC 1889中。

RTP是 IETF提出的适合实时数据传输的协议,支持在单目标广播和多目标广播网络服务中传输实时数据,能为实时媒体数据提供点到点的传输服务。

RTP 主要应用在Internet上传输对时延敏感的业务,如音频流和视频流。

RTP也可以用于传输电话呼叫,国际电信联盟在多媒体通信标准H.323 中采用了RTP。

RTP特性1、协议独立性RTP是独立于底层协议的传输机制,可以在UDP/IP、ATM AAL5和IPX层上实现。

2、同步机制RTP采用时间戳(Times tamp)来控制单一媒体数据流,但它本身并不能控制不同媒体数据流间的同步。

若要实现不同数据流之间的同步,必须由应用程序参与完成。

3、包传输路径回溯RTP中使用了混合器(把多个视频流混合成一个视频流)和解释器(网关或传输路径上编码格式转换器),因此它提供了当分组到达接收端后进行包传输路径回溯的机制,这种机制主要通过RTP包头中的SSRC和CSRC域来完成。

4、可靠性由于RTP的设计目的是传输实时数据流,而不是可靠的数据流,因此它不提供有关数据传输时间、错误检测和包顺序监控的机制,也就是讲RTP提供的实时服务没有资源预约,也没有Qos保证,这些任务依靠下层协议来完成。

5、RTP层不支持多路复用多路复用由低层协议来完成,如:UDP。

RTP信息包被封装在UDP中,当接收端同时收到来自不同地方的多个数据分组,通过UDP实现多路复用、检查和服务。

6、扩展性支持在单目标广播(Unicast)和多目标广播(Multicast)。

7、安全性RTP考虑到安全性能,支持数据加密和身份鉴别认证功能。

8、灵活性控制数据与媒体数据分离,RTP协议只提供完成实时传输的机制,开发者可以根据应用环境选择控制方式。

RTP在网络中的传输TCP协议是面向连接的协议,它的重传机制和拥塞控制机制(Congestion Control Mechanism)都是不适合用于实时多媒体传输的。

RTP协议全解(H264码流和PS流)-2015-4-22

RTP协议全解(H264码流和PS流)-2015-4-22

RTP协议全解(H264码流和PS流)写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。

互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。

原创不易,转载请附上链接,谢谢/chen495810242/article/details/392073051、RTP Header解析图11) V:RTP协议的版本号,占2位,当前协议版本号为22) P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

3) X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头4) CC:CSRC计数器,占4位,指示CSRC 标识符的个数5) M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

6) PT: 有效荷载类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。

7) 序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。

这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。

同时出现网络抖动的情况可以用来对数据进行重新排序,序列号的初始值是随机的,同时音频包和视频包的sequence是分别记数的。

8) 时戳(Timestamp):占32位,必须使用90 kHz 时钟频率。

时戳反映了该RTP报文的第一个八位组的采样时刻。

接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

9) 同步信源(SSRC)标识符:占32位,用于标识同步信源。

该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

10) 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。

实时传输协议——RTP协议详细介绍

实时传输协议——RTP协议详细介绍

实时传输协议——RTP协议详细介绍随着以太网音视频桥接(AVB)技术的引入,汽车可支持各种基于音频、视频的流媒体服务。

在流媒体数据传输过程中,为保障音视频流的实时传输,需采用RTP和RTCP协议。

接下来,我们一起来了解下实时传输协议吧!1、什么是RTP?RTP定义:Real-time Transport Protocol,是由IETF的多媒体传输工作小组于1996年在RFC 1889中公布的。

RTP为IP 上的语音、图像等需要实时传输的多媒体数据提供端对端的传输服务,但本身无法保证服务质量(QoS),因此,需要配合实时传输控制协议(RTCP)一起使用。

RTCP定义:Real-time Transport Control Protocol,监控服务质量并传送会话参与者信息,服务器可利用RTCP数据包信息改变传输速率、负载数据类型。

2、RTP相关概念介绍流媒体:使用流式传输技术的连续时基媒体。

使用流式传输可以边下载边播放,无需等待音频或视频数据信息全部下载完成后再播放。

混频器(Mixer):一种中间系统,将一个或多个源的RTP数据包合成一个新的RTP数据包,然后转发出去。

混频器可能会改变数据包的数据格式,并对各个流组合的新数据包生成一个新SSRC。

转换器(Translator):一种中间系统,转发RTP数据包但不改变数据包的同步源标识符,可用于通过IP多播无法直接到达的用户区,如在防火墙两端使用转换器,外侧转换器通过安全连接将数据传输到内侧转换器。

RTP利用混频器和转换器完成实时数据传输,混频器接收来自一个或多个发送方的RTP数据包,并把它们组合成一个新的RTP 数据包继续转发。

这个组合数据包使用新的SSRC标识,组合数据包将作为新的发送方加入到RTP传输中。

混频器将不同的媒体流组合在一起,需要通过转换器来对单个媒体流进行操作,可进行编码转换或协议翻译。

典型的RTP数据包传输流程如下图所示,其中S1、S2、S3、S4是数据源的发送端,R4是RTP 数据包的接收端。

RTP协议分析

RTP协议分析

RTP协议分析协议名称:RTP协议分析一、引言RTP(Real-time Transport Protocol)是一种用于实时传输音频和视频数据的协议。

该协议提供了一种标准化的方式,用于在多媒体应用程序之间传输实时数据。

本协议旨在分析RTP协议的基本原理、功能和特点,并提供相应的标准格式。

二、协议概述RTP协议是一个基于UDP的传输协议,用于在互联网上传输实时数据。

它提供了一种可靠的、实时的数据传输机制,适用于音频、视频和其他多媒体数据的传输。

RTP协议通过将数据分割成小的数据包(称为RTP包)并添加头部信息来实现数据的传输和同步。

三、协议结构1. RTP包头部RTP包头部包含以下字段:- 版本(V):标识RTP协议的版本号。

- 填充(P):指示是否在RTP包的末尾添加了额外的填充字节。

- 扩展(X):指示是否在RTP包中包含了扩展头部。

- CSRC计数(CC):指示后续包头中CSRC标识符的数量。

- 标记(M):用于指示RTP包是否为一个帧的最后一个包。

- 负载类型(PT):指示RTP包中负载的类型,例如音频或视频。

- 序列号(Sequence Number):用于标识RTP包的顺序。

- 时间戳(Timestamp):提供了RTP包中数据的时间信息。

- 同步源(SSRC):用于唯一标识RTP流的源。

- CSRC列表(CSRC List):包含了参与混合的媒体流的CSRC标识符的列表。

2. RTP包负载RTP包的负载部分包含了实时传输的音频、视频或其他多媒体数据。

四、协议功能1. 实时传输RTP协议提供了实时传输数据的功能,适用于音频和视频等多媒体数据的传输。

它通过将数据分割成小的数据包,并在每个包中添加时间戳信息,以确保接收方可以按照正确的顺序和时间重建数据。

2. 数据同步RTP协议通过使用时间戳字段来实现数据的同步。

接收方可以根据时间戳信息将多个数据包按照正确的顺序进行播放,从而实现音视频的同步。

网络视频传输协议RTPRTCPRTSPSIPSDP

网络视频传输协议RTPRTCPRTSPSIPSDP

网络视频传输协议RTPRTCPRTSPSIPSDP流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输;下面这几种协议就围绕着这两个需求而产生。

1.RTP协议rtp的全称是实时传输协议RTP(Real-time Transport Protocol),是应用层的一个协议,主要用来做音视频数据传输,一般基于udp协议之上,也支持组播,当然基于tcp也是可以的。

用rtp传输音视频数据的一般做法是将音视频数据前面加上rtp头封装成一个个的rtp包,接收端根据接收到的数据在组成按帧标记组成音视频数据,里面可以是h264或者h265的裸码流打包,也是是ps 格式或者ts格式封装的数据包,也可以是具有私有头的第三方封包。

rtp主要说的就是rtp头,里面比较重要的字段就是sn,一般在一帧数据被拆成多个rtp包,sn就是拆包的顺序,从1-32767循环叠加,在一个帧的最后一包会被打上mark标记,以此来区分一帧与另外一帧,用于接收方组成一帧数据包,多路不同的音视频媒体流使用ssrc源标记区分。

2.RTCP协议一般提到rtp总会提到rtcp协议,它们是配套的一套协议RTCP的全称是实时传输控制协议(Real-time Control Protocol),rtp虽然可以传输音视频数据,但是却不能携带其他的信息,比如当前网络的丢包,延迟,抖动,这些都是保证音视频数据传输质量的重要信息。

简单的说来就是rtp协议负责传输音视频数据,rtcp协议配套传输当前传输的控制信息。

rtcp主要说的就是两个东西,sr报告和rr报告,sr报告叫发送报告,随着发出的rtp包发出,主要告诉接收端,当前的发送情况;rr报告叫做接收报告,在接收到一个数据包后发出,回传到发送端,主要告诉发送端当前的接收情况;当然还有其他的媒体描述信息,应用程序消息等。

rtp另一个支持的特性就是端口复用,简单的说就是多路音视频传输使用一个端口接收,多路不同的媒体流使用一个叫做复用id的字段来区分,每一路的muxid不一样。

RTP协议分析

RTP协议分析

RTP协议分析协议名称:实时传输协议(RTP)分析协议一、背景介绍实时传输协议(RTP)是一种用于在互联网上传输音频、视频和其他实时数据的协议。

它是由IETF(互联网工程任务组)制定的,并且被广泛应用于音视频通信、流媒体和实时数据传输领域。

本协议旨在对RTP协议进行分析,以便更好地理解其工作原理、性能特点和应用场景。

二、协议分析1. 协议定义RTP协议定义了一种标准的数据包格式,用于在互联网上传输实时数据。

它包括头部和有效载荷两部分。

头部包含了一些必要的信息,如版本号、序列号、时间戳等,用于数据包的重组和同步。

有效载荷部分则用于携带实际的音视频数据。

2. 协议特点RTP协议具有以下特点:- 实时性:RTP协议被设计用于传输实时数据,如音频和视频。

它采用UDP协议作为传输层协议,以提供较低的延迟和更好的实时性能。

- 可扩展性:RTP协议支持扩展头部,可以根据具体的应用需求添加自定义的扩展字段。

这使得RTP协议适用于各种不同的应用场景。

- 容错性:RTP协议支持重传和抗丢包机制,以提高数据传输的可靠性。

同时,它还支持前向纠错技术,可以在一定程度上修复数据包的丢失和损坏。

3. 协议应用RTP协议广泛应用于以下领域:- 音视频通信:RTP协议被用于实现音频和视频的实时传输,如VoIP(网络电话)、视频会议等。

- 流媒体:RTP协议是流媒体传输的基础,通过将音视频数据打包成RTP数据包进行传输,实现了高效的流媒体传输。

- 实时数据传输:RTP协议也可以用于传输其他实时数据,如传感器数据、实时游戏数据等。

4. 协议性能分析为了评估RTP协议的性能,可以从以下几个方面进行分析:- 延迟:RTP协议采用UDP传输,相比于TCP,具有较低的传输延迟。

但是,由于网络的不确定性,RTP协议仍然可能面临一定的延迟问题。

可以通过测量数据包的传输时间来评估延迟性能。

- 丢包率:RTP协议支持重传和抗丢包机制,但是在网络条件较差的情况下,仍然可能发生数据包丢失的情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RTP协议分析一.RTP协议背景 (2)二.RTP协议原理及工作机制 (2)2.1 RTP协议原理 (3)2.1.1 RTP协议原理 (3)2.1.2 RTCP协议原理 (3)2.2 RTP数据包格式 (4)2.2.1 RTP数据包格式 (4)2.2.2 RTCP数据包格式 (6)2.3 RTP工作机制 (9)2.3.1 RTP工作机制 (9)2.3.2 RTCP工作机制 (9)三.RTP协议关键技术指标 (10)3.1 时间戳 (10)3.2时延 (10)3.3 抖动 (11)3.4丢包率 (11)3.5 会话和流两级分用 (11)3.6 多种流同步控制 (12)四.RTP协议应用方案 (12)4.1 RTP协议应用方案之单播 (12)4.2 RTP协议应用方案之广播 (12)4.3 RTP协议应用方案之组播 (13)4.3.1 RTP协议组播方案总体概述 (13)4.3.2 RTP协议组播方案服务器端实现 (14)4.3. 3RTP协议组播方案客户端实现 (14)4.3. 4RTP协议视频帧率和质量调整策略 (15)五.RTP协议移植计划 (16)六.RTP协议安全方面考虑 (16)一.RTP协议背景流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。

流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从Internet上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。

通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。

流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。

实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。

“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系,这需要相应的协议支持,这样RTP和RTCP就相应的出现了。

实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。

RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。

RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。

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

实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量,在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。

在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。

RTP 和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。

二.RTP协议原理及工作机制让我们先看一下RTP和RTCP在网络层次中的位置,以便我们更加清楚的了解该协议,如下图1-1所示:图1-1 RTP&RTCP网络层次关系图下面我们就从RTP以及RTCP的协议原理,数据包格式,工作机制三个方面来对该协议做一个基本的认识和了解:2.1 RTP协议原理2.1.1 RTP协议原理RTP协议原理比较简单,负责对流媒体数据进行封包并实现媒体流的实时传输,即它按照RPT数据包格式来封装流媒体数据,并利用与它绑定的协议进行数据包的传输,具体见本文2.2.1RTP数据格式;RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务.2.1.2 RTCP协议原理RTCP原理是向会话中的所有成员周期性地发送控制包来实现的,应用程序通过接收这些控制数据包,从中获取会话参与者的相关资料,以及网络状况、分组丢失概率等反馈信息,从而能够对服务质量进行控制或者对网络状况进行诊断.RTCP协议的功能是通过不同的RTCP数据报文(具体描述的见2.2.2RTCP数据包格式)来实现的,主要有如下几种类型:•SR(Sender Report) 发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。

•RR(Receiver Report) 接收端报告,所谓接收端是指仅接收但不发送RTP数据报的应用程序或者终端。

•SDES 源描述,主要功能是作为会话成员有关标识信息的载体,如用户名、邮件地址、电话号码等,此外还具有向会话成员传达会话控制信息的功能。

•BYE通知离开,主要功能是指示某一个或者几个源不再有效,即通知会话中的其他成员自己将退出会话。

•APP由应用程序自己定义,解决了RTCP的扩展性问题,并且为协议的实现者提供了很大的灵活性。

RTCP数据报携带有服务质量监控的必要信息,能够对服务质量进行动态的调整,并能够对网络拥塞进行有效的控制。

由于RTCP数据报采用的是组播方式,因此会话中的所有成员都可以通过RTCP数据报返回的控制信息,来了解其他参与者的当前情况。

例如在流媒体应用场合下,发送媒体流的应用程序将周期性地产生发送端报告SR,该RTCP 数据报含有不同媒体流间的同步信息,以及已经发送的数据报和字节的计数,接收端根据这些信息可以估计出实际的数据传输速率。

另一方面,接收端会向所有已知的发送端发送接收端报告RR,该RTCP数据报含有已接收数据报的最大序列号、丢失的数据报数目、延时抖动和时间戳等重要信息,发送端应用根据这些信息可以估计出往返时延,并且可以根据数据报丢失概率和时延抖动情况动态调整发送速率,以改善网络拥塞状况,或者根据网络状况平滑地调整应用程序的服务质量。

RTCP具有以下四个功能:1、基本功能是提供数据传输质量的反馈.这是RTP作为一种传输协议的主要作用,它与其他协议的流量和阻塞控制相关.反馈可能对自适应编码有直接作用,但是IP组播的实验表明它对于从接收机得到反馈信息以诊断传输故障也有决定性作用.向所有成员发送接收反馈可以使"观察员"评估这些问题是局部的还是全局的.利用类似多点广播的传输机制,可以使某些实体,诸如没有加入会议的网络网络业务观察员,接收到反馈信息并作为第三类监视员来诊断网络故障.反馈功能通过RTCP发射机和接收机报告实现.2、RTCP为每个RTP源传输一个固定的识别符,称为标称名或CNAME.由于当发生冲突或程序重启时SSRC可能改变,接收机要用CNAME来跟踪每个成员.接收机还要用CNAME来关联一系列相关RTP会话期中来自同一个成员的多个数据流,例如同步语音和图象.3、前两个功能要求所有成员都发送RTCP包,因此必须控制速率以使RTP成员数可以逐级增长.通过让每个成员向所有成员发送控制包,各个成员都可以独立地观察会议中所有成员的数目.4、可选的功能是传输最少的会议控制信息,例如在用户接口中显示的成员识别.这最可能在"松散控制"的会议中起作用,在"松散控制"会议里,成员可以不经过资格控制和参数协商而加入或退出会议.RTCP作为一个延伸到所有成员的方便通路,必须要支持具体应用所需的所有控制信息通信.2.2 RTP数据包格式2.2.1 RTP数据包格式RTP报文头格式(见RFC3550 Page12):0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequence number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| synchronization source (SSRC) identifier |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| contributing source (CSRC) identifiers || .... |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+以上域具体意义如下:版本(V):2比特此域定义了RTP的版本.此协议定义的版本是2.(值1被RTP草案版本使用,值0用在最初"vat"语音工具使用的协议中.)填料(P):1比特若填料比特被设置,此包包含一到多个附加在末端的填充比特,不是负载的一部分.填料的最后一个字节包含可以忽略多少个填充比特.填料可能用于某些具有固定长度的加密算法,或者在底层数据单元中传输多个RTP包.扩展(X):1比特若设置扩展比特,固定头(仅)后面跟随一个头扩展.CSRC计数(CC):4比特 CSRC计数包含了跟在固定头后面CSRC识别符的数目.标志(M):1比特标志的解释由具体协议规定.它用来允许在比特流中标记重要的事件,如帧范围.规定该标志在静音后的第一个语音包时置位.负载类型(PT):7比特此域定义了负载的格式,由具体应用决定其解释.协议可以规定负载类型码和负载格式之间一个默认的匹配.其他的负载类型码可以通过非RTP方法动态定义.RTP发射机在任意给定时间发出一个单独的RTP负载类型;此域不用来复用不同的媒体流. 序列号(sequence number):16比特每发送一个RTP数据包,序列号加一,接收机可以据此检测包损和重建包序列.序列号的初始值是随机的(不可预测),以使即便在源本身不加密时(有时包要通过翻译器,它会这样做),对加密算法泛知的普通文本攻击也会更加困难.时间标志(timestamp):32比特时间标志反映了RTP数据包中第一个比特的抽样瞬间.抽样瞬间必须由随时间单调和线形增长的时钟得到,以进行同步和抖动计算.时钟的分辨率必须满足要求的同步准确度,足以进行包到达抖动测量.时钟频率与作为负载传输的数据格式独立,在协议中或定义此格式的负载类型说明中静态定义,也可以在通过非RTP方法定义的负载格式中动态说明.若RTP包周期性生成,可以使用由抽样时钟确定的额定抽样瞬间,而不是读系统时钟.例如,对于固定速率语音,时间标志钟可以每个抽样周期加 1.若语音设备从输入设备读取覆盖160个抽样周期的数据块,对于每个这样的数据块,时间标志增加160,无论此块被发送还是被静音压缩.时间标志的起始值是随机的,如同序列号.多个连续的RTP包可能由同样的时间标志,若他们在逻辑上同时产生.如属于同一个图象帧.若数据没有按照抽样的顺序发送,连续的RTP包可以包含不单调的时间标志,如MPEG交织图象帧.同步源(SSRC):32比特 SSRC域用以识别同步源.标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符.尽管多个源选择同一个SSRC识别符的概率很低,所有RTP实现工具都必须准备检测和解决冲突.若一个源改变本身的源传输地址,必须选择新的SSRC识别符,以避免被当作一个环路源.有贡献源(CSRC)列表:0到15项,每项32比特 CSRC列表识别在此包中负载的有贡献源.识别符的数目在CC域中给定.若有贡献源多于15个,仅识别15个.CSRC识别符由混合器插入,用有贡献源的SSRC识别符.例如语音包,混合产生新包的所有源的SSRC标识符都被陈列,以期在接收机处正确指示交谈者.注意:前12个字节出现在每个RTP包中,仅仅在被混合器插入时,才出现CSRC识别符列表.RTP报文扩展头格式(见RFC3550 Page18):0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| defined by profile | length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| header extension || .... |若RTP头中的扩展比特位X置1,则一个长度可变的头扩展部分被加到RTP固定头之后,.头扩展包含16比特的长度域,指示扩展项中32比特字的个数,不包括4个字节扩展头(因此零是有效值).RTP固定头之后只允许有一个头扩展.为允许多个互操作实现独立生成不同的头扩展,或某种特定实现有多种不同的头扩展,扩展项的前16比特用以识别标识符或参数.这16比特的格式由具体实现的上层协议定义.基本的RTP说明并不定义任何头扩展本身。

相关文档
最新文档