RTP/RTCP和RTSP的关系整理

RTP 协议实际上是由实时传输协议RTP(Real-time Transport Protocol)和实时传输控制协议RTCP(Real-time Transport Control Protocol)两部分组成。RTP 协议基于多播或单播网络为用户提供连续媒体数据的实时传输服务;RTCP 协议是 RTP 协议的控制部分,用于实时监控数据传输质量,为系统提供拥塞控制和流控制。

RTP

(1)RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。需要发送的多媒体数据块(音、视频)经过压缩编码处理后,先送给RTP封装成为RTP分组(也可称为RTP报文),RTP分组再装入运输层的UDP用户数据报,然后再向下递交给IP层。

(2)实际上,RTP是一个协议框架,因为它只包含了实时应用的一些共同的功能,RTP自己并不对多媒体数据做任何处理,而只是向应用层提供一些附加的信息,让应用层知道该如何进行处理。

(3)看似是应用层协议的一部分。因为在应用程序的发送端,开发者必须编写RTP封装分组的程序代码,然后把RTP分组交给UDP套接字接口。在接收端,RTP分组通过UDP套接字接口进入应用层后,还要利用开发者编写的程序代码从RTP分组中把应用数据块提取出来。

但是其实是一个运输层协议,因为RTP封装了多媒体数据的程序块,并且由于RTP向多媒体应用程序提供了服务(如时间戳和序号),因此可以把RTP看作是在UDP之上的一个运输层子层的协议。

RTP/RTCP和RTSP的关系整理_第1张图片

(4)RTP需要注意的两点:a.RTP分组只包含RTP数据,控制由RTCP协议提供;b.RTP端口在1025~6553之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。但端口号5004和5005则分别用作RTP和RTCP的默认端口号。

(5)RTP 协议在RFC3550 中有详细介绍。每一个 RTP 数据包都由固定包头(Header )和载荷(Payload)两个部分组成,其中包头前12个字节的含义是固定的,而载荷则可以是音频或视频数据。RTP 固定包头的格式如图所示

RTP/RTCP和RTSP的关系整理_第2张图片

 

RTCP

(1)与RTP配合使用,主要功能:服务质量的监控与反馈、媒体间的同步(某个RTP发送的声音和图像的配合)、多播组中成员的标志。

(2)RTCP分组(报文)也使用UDP来传送,但RTCP并不对音频/视频数据进行封装。

(3)因为RTCP分组很短,因此可以把多个RTCP分组封装在一个UDP用户数据报中。

(4)RTCP 分组周期性地在网上传送,它带有发送端和接收端对服务质量的统计信息报告。

 

RTSP

(1)以客户服务器方式工作,是一个应用层的多媒体播放控制协议,使用户在播放从因特网上下载的实时数据时能够进行控制,如暂停、继续、快退、快进等。

(2)RTSP语法和操作与HTTP协议相似,但与HTTP不同的地方是RTSP是有状态的协议。RTSP记录客户机所处于的状态(初始化、播放或暂停)。

(3)RTSP控制分组既可以在TCP上传输,也可以在UDP上传输;RTSP没有定义音视频的压缩方案,也没有规定音视频在网络上传送时应如何封装在分组中;RTSP不规定音视频在媒体播放器中应该如何缓存。

RTSP和RTP/RTCP的关系:

RTP/RTCP和RTSP的关系整理_第3张图片

RTSP负责建立和控制会话、RTP负责传输多媒体数据、RTCP配合RTP做控制和流量统计。

你可能感兴趣的:(网络视频流传输)