没有合适的资源?快使用搜索试试~ 我知道了~
首页RFC1889-(RTP)-协议中文概要
资源详情
资源评论
资源推荐

RFC1889 协议
中文概要
简介
本 PPT 为计算机网络第 9 小组学习 RFC1889,即 RTP/RTCP 协议后深感流媒
体方面资料欠缺,英语文档对学习效率造成较大影响后,根据小组成员的学习
心得,由组长整理并翻译的原协议中文概要。希望能为将来学习流媒体相关知
识的同学提供一些帮助。
本 PPT 按原协议目录顺序编写,可对照学习,如有翻译和理解不当之处,
尽可见仁见智。
摘要
这份文档描述了 RTP 这份实时传输协议。RTP 提供了端到端的传输功能,
通过多播或单播的方式,适合于传输如音频、视频等实时数据。 RTP 并不保证
服务质量,也没有提供资源预留。传输的数据通过控制协议 RTCP 的补充来实
现乃至大规模多播传输方式下的监视功能。并通过 RTCP 提供一些控制和识别
流的功能。RTP 和 RTCP 被设计成独立于传输和网络层。这份协议支持使用
RTP 层的混流服务器(MIXER)和译流服务器(TRANSLATOR)。
1.介绍
RTP 通常和 UDP,同时也可以和其他协议共用来实现传输实时数据,如果
下层网络允许的话,支持目的地为多个地址的多播传输。
RTP 并不保证服务质量而主要靠下层协议的支持,所以每个包都有一个顺
序号使接受方能按序重建数据。
RTP 原先被设计用于多方参加的多媒体会议,但也可以用于如交互模拟等
其他应用。
对于特定的应用,RTP 协议是可扩展的。所以 RTP 协议只是一个框架,并
且有意被定义为如此。在实际应用时,RTP 协议的包头可以被修改来得到所需
的功能,而不是像传统协议那样靠不断修改并使其统一来变得更完善。
正因为上述原因,使用 RTP 协议时,一般需要两种伴随文档:
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 作为新的同步化源标识符。
译流服务器(TRANSLATOR):
有输入流,也有输出流,不改变输入流的 SSRC,这点与 MIXER 不同。举几
个例子:转换流的编码,但不混合输入流的程序;将多播转换为多个单播的程
序;应用层上的防火墙过滤器。
监控器(MONITOR):
通过接受网络上会话的参与者发送的 RTCP 控制包,做预测服务质量,诊断
错误原因等工作。可以由建立 RTP 会话的应用程序提供,也可能由第三方行使
此功能,如 ISP 服务商等。
非 RTP 方式(NON-RTP MEANS):
作为 RTP 的补充。在诸如分发会议多播 IP 和加密密钥时,可能用到其他协议
和机制。在 RTP 负载的类型未确定时,需要通过其他方式来传递 RTP 头中负载
类型标识和相应的负载类型规范文档的映射关系。
4.字节顺序
对齐方式
时间格式
字节顺序
所有的整数字节按所谓的“BIG-ENDIAN”顺序排列,即,高位字节权重大
对齐方式
按数据自身的长度对齐,无法对齐的地方以 0 填充。(请参看协议,此仅
为个人意见)
时间格式
时间的表示按照互联网时间协议(NETWORK TIME PROTOCOL),即 NTP
定义。
表示时间的变量类型为 64 位无符号长整数。将 1900 年 1 月 1 日 0 点作为原
点,以秒为单位,变量的前 32 位表示整数部分,后 32 位表示小数部分。
在有些格式中为了节省空间,仅用中间 32 位来表示时间,前 16 位为整数,
剩余15页未读,继续阅读








安全验证
文档复制为VIP权益,开通VIP直接复制

评论3