RFC1889 协议
中文概要
摘要
这份文档描述了 RTP 这份实时传输协议。 RTP 提供了端到端的传输功能, 通过 多播或者单播的方式, 适合于传输如音频、 视频等实时数据。 RTP 并不保证服务质 量, 也没有提供资源预留。 传输的数据通过控制协议 RTCP 的补充来实现乃至大 规模多播传输方式下的监视功能。并通过 RTCP 提供一些控制和识别流的功能。 RTP 和 RTCP 被设计成独立于传输和网络层。这份协议支持使用 RTP 层的混流 服务器(MIXER)和译流服务器(TRANSLATOR)。
1.介绍
RTP 通常和 UDP,同时也可以和其他协议共用来实现传输实时数据, 如果下层 网络允许的话,支持目的地为多个地址的多播传输。
RTP 原先被设计用于多方参加的多媒体味议,但也可以用于如交互摹拟等其他 应用。
对于特定的应用, RTP 协议是可扩展的。 所以 RTP 协议只是一个框架, 并且有 意被定义为如此。在实际应用时, RTP 协议的包头可以被修改来得到所需的功能, 而不是像传统协议那样靠不断修改并使其统一来变得更完善。
正因为上述原因,使用 RTP 协议时,普通需要两种伴有文档:
profile中文1.配置文档(profile specification document) 定义传输负载类型编码和与实际负载类型格式的对应关系。对于特定的应用, 还定义了对于 RTP 所应做的扩展和修改。
2.负载格式规范文档(payload format specification documents)
定义了特定格式编码的音、视频文件如何在 RTP 协议中传输。
2.一些 RTP 应用实例
2.1 简单的音频会议
通过 IP 多播方式建立的一个会议, 每一个参预者通过某些分配机制 (不在本协议 讨论范围中)得到一个组地址和 2 个端口号,一个端口号用来传送 RTP 数据, 即音频数据, 另一个用来传输 RTCP 控制数据。 如果需要加密,可根据本协议第
9 章内容生成密钥。
会议的每一个参预者每隔 20ms 发送一段音频数据,放在 RTP 包中。 RTP 包又通 过 UDP 包传输。 RTP 包头中定义了音频文件的编码方式,以便参预者改变自己 的编码方式以
适应网络传输(如编码质量低以适应低带宽传输)。
INTERNET 会产生丢包和延迟,所以RTP 包头中包含了时间信息和一个序号, 序号可以用来使接受方预测丢包的情况。
在本例中,由于会议不时有成员加入或者离开,所以每一个接受方会每隔一段时间 报告一次接受情况。 这个信息有可能被用来控制编码方式以适应带宽。 当某个成 员发出 BYE 的 RTCP 包时,该成员离开该会议。
2.2 音频、视频会议
音频、视频信息通过不同的 RTP 会话(session)传输,即二者是分开传输的。 同时对于每一个传输,都有 2 个端口用来传送 RTP 数据和 RTCP 控制信息。
这样做的目的是因为接受者可能由于带宽限制,只够接受音频数据,或者他只想 接受一种数据。在 5.2 中可得到这方面的详细信息。
2.3 混流服务器(MIXER)和 译流服务器(TRANSLATOR)
顾名思义,混流就是把多个进入的流信息混合输出为一个流,一个应用就是适 应不同带宽的需要。
译流服务器就是把入流经过转化变成另一种形式的流传出,一个应用是防火墙 有可能阻挠某些端口的 IP 包,而经过转换的IP 包可顺利通过。
混流服务器(MIXER)和译流服务器 (TRANSLATOR)在第 7 章中有详细介 绍,建议先阅读那部份文档以对其有个全面了解。
3. 定义
RTP 负载(RTP PAYLOAD):
RTP 包中传输的数据,比如音频数据和压缩了的视频数据。
RTP 包 (RTP PACKET):
由 RTP 包头(HEADER), 组成源服务器(CSRC)列表(见下)和传输数据构 成。普通来说一个下层协议如UDP 的包中仅包含一个 RTP 包,但也可以通过封
装方式包含几个 RTP 包。
RTCP 包(RTCP PACKET):
一个包含控制信息的包,同样由包头和后面结构化的数据组成,结构化的数 据根据 RTCP 包的类型不同而有所不同(详见第 6 章)。典型的, RTCP 包的传 输是把几个包放在一起组成一个下层协议的包来传输的。
端口 (PORT):
即传统意义上网络的端口。
传输地址(TRANSPORT ADDRESS):
由地址和端口号组成,如一个 IP 地址和 UDP 端口。数据由传送方地址传到 接收方地址。
RTP 会话 (RTP SESSION):
多个参预者通过 RTP 协议通信, 这就形成为了一个 RTP 会话。 对于每一个参预者 来说, RTP 会话被一个地址和一对端口号定义。 在多媒体味话中, 不同的流建立 不同的 RTP 会话(如:音频的会话,视频的会话)。每种不同的会话都有自己的 RTCP 包。不同的会话靠不同的传输地址来区分。
同步化源(SYNCHRONIZATION SOURCE):
即 SSRC,可理解为信号的源头,如一个麦克风输入或者一个摄像头输入,在整 个会话中有一个独一无二的标识符。 从它输出的信号都经过它的同步处理, 以使 接受方能实现对源的控制, 如回放功能。 若一个服务器有多个输入, 如多个摄像 头信号,那末每一个摄像头都有一个 SSRC 。SSRC 标识符靠 RTCP 绑定。
供流源(CONTRIBUTING SOURCE ):
即 CSRC,经由混流服务器(MIXER)输出的一个流通常由多个分流汇成,每 个分流都有一个供流源。 (详见第 8 章)
终端系统(END SYSTEM):
一个能产生(也可以接受)需要传输的RTP 包的进程。在一个会话中可以由 一个或者几个同步化源组成,但通常仅由一个组成。
混流服务器(MIXER):
从一个或者多个源接受信息,然后可能对数据类型作适当修改,混合接受流, 产生一个新数据流的实体。 从其产生的数据流的 SSRC 受到修改, 把混流服务器 的 SSRC 作为新的同步化源标识符。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论