(完整版)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协议支持重传和抗丢包机制,但是在网络条件较差的情况下,仍然可能发生数据包丢失的情况。

RTP协议分析

RTP协议分析

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

它被广泛应用于互联网电话、视频会议、流媒体等领域。

RTP协议的设计目标是提供实时传输的低延迟、高带宽利用率和可扩展性。

二、协议目标RTP协议的主要目标是提供以下功能:1. 实时传输:RTP协议能够将音视频数据以实时方式传输,保证传输的即时性。

2. 数据分包:RTP协议将音视频数据分成多个小包进行传输,以便在传输过程中能够更好地应对丢包和网络拥塞等问题。

3. 时序和时间戳:RTP协议通过序列号和时间戳来维护音视频数据的时序关系,确保接收端能够正确还原音视频数据。

4. 流同步:RTP协议通过同步源标识符(SSRC)来实现多个媒体流的同步播放。

5. 媒体传输:RTP协议支持传输多种媒体数据,包括音频、视频和其他自定义数据。

三、协议结构RTP协议的结构如下:1. RTP头部:RTP头部包含协议版本、填充位、扩展位、CSRC计数器、标记位、有效载荷类型、序列号、时间戳和同步源标识符等字段。

2. RTP有效载荷:RTP有效载荷是实际的音视频数据,可以是压缩或非压缩格式。

3. RTP扩展头部:RTP扩展头部是可选的,用于传输额外的信息。

四、协议流程RTP协议的传输流程如下:1. 发送端将音视频数据分包,并在每个包的RTP头部填充相应的字段,如序列号、时间戳和同步源标识符等。

2. 发送端通过网络将RTP包发送给接收端。

3. 接收端根据RTP头部的信息,对接收到的数据进行解析和处理。

4. 接收端根据序列号和时间戳等信息,还原音视频数据,并进行播放或处理。

五、协议优点RTP协议具有以下优点:1. 低延迟:RTP协议通过数据分包和实时传输等机制,能够实现低延迟的音视频传输。

2. 高带宽利用率:RTP协议通过将音视频数据分成小包进行传输,能够更好地利用网络带宽。

3. 可扩展性:RTP协议支持多种媒体数据的传输,并可以通过扩展头部传输额外的信息,具有良好的可扩展性。

rtp协议,payload,type

rtp协议,payload,type

rtp协议,payload,type篇一:实时传输(RTP)实时传输1、RTP的包头M标志位:标志的解释由具体协议规定。

它用来允许在比特流中标记重要的事件,如帧边界。

由于一个视频采样压缩之后仍然有可能相当巨大,可能超出预先约定规定的RTP数据报大小,这个时候就需要拆分数据报了。

但是由于这些数据报都属于同一个整个视频采样,因此这些数据报的时间戳应该是一致的。

此外,Mark 标志用来作为区分这些拆分数据报和普通数据报的分界线。

只有当受到Mark标志的多个数据报都到达了才能构成一个完整的数据帧提交解码器。

SSRC:同步源标识。

序列号:每发送一个RTP数据包,序列号加1,接收端可以据此检测丢包和重建包序列。

CSRC:只有当混频器加入时才有此项。

可不考虑。

设置恰当的时戳单元:这是RTP会话初始化过程所要进行的另外一项重要工作,这是通过调用RTPSession类的SetTimestampUnit ()方法来实现的,该方法同样也只有一个参数,表示的是以秒为单元的时戳单元。

例如,当使用RTP 会话传输8000Hz采样的音频数据时,由于时戳每秒钟将递增8000,所以时戳单元相应地应该被设置成1/8000,可以用以下代码来实现Sessionparams.SetOwnTimestampUnit(1.0/8000)。

30帧/秒的视频SetOwnTimestampUnit(1.0 /30);如果RTP包是周期性产生的,那么将使用由采样时钟决定的名义上的采样时刻,而不是读取系统时间。

例如,对一个固定速率的音频,采样时钟将在每个周期内增加1。

如果一个音频从输入设备中读取含有160个采样周期的块,那么对每个块,时间戳的值增加160。

也就是时间戳增量如上8000Hz的音频,如果每个包含有20ms的时间(就是160个采样),则需要session.SetDefaultTimestampIncrement(160)。

另外不同媒体流的RTP时间戳可能以不同的速率增长。

RTP协议详解-无水印版

RTP协议详解-无水印版

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

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

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

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

RTP协议分析

RTP协议分析

•RTP全名是Real-time Transport Protocol(实时传输协议)。

它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。

RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。

RTP用来为IP 网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。

RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。

RTP用于在单播或多播网络中传送实时数据。

它们典型的应用场合有如下几个:●音频和视频会议如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。

如果一个用户同时使用了两个会话,则每个会话对应的RTCP包都使用规范化名字CNAME(Canonical Name)。

与会者可以根据RTCP包中的CNAME来获取相关联的音频和视频,然后根据RTCP包中的计时信息(Network time protocol)来实现音频和视频的同步。

●翻译器和混合器翻译器和混合器都是RTP级的中继系统。

翻译器用在通过IP多播不能直接到达的用户区,例如发送者和接收者之间存在防火墙。

当与会者能接收的音频编码格式不一样,比如有一个与会者通过一条低速链路接入到高速会议,这时就要使用混合器。

在进入音频数据格式需要变化的网络前,混合器将来自一个源或多个源的音频包进行重构,并把重构后的多个音频合并,采用另一种音频编码进行编码后,再转发这个新的RTP包。

从一个混合器出来的所有数据包要用混合器作为它们的同步源(SSRC,见RTP的封装)来识别,可以通过贡献源列表(CSRC表,见RTP的封装)可以确认谈话者。

•从图中可以看出,RTP被划分在传输层,它建立在UDP上。

RTP协议分析

RTP协议分析

RTP协议分析协议名称:实时传输协议(RTP)分析协议1. 引言本协议旨在对实时传输协议(RTP)进行分析,以便了解其工作原理、特点和应用场景。

本协议详细介绍了RTP协议的定义、数据包格式、传输机制以及相关应用。

2. 定义实时传输协议(RTP)是一种用于实时传输音频和视频数据的协议。

它提供了一种标准化的方式,使得多媒体数据能够通过网络进行传输,并保证数据的实时性和准确性。

3. 数据包格式RTP协议使用数据包进行数据传输。

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

头部包含了一系列的字段,用于描述数据包的相关信息,如序列号、时间戳、负载类型等。

有效载荷部分则包含了实际的音频或视频数据。

4. 传输机制RTP协议使用UDP协议进行数据传输。

UDP是一种无连接的传输协议,它提供了一种简单的、不可靠的数据传输方式。

RTP协议通过UDP传输数据,同时使用RTCP(实时传输控制协议)进行数据包的控制和反馈。

5. RTP会话RTP协议使用会话标识符(SSRC)来标识不同的RTP会话。

每个RTP会话都有一个唯一的SSRC,用于区分不同的数据流。

在一个RTP会话中,可以包含多个RTP流,每个RTP流都有自己的SSRC。

6. 应用场景RTP协议广泛应用于音视频通信领域。

例如,在网络电话和视频会议系统中,RTP协议被用于实时传输音频和视频数据。

此外,RTP协议还被用于流媒体传输、视频监控和实时游戏等领域。

7. RTP扩展RTP协议支持扩展头部,用于在RTP数据包中传输额外的信息。

扩展头部可以包含自定义的字段,用于传输应用特定的数据。

RTP扩展头部的使用可以根据具体的应用需求进行定制。

8. RTP安全性RTP协议本身不提供数据加密和身份验证功能。

为了保护数据的安全性,可以使用SRTP(安全实时传输协议)对RTP数据进行加密和身份验证。

SRTP使用对称加密算法和数字签名算法来保护RTP数据的机密性和完整性。

9. 总结RTP协议是一种用于实时传输音频和视频数据的协议。

RTP协议分析

RTP协议分析

RTP协议分析RTP的主要特点如下:1.实时传输:RTP被广泛应用于实时通信领域,如语音通话、视频会议、直播等。

它通过UDP协议传输数据,相比于TCP协议,UDP具有低延迟、无拥塞控制等特性,适合实时传输。

2.序列号和时间戳:RTP在每个数据包中添加了序列号和时间戳,用于保证数据包的有序接收和实时播放。

序列号用于重新排序接收到的数据包,时间戳用于计算数据包的播放时间。

3.负载类型:RTP支持多种不同的负载类型,如音频、视频、图像等。

每种负载类型都有对应的编解码器,用于将媒体数据压缩和解压缩。

RTP在报文头中的负载类型字段指示接收端如何处理数据。

4.扩展头部:RTP可以通过扩展头部传输额外的信息,如源地址、数据类型、音视频参数等。

这些扩展头部信息有助于接收端对数据进行正确解码和渲染。

RTP的工作流程如下:1.建立会话:发送方和接收方需要先建立一个RTP会话,包括IP地址、端口号等信息。

发送方将媒体数据和相关信息封装成RTP数据包,并通过UDP协议发送给接收方。

2.封装数据包:发送方使用RTP协议将媒体数据进行封装,包括添加序列号、时间戳、负载类型等信息。

然后将封装后的RTP数据包发送给接收方。

3.接收数据包:接收方通过UDP接收RTP数据包,并根据序列号和时间戳对数据包进行排序和组装。

接收方解析RTP头部信息,提取负载数据并进行解码。

4.解码和播放:接收方使用相应的解码器对接收到的负载数据进行解码,并将解码后的数据交给播放器进行播放。

总结:RTP协议是一种用于实时传输音频和视频数据的协议。

它基于UDP协议传输数据,提供了时间戳、序列号、负载类型等扩展信息,保证数据的实时传输和顺序播放。

RTP适用于实时通信领域,通过序列号和时间戳保证数据的有序接收和实时播放。

它支持多种负载类型,并可以通过扩展头部传输额外的信息,如源地址、数据类型等。

RTP协议实时传输协议的音视频通信机制

RTP协议实时传输协议的音视频通信机制

RTP协议实时传输协议的音视频通信机制RTP(Real-time Transport Protocol)是实时传输协议,用于音视频通信中的数据传输。

它提供了一种标准化的方式,使得音视频数据可以在网络上进行传输和同步。

本文将详细介绍RTP协议的音视频通信机制。

一、RTP协议概述RTP协议是IETF(Internet Engineering Task Force)制定的一种应用层协议,用于实时传输音频和视频等数据。

它定义了一套传输和同步音视频数据的机制,使得接收方可以按照发送方的时序顺序恢复出完整的音视频内容。

二、RTP报文结构RTP报文由固定头部和有效载荷组成。

头部包含了标识数据类型、时间戳、序列号等信息,而有效载荷则是音视频数据的实际内容。

RTP 报文的结构如下所示:(这里根据实际情况插入图示)三、RTP传输流程RTP协议的传输流程包括发送端和接收端两个环节。

发送端将音视频数据打包成RTP报文,然后通过UDP协议进行传输。

接收端则根据报文头部中的时间戳和序列号信息进行解包和同步,最终将音视频内容展示给用户。

四、实时性保障机制RTP协议主要通过以下几个机制来保障音视频数据的实时性:1. 时间戳:RTP报文头部包含了时间戳信息,用于指示音视频数据的播放时间。

接收端可以根据时间戳信息对音视频进行同步,以保证播放的实时性。

2. 序列号:RTP报文头部的序列号字段可以用于检测丢包情况。

接收端可以根据序列号判断是否有报文未到达,如果有,可以通过重传机制进行数据的重新获取。

3. 延迟控制:延迟是音视频通信中不可避免的问题,RTP协议可以通过一些手段对延迟进行控制。

例如,可以使用RTCP(RTP Control Protocol)来监测网络状况,及时调整视频的码率以适应带宽的变化,从而减少延迟。

五、RTP与RTCP的配合RTP协议通常与RTCP协议搭配使用。

RTCP是RTP的控制协议,用于传输音视频会话的控制信息。

RTP协议学习大总结从原理到代码

RTP协议学习大总结从原理到代码
b、设置恰当的时戳单元,是 RTP 会话初始化过程所要进行的另外一项重要工作, 这是通过调用 RTPSession 类的 SetTimestampUnit() 方法来实现的,前面已经 提过。
示 RTP 数据报的来源,RTP 协议允许在同一个会话中存在多个数据源,它们可以 通过 RTP 混合器合并为一个数据源。例如,可以产生一个 CSRC 列表来表示一个电话会议,该会议通 过一个 RTP 混合器将所有讲话者的语音数据组合为一个 RTP 数据源。 负载类型(PT) 标明 RTP 负载的格式,包括所采用的编码算法、采样频率、承载通道 等。例如,类型 2 表明该 RTP 数据包中承载的是用 ITU G.721 算法编码的语音数据,采样频 率为 8000Hz,并且采用单声道。 序列号 用来为接收方提供探测数据丢失的方法,但如何处理丢失的数据则是应用程序自 己的事情,RTP 协议本身并不负责数据的重传。 时间戳 记录了负载中第一个字节的采样时间,接收方根据时间戳能够确定数据的到达 是否受到了延迟抖动的影响,但具体如何来补偿延迟抖动则是应用程序自己的事情。 从 RTP 数据报的格式不难看出,它包含了传输媒体的类型、格式、序列号、时间戳以及是 否有附加数据等信息,这些都为实时的流媒体传输提供了相应的基础。RTP 协议 的目的是 提供实时数据(如交互式的音频和视频)的端到端传输服务,因此在 RTP 中没有连接的概念, 它可以建立在底层的面向连接或面向非连接的传输协议之 上;RTP 也不依赖于特别的网络 地址格式,而仅仅只需要底层传输协议支持组帧(Framing)和分段(Segmentation)就足够 了;另外 RTP 本身还不提供任何可靠性机制,这些都要由传输协议或者应用程序自己来保 证。在典型的应用场合下,RTP 一般是在传输协议之上作为应用程序的一部分加以实现的, 如图 2 所示:

rtp 协议

rtp 协议

rtp 协议实时传输协议(RTP)是一种用于实时传输音频和视频数据的协议。

它既可以单独使用,也可以与其他协议(如RTSP)一起使用。

RTP的设计目标是提供一种低延迟、鲁棒性强的传输机制,以便实时应用程序(例如视频会议、流媒体)能够在网络中传输和接收音频和视频数据。

RTP使用UDP作为底层传输协议,这是因为UDP相比于TCP更适合实时数据传输。

UDP无连接、不可靠的特性使得RTP能够快速传递数据,并且不需要建立和维护复杂的连接。

RTP协议主要由两部分组成:RTP头和有效载荷。

RTP头包含了一些元数据信息,例如时间戳、序列号和负载类型。

时间戳用于同步媒体数据的播放,序列号用于保证数据的可靠传输。

负载类型指示了有效载荷的编码格式(例如PCM、MPEG)。

有效载荷部分是实际的音频或视频数据。

RTP协议本身并不负责对有效载荷进行编码或压缩,这是应用程序的责任。

RTP协议只负责将有效载荷封装在UDP数据包中,并添加一些元数据信息。

RTP协议还支持一些扩展功能,例如支持多路复用、混流和重传。

通过多路复用,可以在一个RTP流中传输多个音频或视频通道。

混流允许将多个RTP流合并成一个流,这对于实时会议和直播非常有用。

重传功能通过发送端发送冗余数据来提高数据传输的可靠性。

在RTP协议的传输过程中,需要注意一些问题。

首先是丢包问题,由于UDP的不可靠性,可能会导致数据包的丢失。

为了解决这个问题,可以使用前向纠错或重传机制。

其次是时延问题,由于RTP头的添加,会增加数据包的大小,导致延迟增加。

为了减少延迟,可以使用压缩和流水线技术。

总的来说,RTP协议是一种适用于实时传输音频和视频数据的协议。

它提供了一种低延迟、鲁棒性强的传输机制,能够满足实时应用程序对数据传输的需求。

但是,由于UDP的不可靠性,还需要在实际应用中采取一些措施来解决丢包和时延问题。

RTP协议分析

RTP协议分析

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

它提供了一种标准化的方式,用于在网络中传输实时数据,以保证数据的实时性和可靠性。

本文将对RTP协议的结构、功能和特点进行详细分析。

二、协议结构RTP协议的结构包括头部和有效载荷两部分。

1. 头部(Header)RTP头部由12个字节组成,包含以下字段:- 版本(Version):占2位,用于指示RTP协议的版本号。

- 填充位(Padding):占1位,用于指示是否在RTP包的末尾添加填充字节。

- 扩展位(Extension):占1位,用于指示是否存在RTP头部扩展。

- CSRC计数器(CSRC Count):占4位,用于指示CSRC标识符的数量。

- 标记位(Marker):占1位,用于指示RTP包的重要性。

- 负载类型(Payload Type):占7位,用于指示有效载荷的类型。

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

- 时间戳(Timestamp):占32位,用于指示RTP包的时间戳。

- 同步源(Synchronization Source):占32位,用于标识RTP流的同步源。

- CSRC列表(CSRC List):每个CSRC标识符占32位,用于标识参与混合的源。

2. 有效载荷(Payload)RTP协议的有效载荷部分用于传输音频和视频数据。

具体的有效载荷格式由负载类型字段决定,可以是原始音频/视频数据、压缩后的音频/视频数据或其他数据。

三、功能和特点RTP协议具有以下功能和特点:1. 实时传输RTP协议被设计用于传输实时数据,如音频和视频。

它通过提供时间戳和序列号字段,保证接收端可以按照正确的顺序和时间戳重构数据。

2. 流同步RTP协议使用同步源字段来标识RTP流的同步源。

这样,接收端可以根据同步源标识符对多个RTP流进行同步,确保音频和视频的同步播放。

UDP、TCP、RTP三种协议的总结

UDP、TCP、RTP三种协议的总结

UDP、TCP、RTP三种协议的总结OSI七层模型OSI 中的层功能TCP/IP协议族应用层文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层数据格式化,代码转换,数据加密没有协议会话层解除或建立与别的接点的联系没有协议传输层提供端对端的接口TCP,UDP (RTP)网络层为数据包选择路由IP,ICMP,RIP,OSPF,BGP,IGMP数据链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,ARP,RARP,MTU物理层以二进制数据形式在物理媒体上传输数据ISO2110,IEEE802,IEEE802.2************************************************************************************************************************************TCP/IP五层模型的协议应用层传输层:四层交换机、也有工作在四层的路由器网络层:路由器、三层交换机数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层**************************************************************************************************************************************一、RTP协议分析1、RTP概述1.1. RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。

它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。

rtp协议

rtp协议

rtp协议实时传输协议(Real-time Transport Protocol,简称RTP)是一种用于实时音视频传输的协议。

RTP协议主要用于音视频会议、流媒体传输、音视频直播等场景,能够提供实时传输、时延控制、容错机制等功能。

RTP协议是基于用户数据报协议(UDP)的,在IP协议上进行封装传输。

它利用UDP的无连接特性,不需要建立和维护复杂的连接状态,能够实现高效、实时的音视频传输。

同时,RTP协议还能够通过设置传输头部的各种参数,实现时延控制、报文顺序保证、容错恢复等功能。

RTP协议的数据包由固定长度的头部和变长的负载数据组成。

头部包含了多个字段,用于描述数据包的重要信息,如序列号、时间戳、负载类型等。

序列号用于保证数据包的顺序,时间戳用于实现时延控制和同步,负载类型指明了负载数据的类型,如音频、视频等。

RTP协议还支持扩展头部,用于传输额外的信息或控制命令。

扩展头部可以根据具体需求来定制,提供了较大的灵活性。

例如,可以通过扩展头部传输音频或视频的码率、分辨率等信息,以及一些定制的控制命令,如请求重传、帧丢弃等。

在传输过程中,RTP协议可以选择使用传输控制协议(TCP)或用户数据报协议(UDP)。

使用TCP可以确保数据的可靠传输,但带来较大的时延。

而使用UDP能够提供较低的时延,但可能会导致数据包的丢失或乱序。

因此,在选择传输协议时,需要根据具体应用场景的要求来进行权衡。

除了传输数据之外,RTP协议还需要与其他协议配合使用,来完成完整的音视频传输过程。

例如,在实时通信中,通常会使用会话发起协议(Session Initiation Protocol,简称SIP)来实现会话的建立和管理。

在流媒体传输中,可能还需要使用流媒体控制协议(Real-time Streaming Protocol,简称RTSP)来控制媒体资源的播放和暂停等操作。

总的来说,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说明并不定义任何头扩展本身。

相关文档
最新文档