RTP和RTCP的区别
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、一个有效载荷类型、序列号、时间戳、同步源标识和贡献源标识。这些内容如下。
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协议的一些主要特点如下。
- RTP支持各种类型的文件格式,如MPEG和MJPEG,但也可能包括一些其他格式。
- 它在终端系统中运行。
- 抖动校正、检测失序到达和多媒体流也包括在RTP数据特征中。
什么是RTCP
RTCP 是 “实时传输控制协议 “ 的缩写 。 它是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.再见信息
为了终止一个信息流,信息源发送一个称为 “再见 “的消息。消息源用它来宣布他离开会议的意图。这个消息直接通知其他信息源,告诉他们一个信息源的缺席。它可以被用来合并几个媒体文件。
5.APP(特定应用信息)
它只是用于实验性目的和新出现的特性和功能。
RTP和RTCP的主要区别
RTP和RTCP 之间有各种关键区别 。 RTP和RTCP之间的一些关键区别如下。
- RTP协议是发送实时应用数据的标准。相比之下,RTCP也与RTP结合使用,用于监测保证传输的QoS和传输统计数据。
- RTCP通常包括发送方和接收方的报告。相比之下,RTP协议包含诸如有效载荷类型、时间戳、序列号等信息。
- RTP利用的是偶数端口号。与此相反,RTCP协议利用奇数端口号。
- 在RTP中,源是利用32位随机标识符来识别的。相比之下,在RTCP中利用的是人类也能理解的全球唯一的ID。
- RTP有助于发展一个可互操作的环境。另一方面,RTCP协议通过产生反馈来调节数据交换性能。
RTP和RTCP之间的正面比较
在这里,你将了解到RTP和RTCP之间的头对头比较。RTP和RTCP的主要区别如下。
特点 | RTP | RTCP |
---|---|---|
完整形式 | RTP是Real-Time Transport Protocol的缩写。 | RTCP是Real-Time Transport Control Protocol的缩写。 |
基本功能 | 它主要用于存储媒体流。 | 它主要用于监测传输统计和QoS。 |
提供的功能 | 它提供互操作性。 | 它通过产生反馈来调节数据交换性能。 |
端口 | 它利用偶数端口号。 | 它利用奇数端口号。 |
数据包包含 | 它包含有效载荷类型、序列号、时间戳等。 | 它包含发送方和接收方报告。 |
关系 | 它定义了实时数据的包结构。 | 它与RTP一起运作。 |
源识别 | 它利用了一个32位的标识符。 | 它利用的是文本信息。 |
总结
RTP协议被用来交换多媒体数据。另一方面,RTCP协议是控制组件,用于收集与数据流相关的传输质量的定期反馈控制数据。