没有合适的资源?快使用搜索试试~ 我知道了~
首页RTP(real-time transport protocol)实时传输协议
RTP(real-time transport protocol)实时传输协议
4星 · 超过85%的资源 需积分: 9 27 下载量 131 浏览量
更新于2023-03-03
评论 1
收藏 293KB PDF 举报
RTP实时传输协议,PDF格式,中文 本文描述RTP(real-time transport protocol),实时传输协议。RTP 在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP 没有为实时服务提供资源预留的功能,也不能保证 QoS。
资源详情
资源评论
资源推荐
- 1 -
RFC3550
RTP :实时应用程序传输协议
摘要
本文描述 RTP ( real-time transport protocol ),实时传输协议。 RTP 在多点传送(多播)或单点传送( 单
播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真 数
据。 RTP 没有为实时服务提供资源预留的功能,也不能保证 QoS (服务质量)。数据传输功能由一个控制协
议( RTCP )来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,该协议( RTCP )可以升级到大 型
的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。 RTP 和 RTCP 被设计成和下面的 传输层和网 络
层无关。协议支持 RTP 标准的转换器和混合器的使用。
本文的大多数内容和旧版的 RFC1889 相同。在线路里传输的数据包格式没有改变,唯一的改变是使用协议 的
规则和控制算法。为了最小化传输,发送 RTCP 数据包时超过了设定的速率,而在这时,很多的参与者同时
加入了一个会话,在这样的情况下,一个新加入到(用于计算的可升级的)计时器算法中的元素是最大的 改
变。
目录( Table of Contents )
1. 引言 ( Introduction )
1 1 术语( Terminology )
2 RTP 使用场景( RTP Use Scenarios )
2 1 简单多播音频会议( Simple Multicast Audio Conference )
2 2 音频和视频会议( Audio and Video Conference )
2 3 混频器和转换器( Mixers and Translators )
2 4 分层编码( Layered Encodings )
3 定义( Definitions )
4 字节序,校正和时间格式( Byte Order, Alignment, and Time Format )
5 RTP 数据传输协议( RTP Data Transfer Protocol )
5 1 RTP 固定头域( RTP Fixed Header Fields )
5 2 多路复用 RTP 会话( Multiplexing RTP Sessions )
5 3 RTP 头的配置文件详细变更( Profile-Specific Modifications to the RTP Header )
5 3 1 RTP 报头扩展( RTP Header Extension )
6 RTP 控制协议( RTP Control Protocol ) -- RTCP
6 1 RTCP 包格式( RTCP Packet Format )
6 2 RTCP 传输间隔( RTCP Transmission Interval )
6 2 1 维护会话成员数目( Maintaining the number of session members )
6 3 RTCP 包的发送与接收规则( RTCP Packet Send and Receive Rules )
6 3 1 计算 RTCP 传输间隔( Computing the RTCP Transmission Interval )
6 3 2 初始化( Initializ ation )
6 3 3 接收 RTP 或 RTCP (非 BYE) 包( Receiving an RTP or Non-BYE RTCP Packet )
6 3 4 接收 RTCP ( BYE )包( Receiving an RTCP BYE Packet )
6 3 5 SSRC 计时失效( Timing Out an SSRC )
6 3 6 关于传输计时器的到期( Expiration of Transmission Timer )
6 3 7 传输一个 BYE 包( Transmitting a BYE Packet )
6 3 8 更新 we_sent ( Updating we_sent )
6 3 9 分配源描述带宽( Allocation of Source Description Bandwidth )
6 4 发送方和接收方报告( Sender and Receiver Reports )
- 2 -
6 4 1 SR :发送方报告的 RTCP 包( SR: Sender report RTCP packet )
6 4 2 RR :接收方报告的 RTCP 包( RR: Receiver Report RTCP Packet )
6 4 3 扩展发送方和接收方报告( Extending the Sender and Receiver Reports )
6 4 4 分析发送方和接收方报告( Analyz ing Sender and Receiver Reports )
6 5 SDES :源描述 RTCP 包( SDES: Source description RTCP packet )
6 5 1 CNAME :规范终端标识符的 SDES 数据项 ( CNAME: Canonical End-Point Identifier
SDES Item )
6 5 2 NAME :用户名的 SDES 数据项( NAME: User name SDES item)
6 5 3 EMAIL: 电子邮件地址的 SDES 数据项( EMAIL: Electronic Mail Address SDES Item
)
6 5 4 PHONE :电话号码的 SDES 数据项( PHONE: Phone Number SDES Item )
6 5 5 LOC: 地理用户地址的 SDES 数据项( LOC: Geographic User Location SDES Item )
6 5 6 TOOL :应用程序或工具名字的 SDES 数据项( TOOL: Application or Tool Name SDES
Item )
6 5 7 NOTE :通知 / 状态的 SDES 数据项( NOTE: Notice/Status SDES Item )
6 5 8 PRIV: 私有扩展的 SDES 数据项( PRIV: Private Extensions SDES Item )
6 6 BYE : Goodbye RTCP 包( BYE: Goodbye RTCP packet )
6 7 APP: 定义应用程序的 RTCP 包( APP: Application-Defined RTCP Packet )
7 RTP 转换器和混频器( RTP Translators and Mixers )
7 1 概述( General Description )
7 2 在转换器中的 RTCP 数据处理( RTCP Processing in Translators )
7 3 在混频器中的 RTCP 数据处理( RTCP Processing in Mixers )
7 4 级联混频器( Cascaded Mixers )
8 SSRC 标识符的分配和使用( SSRC Identifier Allocation and Use )
8 1 冲突概率( Probability of Collision )
8 2 冲突解决和循环检测( Collision Resolution and Loop Detection )
8 3 在分层编码中使用( Use with Layered Encodings )
9 安全( Security )
9 1 机密性( Confidentiality )
9 2 身份验证和消息完整性( Authentication and Message Integrity )
10 拥塞控制( Congestion Control )
11 网络和传输协议之上的 RTP ( RTP over Network and Transport Protocols )
12 协议常量摘要( Summary of Protocol Constants )
12 1 RTCP 包类型( RTCP Packet Types )
12 2 SDES 类型( SDES Types )
13 RTP 概况和负载格式详细说明
( RTP Profiles and Payload Format Specifications )
14 安全考 虑 ( Security Considerations )
15 IANA 考 虑 ( IANA Considerations )
16 知识产权声明( Intellectual Property Rights Statement )
17 鸣谢( Acknowledgments )
附录 A 算法( Algorithms )
附录 A 1 RTP 数据头有效性检查( RTP Data Header Validity Checks )
附录 A 2 RTCP 数据头有效性检查( RTCP Header Validity Checks )
附录 A 3 确定 RTP 包预期数目和丢失数目( Determining Number of Packets Expected and Lost )
附录 A 4 生成 SDES RTCP 包( Generating RTCP SDES Packets )
附录 A 5 解析 RTCP SDES 包( Parsing RTCP SDES Packets )
- 3 -
附录 A 6 生成 32 位随机标识符( Generating a Random 32-bit Identifier
附录 A 7 计算 RTCP 传输间隔( Computing the RTCP Transmission Interval )
附录 A 8 估测两次到达间隔的抖动( Estimating the Interarrival Jitter )
附录 B 与 RFC1889 不同之外( Changes from RFC 1889 )
参考书目( References )
标准化引用( Normative References )
资料性引用( Informative References )
作者地址
完整的版权声明
1. 绪论
本文详细的介绍实时传输协议 RTP , RTP 提供带有实时特性的端对端数据传输服务,传输的数据如:交
互式的音频和视频。那些服务包括有效载荷类型定义,序列号,时间戳和传输监测控制。应用程序在 UDP 上
运行 RTP 来使用它的多路技术和 checksum 服务。 2 种协议都提供传输协议的部分功能。不过, RTP 可能被 其
他适当的下层网络和传输协议使用(见 11 节)。如果下层网络支持, RTP 支持数据使用多播分发机制转发 到
多个目的地。
注意 RTP 本身没有提供任何的机制来确保实时的传输或其他的服务质量保证, 而是由低层的服务来完
成。
它不保证传输或防止乱序传输,它不假定下层网络是否可靠,是否按顺序传送数据包。 RTP 包含的序列号允
许接受方重构发送方的数据包顺序,但序列号也用来确定一个数据包的正确位置,例如,在视频解码的时 候
不用按顺序的对数据包进行解码。
但是 RTP 原先的设计是用来满足多参与者的多媒体会议的需要,它没有限定于专门的应用。连续数据 的
储存,交互分布式仿真,动态标记,以及控制和测量应用程序也可能会适合使用 RTP 。
该文档定义 RTP ,由 2 个密切联系的部分组成:
○ 实时传输协议 RTP ,用于实时传输数据。
○ RTP 控制协议 RTCP ,用于监控服务质量和传达关于在一个正在进行的会议中的参与者的信息。后者 对
“ 宽松控制 ” 的会议可能已经足够,但是并没有必要去支持一个应用程序所有的通讯控制条件。这个功能 可
能充分的或者部分的被一个单独的会议控制协议所包含,这超过了本文档的范围。
RTP 表现了协议的一种新的类型,该类型由 Clark 和 Tennenhouse 提出 [10] ,遵循应用级( framing
)
框
架和( integrated layer processing )统一层处理的原则。就是说, RTP 被规定为可扩展的,用来提供一 个
专门的应用程序需要的信息, 并将会经常性的被归并到应用程序的处理中, 而不是作为一个单独的层被实
现。
RTP 只是一个故意不完成的协议框架。本文档详细说明那些功能,希望这些功能能够普遍贯穿于所有适合使
用 RTP 的应用程序。和常规的协议不同,额外的功能可能通过完善协议本身或者增加 一个可能需要分析的 选
项机制来增加, RTP 被规定为可以根据需要通过修改和 / 或增加操作, “ 剪裁 ” 到报头。具体的例子见 5.3 和
6.4.3 节。
因此,除了本文档, 用于专门应用程序的 RTP 完整的说明将还需要一个或者更多的同类文档(见 13 节
):
○ 一个框架(大致轮廓)的说明文档,该文档定义了一系列的有效载荷类型编码和它们与有效载荷格
式之间的映射(例如,媒体编码)。一个框架可能也定义了应用程序对 RTP 的一些扩展和修改,详细到一 个
专门的类。典型的情况,一个应用程序将在一个框架下运行。一个用于音频和视频数据的框架可以在同类
RFC3551[1] 文档里找到。
○ 有效载荷格式说明文档,该文档定义了一个像一个音频或者视频编码的特殊载荷,在 RTP 里是如何 被
传输的。
一个关于实时服务和算法如何实现的讨论和关于一些 RTP 设计结果的后台讨论能够在 [11] 中找到。
1.1 术语
在这个文档里的关键词 “ 一定要 ” , “ 一定不能 ” , “ 必需的 ” , “ 会 ” , “ 不会 ” , “ 应该 ” , “ 不
应该 ” , “ 推荐 ” , “ 可能 ” 和 “ 可选 ” 将会像在 BCP 14 ( Basic Control Program ,基本控制程序),
RFC2119[2] 里描述一样的解释。并指出适合 RTP 实现的需要的级别。
- 4 -
2. RTP 使用场景( RTP Use Scenarios )
2.1 简单多播音频会议( Simple Multicast Audio Conference )
2.2 音频和视频会议( Audio and Video Conference )
2.3 混频器和转换器( Mixers and Translators )
2.4 分层编码( Layered Encodings )
以下章节描述了用到 RTP 的一些方面。 所举例子用来说明 RTP 应用的基本操作, 但 RTP 的用途不限于
此。
在这些例子中, RTP 运行于 IP 和 UDP 之上,并且遵循 RFC3551 所描述的音频和视频的配置文件中的约定。
2.1 简单多播音频会议( Simple Multicast Audio Conference )
IETF 的一个工作组开会讨论最新协议草案时,使用 Internet 的 IP 多播服务来进行语音通讯。工作组 中
心分配到一个多播的组地址和一对端口。一个端口用于音频数据,另一个端口用于控制( RTCP )数据包。 该
地址和端口信息发布给预定的参与者。如果有私密性要求,则可用章节 9.1 中说明的方法,对数据和控制 包
进行加密,这时就需要生成和发布加密密钥。分配和发布机制的精确细节不在 RTP 的讨论范围之内。
每个与会者所使用的音频会议应用程序,都以小块形式(比方说持续20秒时间)来发送音频数据。 每
个音频数据块都前导 RTP 报头; RTP 报头和数据依次包含在 UDP 包里。 RTP 报头指明了各个包里音频编码的
类型(如 PCM,ADPCM,LPC ),这样发送方可以在会议过程中改变编码方式,以适应状况的变化,例如,要加
进一个低带宽接入的参与者,或是要应付网络拥塞。
Internet ,像其他的报文分组网络一样,偶而会丢失和重排包,造成时长不等的延迟。为弥补这个不
足,
RTP 报头里包含计时信息和一个序列号,允许接收方重建来自源的计时信息,比如前文例子中音频块以 20s
的间隔在扬声器中连续播放。会议中,对每个 RTP 包的源 , 单独地实施计时重建。序列号还被接收方用来评
估丢失包数目。
由于会议期间不断有工作组成员加入或离开,因此有必要知道任一时刻的实际参与者及他们接收音频 数
据的状况好坏。出于这个目的,会议中每个音频应用程序的实例,都在 RTCP (控制)端口上周期性地多播 一
个附加用户名的接收报告。接收报告指明了当前说话者被收听到的状况,可用于控制自适应性编码。除了 用
户名外,通过控制带宽限度,可以包含其他标识信息。一个站点在离开会议时发送 RTCP BYE 包(章节 6.5
) 。
2.2 音频和视频会议( Audio and Video Conference )
一个会议如果同时使用音频和视频媒体, 则二者传输时使用不同的 RTP 会话。 也就是说, 两种媒体中 R TP
包和 RTCP 包的传输,是使用两个不同的 UDP 端口对和(或)多播地址。在 RTP 层次,音频和视频会话没有
直接的耦合,下面这种情况除外:一个同时参加两个会话的参与者,在两个会话的 RTCP 包中,使用了相同
的规范名,这样两个会话就发生关联(耦合)了。
这样区隔开来的目的之一,是允许一些会议参与者只接受自己选择的单一媒体(或者音频,或者视频)
。
更进一步的说明在章节 5.2 给出。尽管两种媒体区 分 开来了,但通过两个会话 RTCP 包内载有的计时信息,
同源的音频与视频还是能够同步回放。
2.3 混频器和转换器( Mixers and Translators )
到目前为止,我们皆假设所有站点都收到相同格式的媒体数据。然而这并不总是行得通。考虑一下这 种
情况,一个地方的参与者只能低速接入会议,而其他大部分参与者都能享受高速连接。与其让强迫大家都 忍
受低带宽,不如在只能低速接入的地方,放置一个减质量音频编码的 RTP 层次的中继(称作混频器)。混 频
器将重新同步输入的音频包,重建发送方产生的 20ms 固定间隔,混频已重建过的音频流为单一的流,转换
音频编码为低带宽格式,最后通过低带宽连接转发数据包流( package stream) 。这些包可能被单播到一个
接收方,也可能多播到另 一个的地址而发给多个接收方。 RTP 报头为混频器提供了一种方法,使其能辨识出
对混频后的包有用的源,从而保证提供给接收方正确的说话者指示。
在音频会议中,一些预定参与者尽管有高带宽连接,但不能通过 IP 多播直接接入会议。例如,他们可
能位于一个不允许任何 IP 包通过的应用层防火墙后面。对这些站点,可能就不需要混频,而需要另一种称
为转换器的 RTP 层次中继。可以在防火墙两侧分别安装一个转换器,外侧转换器将所有多播包通过安全连 接
转入内侧转换器,内侧转换器再转发给内部网的一个多播组( multicast group) 。
- 5 -
混频器和转换器可以设计成用于各种目的。比如,一个视频混频器在测量多个不同视频流中各人的单 独
影像后,将它们组合成一个单一视频流来模拟群组场景。又如,在只用 IP/UDP 和只用 ST_II 的两个主机群
之间通过转换建立连接。再如,在没有重新同步或混频时,用 packet-by-packet 编码转换来自各个独立源
的视频流。混频器和转换器的操作细节见章节 7 。
2.4 分层编码( Layered Encodings )
为了匹配接收方的能力(容量)以及适应网络拥塞,多媒体应用程序应当能够调整其传输速率。许多 应
用实现把调适传输速率的责任放在源端。这种做法在多播传输中并不好,因为不同接收方对带宽存在着冲 突
性需求。 这经常导致最小公分母的场景, 网格中最小的管道支配了全部实况多媒体 “ 广播 ” 的质量和保真
度。
相反地,可以把分层编码和分层传输系统组合起来,从而把调适速率的责任放在接收端。在 IP 多播之
上的 RTP 上下文中,对一个横跨多个 RTP 会话(每个会话在独自多播组上开展)的分级表示信号 (a
hierarchically represented signal) ,源能够把它的分层( layers) 分割成条。 接收方仅需合并适当的 多
播组子集,就能适应异种网络和控制接收带宽。
RTP 分层编码的细节在章节 6.3.9 , 8.3 和 11 中给出。
3. 定义( definitions)
RTP 负载 ( RTP payload
)
:通过 RTP 传输的包中的数据,例如,音频样本或压缩好的视频数据。 负载 格
式与解释不在本文讨论范围。
RTP 包( RTP packet ) :一种数据包,其组成部分有:一个固定 RTP 报头,一个可能为空的作用源
( contributing sources )列表(见下文),以及 负载 数据。一些下层协议可能要求对 RTP 包的封装进行 定
义。一般地,下层协议的一个包包含一个 RTP 包,但若封装方法允许,也可包含数个 RTP 包(见章节 11
)。
RTCP 包( RTCP packet
)
:一种控制包,其组成部分有:一个类似 RTP 包的固定报头,后跟一个结构 化
的部分,该部分具体元素依不同 RTCP 包 的 类型而定。格式的定义见章节6。一般地,多个 RTCP 包将在一 个
下层协议的包中以合成 RTCP 包的形式传输;这依靠 RTCP 包的固定报头中的长度字段来实现。
端口( Port
) :
“ 传输协议用来在同一主机中区分不同目的地的一种抽象。 TCP/IP 协议使用正整数来 标
识不同端口。 ” [12] OSI 传输层使用的传输选择器( TSEL,the transport selectors )等同于这里的端口
。
RTP 需依靠低层协议提供的多种机制,如 “ 端口 ” 用以多路复用会话中的 RTP 和 RTCP 包。
传输地址 (Transport address) :是网络地址与端口的结合,用来标识一个传输层次的终端,例如一个
IP 地址与一个 UDP 端口。包是从源传输地址发送到目的传输地址。
RTP 媒体类型( RTP media type ):一个 RTP 媒体类型是一个单独 RTP 会话所载有的负载类型的集合。
RTP 配置文件把 RTP 媒体类型指派给 RTP 负载类型。
多媒体会话( Multimedia session ):在一个参与者公共 组 中,并发的 RTP 会话的集合。例如,一个 视
频会议(为多媒体会话)可能包含一个音频 RTP 会话和一个视频 RTP 会话。
RTP 会话( RTP session
)
:一群参与者通过 RTP 进行通信时所产生的关联。一个参与者可能同时参与 多
个 RTP 会话。在一个多媒体会话中,除非编码方式把多种媒体多路复用到一个单一数据流中,否则每种媒 体
都将使用各自的 RTCP 包,通过单独的 RTP 会话来传送。通过使用不同的目的传输地址对(一个网络地址加
上一对分别用于 RTP 和 RTCP 的端口,构成了一个传输地址对)来接收不同的会话,参与者能把多个 RTP 会
话区隔开来。单个 RTP 会话中的所有参与者,可能共享一个公用目的传输地址对,比如 IP 多播的情况;也
可能各自使用不同的目的传输地址对,比如个体单播网络 地址加上一个端口对。对于单播的情况,参与者 可
能使用相同端口对来收听其他所有参与者,也可能对来其他每个参与者使用不同的端口对来收听。
RTP 会话间相互区别的特征,在于每个 RTP 会话都维护一个用于 SSRC 标识符的独立完整的空间。 RTP 会
话所包含的参与者 组 ,由能接收 SSRC 标识符的参与者组成,这些 SSRC 标识符由 RTP (同步源或作用源)或
RTCP 中的任意参与者传递。例如,考虑下述情况,用单播 UDP 实现的三方会议,每方都用不同的端口对来 收
听其他两方。如果收到一方的数据,就只把 RTCP 反馈发送给那一方,则会议就相当于由三个单独的点到点
RTP 会话构成; 如果收到一方的数据, 却把 RTCP 反馈发送另两方, 则会议就是由一个多方( multi-party)R TP
会话构成。后者模拟了三方间进行 IP 多播通信时的行为。
RTP 框架允许上述规定发生变化,但一个特定的控制协议或者应用程序在设计时常常对变化作出约束。
剩余20页未读,继续阅读
lingwei1978
- 粉丝: 39
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3