RTP:实时应用的传输协议
摘要
(1)本备忘录描述了实时传输协议RTP。RTP提供端到端网络传输功能,适用于通过多播或单播网络服务传输实时数据(如音频、视频或模拟数据)的应用程序。RTP不能解决资源预留问题,也不能保证实时服务的服务质量。数据传输通过控制协议(RTCP)来增强,以允许以可扩展到大型多播网络的方式监视数据传送,并提供最小的控制和识别功能。RTP和RTCP被设计成独立于底层传输层和网络层。该协议支持使用RTP级转换器和混频器。
(2)本备忘录的大部分内容与RFC1889完全相同,RFC1889已被废除。有线数据包格式没有任何变化,只改变了控制协议使用方式的规则和算法。最大的变化是对可伸缩计时器算法的增强,该算法用于计算何时发送RTCP数据包,以便在多个参与者同时加入会话时最小化超过预期速率的传输。
介绍
(1)本备忘录规定了实时传输协议(RTP),该协议为交互式音频和视频等具有实时特性的数据提供端到端传送服务。这些服务包括有效载荷类型识别、序列编号、时间戳和交付监控。应用程序通常在UDP之上运行RTP,以利用其多路复用和校验和服务;这两个协议都提供了传输协议功能的一部分。然而,RTP可与其它合适的底层网络或传输协议一起使用(参见第11节)。RTP支持使用多播分发(如果由底层网络提供)将数据传输到多个目的地。
(2)请注意,RTP本身没有提供任何机制来确保及时交付或提供其他服务质量保证,而是依赖于较低层的服务来做到这一点。它既不保证传递或防止无序传递,也不假定底层网络是可靠的并按顺序传递数据包。RTP中包括的序列号允许接收机重构发送方的分组序列,但是序列号也可以用于确定分组的适当位置,例如在视频解码中,而不必按顺序解码分组。
(3)虽然RTP主要是为了满足多人参与的多媒体会议的需要而设计的,但它并不局限于特定的应用。连续数据存储、交互式分布式仿真、活动徽章以及控制和测量应用程序也可能会发现RTP适用。
(4)本文件定义了RTP,由两个紧密相连的部分组成:
1)o实时传输协议(RTP),用于传输具有实时特性的数据。
2)o RTP控制协议(RTCP),用于监控服务质量,并在正在进行的会话中传递有关参与者的信息。RTCP的后一个方面对于“松散控制”会话可能已经足够了,即没有明确的成员控制和设置,但它不一定要支持应用程序的所有控制通信需求。此功能可以完全或部分包含在单独的会话控制协议中,这超出了本文档的范围。
(5)RTP代表了一种新型的协议,它遵循了Clark和Tennenhouse提出的应用层成帧和集成层处理的原则[10]。也就是说,RTP旨在提供特定应用程序所需的信息,并且通常被集成到应用程序处理中,而不是作为一个单独的层来实现。RTP是一个故意不完整的协议框架。本文档指定了RTP适用的所有应用程序的通用功能。与传统协议不同,在传统协议中,通过使协议更通用或通过添加需要解析的选项机制来容纳附加功能,RTP旨在通过根据需要修改和/或添加报头来定制。第5.3节和第6.4.3节给出了示例。
(6)因此,除本文件外,特定应用的完整RTP规范将需要一个或多个配套文件(见第13节):
1)o一份概要文件规范文件,其中定义了一组有效负载类型代码及其到有效负载格式的映射(例如,媒体编码)。概要文件还可以定义特定于特定应用程序类的对RTP的扩展或修改。通常一个应用程序只能在一个概要文件下运行。音频和视频数据的配置文件可以在配套的RFC 3551[1]中找到。
2)o有效负载格式规范文档,定义了如何在RTP中承载特定的有效负载,如音频或视频编码。
(7)关于实时服务及其实现算法的讨论,以及一些RTP设计决策的背景讨论,见[11]。
RTP 数据传输协议【RTP Data Transfer Protocol】
RTP 固定头字段【RTP Fixed Header Fields】
(RTP 标头具有以下格式)
150%放大图
200%放大图
100%原图