實時傳輸協議

实时传输协议

互联网术语
实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。国际电信联盟ITU-T也发布了自己的RTP文档,作为H.225.0,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了。它作为因特网标准在RFC 3550(该文档的旧版本是RFC 1889)有详细说明。RFC 3551(STD 65,旧版本是RFC 1890)详细描述了使用最小控制的音频和视频会议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是创建在UDP协议上的。需要强调的是,RTP并不提供任何机制来确保数据的及时交付,或者提供其他QoS保证。RTP不能保证分组的交付或防止分组的失序交付。RTP封装后的分组仅为端系统所见,路由器不区分携带RTP分组的IP数据报和不携带RTP分组的IP数据报。RTP借助于UDP进行传输时,端口号是在1025~65535范围内选择一个未使用的偶数端口号,而在同一次会话中RTCP则使用下一个奇数端口号。RTP和RTCP的默认端口号为5004和5005[1]。
  • 中文名:实时传输协议
  • 外文名:Real-time Transport Protocol
  • 应用领域:互联网
  • 组成:两个紧密链接部分
  • 简称:RTP
  • 报文格式:报头和有效载荷

特征

实时传输协议(RTP)为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。

应用程序通常在UDP上运行RTP以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是RTP可以与其它适合的底层网络或传输协议一起使用。如果底层网络提供组播方式,那么RTP可以使用该组播表传输数据到多个目的地。

RTP本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于底层服务去实现这一过程。RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。

RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。

RTP由两个紧密链接部分组成:

RTP----传送具有实时属性的数据;

组成

RTP标准定义了两个子协议,RTP和RTCP。

数据传输协议RTP,用于实时传输数据。

该协议提供的信息包括:时间戳(用于同步)、序列号(用于丢包和重排序检测)、以及负载格式(用于说明数据的编码格式)。

控制协议RTCP,用于QoS反馈和同步媒体流。相对于RTP来说,RTCP所占的带宽非常小,通常只有5%。

使用

RTP使用偶数端口号接收发送数据,相应的RTCP则使用相邻的下一位奇数端口号。RTP提供抖动补偿和数据无序到达检测的机制。由于IP网络的传输特性,数据的无序到达是很常见的。RTP允许数据通过IP组播的方式传送到多个目的地。RTP被认为是在IP网络中传输音频和视频的基本标准。RTP通常配合模板和负载格式使用。对于实时多媒体流应用,及时传送信息是首要目标,为达到目标可以忍受部分丢包。

例如,在音频应用中的一个丢包,可能导致损失音频数据中的一秒内容,这个很容易通过合适的隐藏算法掩盖过去,从而不被人注意。由于TCP更注重可靠性而不是及时性,在RTP应用中很少使用。取而代之,大部分RTP实施是基于UDP的。

每一个多媒体流会建立一个RTP会话。一个会话包含带有RTP和RTCP端口号的IP地址。例如,音频和视频流使用分开的RTP会话,这样用户可以选择其中一个媒体流。形成会话的端口由其他协议(例如RTSP和SIP)来协商。RTP和RTCP使用UDP端口1024-65535

报文格式

RTP报文由两部分组成

报头和有效载荷。RTP报头格式其中:

lV

RTP协议的版本号,占2位,当前协议版本号为2。

lP

填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

lX

扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。

lCC

CSRC计数器,占4位,指示CSRC标识符的个数。

lM

标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

l同步信源(SSRC)标识符

占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

l特约信源(CSRC)标识符

每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

lPT

有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等。

l序列号

占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。

l时戳(Timestamp)

占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

V

时戳

同步信源(SSRC)标识符

P

X

CC

M

PT

序列号

V

特约信源(CSRC)标识符

···

P

X

CC

M

PT

序列号

RTP报头格式

这里的同步信源是指产生媒体流的信源,它通过RTP报头中的一个32位数字SSRC标识符来标识,而不依赖于网络地址,接收者将根据SSRC标识符来区分不同的信源,进行RTP报文的分组。特约信源是指当混合器接收到一个或多个同步信源的RTP报文后,经过混合处理产生一个新的组合RTP报文,并把混合器作为组合RTP报文的SSRC,而将原来所有的SSRC都作为CSRC传送给接收者,使接收者知道组成组合报文的各个SSRC。

RTCP概要

RTCP控制协议(RTCP)―监控服务质量并传送正在进行的会话参与者的相关信息。RTCP第二方面的功能对于“松散受控”会话是足够的,也就是说,在没有明确的成员控制和组织的情况下,它并不非得用来支持一个应用程序的所有控制通信请求。

封包结构

Ver.(2位元)是协定的版本号码。

P(1位元)是用于RTP封包(packet)结束点的预留空间,视封包是否需要多余的填塞空间。X(1位元)是否在使用延伸空间于封包之中。

CC(4位元)包含了CSRC数目用于修正标头(fixedheader)。

M(onebit)是用于应用等级以及其原型(profile)的定义。如果不为零表示资料有特别的程式解译。

PT(7bits)是指payload的格式并决定将如何去由应用程式加以解译。SSRC是同步化来源。

相关词条

相关搜索

其它词条