RTP 与 RTCP 的区别

2025年3月17日 | 阅读 7 分钟

RTP 和 RTCP 这两个协议术语看起来相似,但它们之间存在各种区别。RTP 协议通过提供安全性、内容标识、丢失检测、定时重建等功能,为实时应用提供了传输能力。相比之下,RTCP 传输媒体连接统计信息和数据,例如已交付的数据包数量、延迟抖动、数据包错放、数据包延迟等。RTP 和 RTCP 协议之间根本的区别在于,RTP 协议仅提供了一种通过网络传输实时流量的方法。而 RTCP 协议则提供了通过 RTP 协议传输的数据的适当交付质量。

在本文中,您将了解 **RTP 和 RTCP** 之间的区别。但在讨论区别之前,您必须先了解 RTP 和 RTCP 及其功能。

什么是 RTP 协议?

RTP 是 **“实时传输协议”(Real-Time Transport Protocol)** 的缩写。它位于 OSI 网络模型的会话层和表示层。它通常用于实时应用程序,例如互联网广播、音乐点播、视频点播和使用 VOIP 的视频会议。它使用 UDP 协议而不是 TCP。因此,它不保证快速数据交付,并且缺乏多播和端口号等交付机制。它支持各种文件类型,例如 MPEG 和 MJPEG。它对数据包延迟非常敏感,但对数据包丢失的敏感度较低。

它由 **互联网工程任务组(IETF)** 的四名成员创建:**S. Casner(Packet Design)、V. Jacobson(Packet Design)、H. Schulzrinne(哥伦比亚大学)和 R. Frederick(Blue Coat Systems Inc.)**。它于 **1996** 年首次推出,被称为 **RFC 1889**。之后,它于 **2003** 年以 **RFC 3550** 的名称发布。

RTP 协议的工作原理

RTP 协议优先考虑音频和视频的连接和合并,而不是传输数据的完整性,这基于几个实际协议。TCP/IP 架构利用 UDP 协议作为其中之一。使用 UDP 协议封装 RTP 数据包存在一些限制,尤其是在错误纠正方面。因此,任何损坏或丢失的数据包都会被简单地丢弃。

UDP 数据包被传输到 IP,IP 再将其通过以太网链路发送出去。整个过程发生在发送端,而在接收端则发生相反的过程。最终,多媒体应用程序从 RTP 库中获取多媒体信息。

RTP 头部格式

RTP 的头部格式非常简单,并支持所有实时应用程序。RTP 头部由 32 位字组成,包含 Ver.、P、X、CC、M、Payload 类型、序列号、时间戳、同步源标识符和贡献源标识符等数据。它们如下所示:

1. 版本字段

它定义了协议版本。

2. 填充位

P 位指定了填充位,用于将数据包填充到 4 字节的倍数。

3. 扩展头部

该字段的长度也是 1 位。如果此字段的值为 1,则表示在数据和基本头部之间存在一个额外的扩展头部;如果值为 0,则没有额外的扩展。

4. 贡献源数量

此 4 位值表示贡献源的数量。由于 4 位字段可以接受 0 到 15 的数字,因此最大贡献源数量为 15。

5. 标记位

头部中的 M 定义了标记位,用于指示帧的开始和结束。

6. 有效载荷类型

此字段长 7 位,表示有效载荷的类型。您可以呈现一些流行的有效载荷应用程序类型。

7. 序列号

它指示已发送的 RTP 数据包的数量,每次发送一个数据包时,该值会增加一。

8. 时间戳

它具有 32 位的长度。它用于确定不同 RTP 数据包之间的时间关系。第一个数据包的时间戳是随机选择的,后续数据包的时间戳是通过将前一个时间戳加上生成当前数据包的第一个字节所需的时间来确定的。一个时钟滴答的值取决于应用程序。

9. 同步源标识符

它描述了数据包及其相关的流。

10. 贡献源标识符

它也是一个 32 位变量,用于在会话中存在多个源时进行源标识。混合器源由同步源标识符标识,而贡献者标识符标识其余源(最多 15 个)。

RTP 协议的特点

RTP 协议具有各种特性。RTP 协议的一些主要特性如下:

  1. RTP 支持 MPEG 和 MJPEG 等各种文件格式,但也可能包含一些其他格式。
  2. 它在终端系统上运行。
  3. RTP 数据特性还包括抖动校正、乱序到达检测和多媒体流。

什么是 RTCP?

RTCP 是 **“实时传输控制协议”(Real-time Transport Control Protocol)** 的缩写。它是 RTP 协议的对应协议,并与 RTP 一起进行描述。它是 RTP 协议的一个重要组成部分,为 RTP 提供控制功能,包括同步、反馈和用户界面(UI)。

RTCP 协议允许发送方和接收方交换一系列报告,包括有关正在发送的数据和网络性能的附加详细信息。RTCP 消息也包含在 UDP 数据包中进行传输,并且以比与其关联的 RTP 流端口号更高的协议号传输。

RTCP 协议中提供的反馈通过在网络正常运行时增加数据速率,在网络出现问题时降低数据速率来促进编码过程。有效载荷字段会告知目标编码算法正在协议中使用。

RTCP 数据包类型

RTCP 协议主要有五种数据包类型,包括 RR、SR、SDES、BYE 和 APP。它们如下:

1. SR(发送方报告)

在预定的时间间隔,活跃的发送方会发送一个发送方报告,以报告该时间段内发送的所有 RTP 数据包的传输和接收统计信息。发送方报告包含一个绝对时间戳,指示自 1970 年 1 月 1 日午夜以来经过的秒数。当接收方收到 RTP 数据包时,此绝对时间戳信息有助于同步过程。在确定相对时间戳的音视频传输中,它很复杂。

2. RR(接收方报告)

非活跃发送方负责创建接收方报告,其中包含数据交付接收质量的评论。它存储信息,例如收到的最大数据包编号、到达间隔抖动、丢失的数据包数量以及使用时间戳发送方和接收方之间的往返延迟。

3. SDES(源描述项)

源会按预定的时间间隔发送源描述消息,以提供有关其自身的其他信息。它包括源的身份、电子邮件地址、电话号码和源控制器等信息。

4. BYE 消息

要终止流,源会发送一个称为 BYE 消息的消息。源使用它来宣布其退出会议的意图。此消息直接告知其他源某个源的缺席。它可以用于合并多个媒体文件。

5. APP(应用程序特定消息)

它仅用于实验目的以及新兴的功能和特性。

RTP 和 RTCP 之间的主要区别

Difference between RTP and RTCP

RTP 和 RTCP 之间存在各种主要区别。RTP 和 RTCP 之间的一些主要区别如下:

  1. RTP 协议是发送实时应用程序数据的标准。相比之下,RTCP 也与 RTP 一起使用,以监控 QoS 和传输统计信息,以确保传输质量。
  2. RTCP 通常包含发送方和接收方的报告。相比之下,RTP 协议包含有效载荷类型、时间戳、序列号等信息。
  3. RTP 使用偶数端口号。相比之下,RTCP 协议使用奇数端口号。
  4. 在 RTP 中,源使用 32 位随机标识符进行标识。相比之下,RTCP 中使用的是全球唯一且人类可读的 ID。
  5. RTP 有助于构建互操作环境。另一方面,RTCP 协议通过生成反馈来调节数据交换性能。

RTP 和 RTCP 的详细比较

在这里,您将了解 RTP 和 RTCP 之间的详细比较。RTP 和 RTCP 之间的主要区别如下:

特点RTPRTCP
全称RTP 是实时传输协议(Real-Time Transport Protocol)的缩写。RTCP 是实时传输控制协议(Real-Time Transport Control Protocol)的缩写。
基本功能它主要用于存储媒体流。它主要用于监控传输统计和 QoS。
提供的功能它提供了互操作性。它通过生成反馈来调节数据交换性能。
端口它使用偶数端口号。它使用奇数端口号。
数据包包含它包含有效载荷类型、序列号、时间戳等。它包含发送方和接收方报告。
关系它定义了实时数据的数据包结构。它与 RTP 协同工作。
源标识它使用 32 位标识符。它使用文本信息。

结论

RTP 协议用于交换多媒体数据。另一方面,RTCP 协议是控制组件,用于收集有关数据流传输质量的常规反馈控制数据。


下一主题区别