RTP协议分析

合集下载

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)是一种用于在互联网上传输音频、视频和其他实时数据的协议。

它是由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协议解析实时传输协议的通信流程实时传输协议(Real-time Transport Protocol,简称RTP)是用于在计算机网络上传输音视频数据的一种网络传输协议。

通过对RTP协议的解析,可以更好地理解实时传输协议的通信流程。

本文将详细介绍RTP协议的通信流程,以帮助读者对其有更深入的了解。

一、RTP协议概述RTP协议是一种面向数据包的协议,用于在IP网络上实现实时音视频的传输。

它通过应用层协议和传输层协议,实现音视频数据的有效传输。

RTP协议具有相对较小的延迟和抖动,适用于对实时性要求较高的音视频传输场景。

二、RTP协议的通信流程1. 发送端准备数据在RTP协议的通信流程中,发送端首先需要准备需要传输的音视频数据。

该数据可以是声音、图像或视频等实时数据。

2. 封装RTP数据包发送端将准备好的数据进行RTP封装,将实时数据封装成RTP数据包。

RTP数据包包含了数据的负载(payload)和头部信息(header)。

头部信息中包括了与数据相关的信息,比如序列号、时间戳、同步信令等。

3. 选择传输协议发送端需要选择合适的传输协议来传输RTP数据包。

常用的传输协议包括用户数据报协议(UDP)和传输控制协议(TCP)。

UDP传输速度快,适合实时传输;而TCP具有可靠性,适合保证数据的可靠性传输。

4. 数据传输发送端将封装好的RTP数据包通过选择的传输协议发送到目的地。

在传输过程中,可能会经过多个路由器和网络节点。

5. 接收端接收数据接收端通过相应的传输协议接收到RTP数据包,并将其进行解析。

6. 解析RTP数据包接收端解析RTP数据包,提取出负载数据和头部信息。

头部信息中的序列号和时间戳可以用于实现数据的重构和同步。

7. 播放音视频接收端根据解析出的数据和头部信息对音视频进行播放或渲染。

通过解析RTP数据包和播放处理,接收端可以实现音视频的同步和实时性。

三、RTP协议的应用场景RTP协议在实时音视频传输领域具有广泛的应用。

网络协议知识:SIP协议和RTP协议的应用场景和优缺点

网络协议知识:SIP协议和RTP协议的应用场景和优缺点

网络协议知识:SIP协议和RTP协议的应用场景和优缺点SIP协议和RTP协议是互联网电话和视频会议系统的两个基本协议。

本文将介绍它们的应用场景和优缺点。

一、SIP协议SIP(Session Initiation Protocol)是一种基于文本的控制协议,它被广泛用于实时通信和多媒体会话的控制。

它是目前最流行的互联网电话协议之一,能够实现信令传递、设备发现、媒体协商和会话维护等功能。

SIP协议的应用场景包括:1.语音通信:用户可以通过SIP协议在互联网上进行语音通话,无需使用传统的电话线路。

2.视频会议:SIP协议允许多个用户在互联网上进行视频会议,用户可以使用不同的设备和应用程序进行参与。

3.多媒体消息:使用SIP协议可以实现多媒体消息的传递,包括语音留言、传真等。

SIP协议的优点包括:1.灵活性:SIP协议可以使用不同的编解码器,支持各种语音和视频格式,使得用户可以选择适合自己的设备和应用程序。

2.应用广泛:SIP协议不仅可以用于互联网电话系统,还可以用于实时通信、视频会议、多媒体协作等场景。

3.开放性:SIP协议是公开的标准,用户可以开发自定义应用程序,扩展功能和自定义管理。

SIP协议的缺点包括:1.安全性问题:SIP协议存在安全性问题,例如SIP消息被篡改、假冒、重放攻击等。

2. NAT穿透:SIP协议需要实现NAT穿透,以支持用户在局域网或私有地址空间中创建通信会话。

3.需要额外的设备和软件:SIP协议需要额外的服务器和客户端软件,使得系统的复杂性增加。

二、RTP协议RTP(Real-time Transport Protocol)是一种实时传输协议,它被广泛应用于音视频通信系统中。

它通过UDP传输数据,提供实时性的传输服务。

RTP协议的应用场景包括:1.实时视频:RTP协议被广泛应用于实时视频系统中,例如监控、视频会议、视频直播等。

2.实时音频: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的原理及应用

RTP的原理及应用

RTP的原理及应用一、什么是RTPRTP(Real-time Transport Protocol)是一种用于在互联网上传输实时数据的协议。

它提供了一种标准化的方式来传输音频、视频和其他实时数据,以实现实时的交互性和连续性。

RTP通常用于音视频通信、流媒体传输和视频会议等应用场景。

二、RTP的原理RTP的原理基于对实时数据的分组和封装,以便在网络上进行传输。

下面是RTP的工作原理:1.数据分段:RTP将实时数据流分割为较小的数据段,称为RTP数据包。

每个RTP数据包包含一个头部和有效载荷。

2.标识和序列化:RTP为每个数据包分配一个唯一的标识符和一个序列号,以便接收端可以正确重组数据流。

序列号用于按顺序重组数据包。

3.时间戳:RTP在每个数据包上添加一个时间戳,以便接收端可以按正确的时间顺序播放数据。

4.数据头部:RTP数据包的头部包含了一些重要的信息,如有效载荷的类型(音频、视频等)、数据包的序列号、时间戳等。

5.封装和传输:RTP数据包使用UDP作为传输协议进行发送,UDP相比TCP具有更低的延迟,但也不保证数据包的到达顺序或可靠性。

三、RTP的应用RTP被广泛应用于实时音视频通信、流媒体传输和视频会议等场景。

下面是RTP的一些典型应用:1.音视频通信:RTP在音视频通信中扮演着重要的角色,如VoIP(Voice over IP)和视频电话通信。

RTP通过将音频和视频数据分割为小的数据包,并添加时间戳等元数据,实现了实时的音视频传输和同步播放。

2.流媒体传输:RTP也被广泛用于流媒体传输领域,如直播和点播。

通过将音视频数据分割为RTP数据包,可以有效地传输和播放媒体内容。

3.视频会议:RTP被广泛应用于视频会议系统中,实现多方参与的实时视频传输和音频协同。

RTP的分组和封装机制使得视频会议参与者能够实时接收和播放其他人的音视频数据。

4.视频监控:RTP可用于视频监控系统,传输和播放实时的监控视频数据。

SIP与RTP协议在VoIP通信中的信令与媒体传输分析

SIP与RTP协议在VoIP通信中的信令与媒体传输分析

SIP与RTP协议在VoIP通信中的信令与媒体传输分析随着科技的不断发展,语音通信方式已经发生了翻天覆地的变化。

传统的电话网络正在被VoIP(Voice over Internet Protocol)通信所取代。

VoIP利用互联网传输语音数据,使得通信更加便捷高效。

在VoIP通信中,SIP(Session Initiation Protocol)和RTP(Real-time Transport Protocol)协议扮演着关键的角色。

本文将对SIP与RTP协议在VoIP通信中的信令与媒体传输进行分析。

1. SIP协议的信令分析SIP协议是一种建立、维护和终止多媒体会话的信令协议。

它使用电子信箱式的通信方式,类似于HTTP协议。

SIP协议主要负责处理呼叫的建立、保持和终止过程。

在VoIP通信中,SIP协议承担着信令传输的任务。

SIP协议的信令包含了一系列的消息,如INVITE、ACK、BYE等。

通信双方通过发送这些消息进行会话的建立和终止。

SIP消息中包含了呼叫相关的信息,如呼叫发起方和接收方的地址、媒体类型等。

通过分析SIP协议的信令消息,可以了解呼叫的流程和参数。

2. RTP协议的媒体传输分析RTP协议是一种传输实时数据的协议,如音频和视频。

RTP负责将数据分割成小的数据包,并在网络上传输。

在VoIP通信中,RTP协议用于传输语音数据。

RTP协议将语音数据划分成小的数据块,并为每个数据块添加了序列号和时间戳等信息。

这些信息可以保证数据在传输过程中的顺序和时序的准确性。

RTP还提供了丢失包检测和恢复机制,确保语音数据的可靠传输。

通过对RTP协议数据包的分析,可以了解语音数据在传输过程中的质量情况,如延迟、抖动等。

这对于优化语音通信的质量非常重要。

3. SIP与RTP协议的配合SIP和RTP协议在VoIP通信中密切配合,共同完成语音通信的建立、传输和终止。

首先,SIP协议负责呼叫的建立过程。

当一个通信请求发起时,SIP协议负责发送INVITE消息到目标终端。

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

RTP协议分析第1章. RTP概述1.1. RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。

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

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

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

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

1.2. RTP的应用环境RTP用于在单播或多播网络中传送实时数据。

它们典型的应用场合有如下几个。

简单的多播音频会议。

语音通信通过一个多播地址和一对端口来实现。

一个用于音频数据(RTP),另一个用于控制包(RTCP)。

音频和视频会议。

如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。

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

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

翻译器和混合器。

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

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

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

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

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

1.3. 相关概念1.3.1. 流媒体流媒体是指Internet上使用流式传输技术的连续时基媒体。

当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输两种方式。

下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。

在视频直播等应用场合,由于生成整个媒体文件要等直播结束,也就是用户至少要在直播结束后才能看到直播节目,所以用下载方式不能实现直播。

流式传输是实现流媒体的关键技术。

使用流式传输可以边下载边观看流媒体节目。

由于Internet是基于分组传输的,所以接收端收到的数据包往往有延迟和乱序(流式传输构建在UDP上)。

要实现流式传输,就是要从降低延迟和恢复数据包时序入手。

在发送端,为降低延迟,往往对传输数据进行预处理(降低质量和高效压缩)。

在接收端为了恢复时序,采用了接收缓冲;而为了实现媒体的流畅播放,则采用了播放缓冲。

使用接收缓冲,可以将接收到的数据包缓存起来,然后根据数据包的封装信息(如包序号和时戳等),将乱序的包重新排序,最后将重新排序了的数据包放入播放缓冲播放。

为什么需要播放缓冲呢?容易想到,由于网络不可能很理想,并且对数据包排序需要处理时耗,我们得到排序好的数据包的时间间隔是不等的。

如果不用播放缓冲,那么播放节目会很卡,这叫时延抖动。

相反,使用播放缓冲,在开始播放时,花费几十秒钟先将播放缓冲填满(例如PPLIVE),可以有效地消除时延抖动,从而在不太损失实时性的前提下实现流媒体的顺畅播放。

到目前为止,Internet 上使用较多的流式视频格式主要有以下三种:RealNetworks 公司的RealMedia ,Apple 公司的QuickTime 以及Microsoft 公司的Advanced Streaming Format (ASF) 。

上面在谈接收缓冲时,说到了流媒体数据包的封装信息(包序号和时戳等),这在后面的RTP封装中会有体现。

另外,RealMedia这些流式媒体格式只是编解码有不同,但对于RTP 来说,它们都是待封装传输的流媒体数据而没有什么不同。

第2章. RTP详解2.1. RTP的协议层次2.1.1. 传输层的子层RTP(实时传输协议),顾名思义它是用来提供实时传输的,因而可以看成是传输层的一个子层。

图1给出了流媒体应用中的一个典型的协议体系结构。

图 1 流媒体体系结构从图中可以看出,RTP被划分在传输层,它建立在UDP上。

同UDP协议一样,为了实现其实时传输功能,RTP也有固定的封装形式。

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

服务质量由RTCP来提供。

这些特点,在第4章可以看到。

2.1.2. 应用层的一部分不少人也把RTP归为应用层的一部分,这是从应用开发者的角度来说的。

操作系统中的TCP/IP等协议栈所提供的是我们最常用的服务,而RTP的实现还是要靠开发者自己。

因此从开发的角度来说,RTP的实现和应用层协议的实现没不同,所以可将RTP看成应用层协议。

RTP实现者在发送RTP数据时,需先将数据封装成RTP包,而在接收到RTP数据包,需要将数据从RTP包中提取出来。

2.2. RTP的封装一个协议的封装是为了满足协议的功能需求的。

从前面提出的功能需求,可以推测出RTP封装中应该有同步源和时戳等字段,但更为完整的封装是什么样子呢?请看图2。

图 2 RTP的头部格式版本号(V):2比特,用来标志使用的RTP版本。

填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含附加的填充字节。

扩展位(X):1比特,如果该位置位的话,RTP固定头部后面就跟有一个扩展头部。

CSRC计数器(CC):4比特,含有固定头部后面跟着的CSRC的数目。

标记位(M):1比特,该位的解释由配置文档(Profile)来承担.载荷类型(PT):7比特,标识了RTP载荷的类型。

序列号(SN):16比特,发送方在每发送完一个RTP包后就将该域的值增加1,接收方可以由该域检测包的丢失及恢复包序列。

序列号的初始值是随机的。

时间戳:32比特,记录了该包中数据的第一个字节的采样时刻。

在一次会话开始时,时间戳初始化成一个初始值。

即使在没有信号发送时,时间戳的数值也要随时间而不断地增加(时间在流逝嘛)。

时间戳是去除抖动和实现同步不可缺少的。

同步源标识符(SSRC):32比特,同步源就是指RTP包流的来源。

在同一个RTP会话中不能有两个相同的SSRC值。

该标识符是随机选取的RFC1889推荐了MD5随机算法。

贡献源列表(CSRC List):0~15项,每项32比特,用来标志对一个RTP混合器产生的新包有贡献的所有RTP包的源。

由混合器将这些有贡献的SSRC标识符插入表中。

SSRC标识符都被列出来,以便接收端能正确指出交谈双方的身份。

2.3. RTCP的封装RTP需要RTCP为其服务质量提供保证,因此下面介绍一下RTCP的相关知识。

RTCP的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。

在RTP会话期间,各参与者周期性地传送RTCP包。

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

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

从图1可以看到,RTCP也是用UDP来传送的,但RTCP封装的仅仅是一些控制信息,因而分组很短,所以可以将多个RTCP分组封装在一个UDP包中。

RTCP有如下五种分组类型。

表 1 RTCP的5种分组类型上述五种分组的封装大同小异,下面只讲述SR类型,而其它类型请参考RFC3550。

发送端报告分组SR(Sender Report)用来使发送端以多播方式向所有接收端报告发送情况。

SR分组的主要内容有:相应的RTP流的SSRC,RTP流中最新产生的RTP分组的时间戳和NTP,RTP流包含的分组数,RTP流包含的字节数。

SR包的封装如图3所示。

图 3 RTCP头部的格式版本(V):同RTP包头域。

填充(P):同RTP包头域。

接收报告计数器(RC):5比特,该SR包中的接收报告块的数目,可以为零。

包类型(PT):8比特,SR包是200。

长度域(Length):16比特,其中存放的是该SR包以32比特为单位的总长度减一。

同步源(SSRC):SR包发送者的同步源标识符。

与对应RTP包中的SSRC一样。

NTP Timestamp(Network time protocol)SR包发送时的绝对时间值。

NTP的作用是同步不同的RTP媒体流。

RTP Timestamp:与NTP时间戳对应,与RTP数据包中的RTP时间戳具有相同的单位和随机初始值。

Sender’s packet count:从开始发送包到产生这个SR包这段时间里,发送者发送的RTP 数据包的总数. SSRC改变时,这个域清零。

Sender`s octet count:从开始发送包到产生这个SR包这段时间里,发送者发送的净荷数据的总字节数(不包括头部和填充)。

发送者改变其SSRC时,这个域要清零。

同步源n的SSRC标识符:该报告块中包含的是从该源接收到的包的统计信息。

丢失率(Fraction Lost):表明从上一个SR或RR包发出以来从同步源n(SSRC_n)来的RTP 数据包的丢失率。

累计的包丢失数目:从开始接收到SSRC_n的包到发送SR,从SSRC_n传过来的RTP数据包的丢失总数。

收到的扩展最大序列号:从SSRC_n收到的RTP数据包中最大的序列号,接收抖动(Interarrival jitter):RTP数据包接受时间的统计方差估计上次SR时间戳(Last SR,LSR):取最近从SSRC_n收到的SR包中的NTP时间戳的中间32比特。

如果目前还没收到SR包,则该域清零。

上次SR以来的延时(Delay since last SR,DLSR):上次从SSRC_n收到SR包到发送本报告的延时。

2.4. RTP的会话过程当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。

目的传输地址由一个网络地址和一对端口组成,有两个端口:一个给RTP包,一个给RTCP包,使得RTP/RTCP 数据能够正确发送。

RTP数据发向偶数的UDP端口,而对应的控制信号RTCP数据发向相邻的奇数UDP端口(偶数的UDP端口+1),这样就构成一个UDP端口对。

RTP的发送过程如下,接收过程则相反。

1) RTP协议从上层接收流媒体信息码流(如H.263),封装成RTP数据包;RTCP从上层接收控制信息,封装成RTCP控制包。

相关文档
最新文档