RTP标题由4个信息包标题域和其他域组成:有效载荷类型(payload type)域,顺序号(sequence number)域,时间戳(timestamp)域和同步源标识符(Synchronization Source Identifier)域等。RTP信息包的标题域的结构如下图所示:
Payload Type (有效载荷类型) | Sequence Number (顺序号) | Timestamp (时间戳) | Synchronization Source Identifier (同步源标识符) | Miscellaneous Fields (其他) |
1. 有效载荷类型
RTP信息包中的有效载荷域(Payload Type Field)的长度为7位,因此RTP可支持128种不同的有效载荷类型。对于声音流,这个域用来指示声音使用的编码类型,例如PCM、自适应增量调制或线性预测编码等等。如果发送端在会话或者广播的中途决定改变编码方法,发送端可通过这个域来通知接收端。表19-01列出了目前RTP所能支持的声音有效载荷类型。
有效载荷号 | 声音类型 | 采样率(kHz) | 数据率(kb/s) |
0 | PCM mu-law | 8 | 64 |
1 | 1016 | 8 | 4.8 |
2 | G.721 | 8 | 32 |
3 | GSM | 8 | 32 |
6 | DVI | 16 | 64 |
7 | LPC | 8 | 2.4 |
9 | G.722 | 8 | 48~64 |
14 | MPEG Audio | 90 | - |
15 | G.728 | 8 | 16 |
对电视流,有效载荷类型可以用来指示电视编码的类型,例如motion JPEG, MPEG-1,MPEG-2或者H.231等等。发送端也可以在会话或者期间随时改变电视的编码方法。表19-02列出了目前RTP所能支持的某些电视有效载荷类型。
有效载荷号 | 电视格式 |
26 | Motion JPEG |
28 | - |
31 | H.261 |
32 | MPEG-1 video |
33 | MPEG-2 video |
2. 顺序号
顺序号(Sequence Number Field)域的长度为16位。每发送一个RTP信息包顺序号就加1,接收端可以用它来检查信息包是否有丢失以及按顺序号处理信息包。例如,接收端的应用程序接收到一个RTP信息包流,这个RTP信息包在顺序号86和89之间有一个间隔,接收端就知道信息包87和88已经丢失,并且采取措施来处理丢失的数据。
3. 时间戳
时间戳(Timestamp)域的长度为32字节。它反映RTP数据信息包中第一个字节的采样时刻(时间)。接收端可以利用这个时间戳来去除由网络引起的信息包的抖动,并且在接收端为播放提供同步功能。
4. 同步源标识符
同步源标识符(Synchronization Source Identifier,SSRC)域的长度为32位。它用来标识RTP信息包流的起源,在RTP会话或者期间的每个信息包流都有一个清楚的SSRC。SSRC不是发送端的IP地址,而是在新的信息包流开始时源端随机分配的一个号码。