数字视频网络传输层协议的选择(2)
4、RTP协议适合实时视音频传输
RTP(Real-Time Transport Protocol)/RTCP(Real-Time Transport Control Protocol)是一种应用型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。它是由IETF(Internet Engineering Task Force)为视音频的实时传输而设计的传输协议。RTP协议位于UDP协议之上,在功能上独立于下面的传输层(UDP)和网络层,但不能单独作为一个层次存在,通常是利用低层的UDP协议对实时视音频数据进行组播(Multicast)或单播(Unicast),从而实现多点或单点视音频数据的传输。
UDP是一种无连接的数据报投递服务,虽然没有TCP那么可靠,并且无法保证实时视音频传输业务的服务质量(QoS),需要RTCP实时监控数据传输和服务质量,但是,由于UDP的传输延时低于TCP,能与音频和视频流很好地匹配。因此,在实际应用中,RTP/RTCP/UDP用于音视频媒体,而TCP用于数据和控制信令的传输。
RTP协议被设计成能够为某种特定的应用提供服务的一种协议。实际上,RTP协议的实现已经被融合到应用程序中来。RTP没有连接的概念,它既可以建立在面向连接的底层协议上,也可以建立在面向无连接的底层协议上,因此RTP协议对传输层是独立的。RTP协议一般由两个部分组成:数据报文部分(RTP报文)和控制报文部分(RTCP)。
RTP报文由报文头和数据部分组成。RTP头格式如图3所示,固定头报文头开始的12个字节出现在每个RTP包中,而CSRC标识列表仅出现在混合器插入时。

通过RTP报文头的结构我们注意到:RTP报文中没有一个“长度”字段,这是因为RTP把数据分段的任务交给了底层的协议UDP去处理了,由UDP协议进行数据的分段,再组成若干个UDP数据包进行传输。
RTP协议是用户携带具有实时特征的数据,与之作为配套的另一个协议是RTCP协议。RTCP是RTP的控制协议,它用于监视服务质量和正在进行的与会者会活上传递信息,它单独运行在底层协议上。根据协议规定,RTP和RTCP选用不同的网络端口号,RTP选择一个偶数位的端口号,而RTCP则选用下一个奇数位的端口号。RTCP是由接收方向发送的报文,它负责监视网络的服务质量、通信带宽以及网上传送的信息,并将这些信息发送给发送端。RTCP包周期性地向同一个组播网内的所有成员发送。
RTCP报文共有5类:SR(发送报告)、RR(接收报告)、SDES(源描述项)、(BYE表示标示)、APP(应用特定函数)。RTCP报文如图4所示。

RTCP的基本做法是周期性地向会话的所有参加者进行通信,采用和数据包分配传送的相同机制来发送控制包。和RTP协议相同,RTCP协议也要求下层协议提供复用手段(如,要UDP提供不同的端口号来实现复用)。RTCP的主要功能如下:
1、 数据传输的质量提供反馈,并提供QoS的检测
所有的接收方把它最近的接收情况报告给所有发送者,这些信息包括所接收到数据包的最大顺序号、丢失的包数、乱序包的数量以及用于估计传输时延的时间戳的信息。而这些信息反映了当前的网络状况,发送方在接收到这些信息后自动地调整它们的发送速率。
2、 提供不同媒体间的同步
例如,在视音频传输服务中,RTP源可能会有几种媒体(如视频和音频)需要传输,这些不同的媒体之间的同步需要依靠RTCP中包含的时钟信息和相关的RTP时间戳信息来进行同步。
3、 在会话的用户界面上显示会话参与者的标识
RTP报文中提供了SSRC字段来进行源标识,然而,进一步的会话参与者的描述是需要的。RTCP报文中的源描述(SEDS)提供了会话参与者的详尽描述,包括姓名、住址、E-mail等,主要是为会议电视提供更体贴的支持。当然,对于多视频服务器的组播模式也提供了很好的解决方案。
我们知道,视频流和音频流在时间轴上的连续性要求网络的实时传输及高带宽,同时又允许传输中存在一定的数据错误率及数据丢失率。由于RTP本身并不具有一种独立传输能力,它必须与低层网络协议结合才能完成数据的传输服务。又由于视频和音频在时间轴上的相关性不强,而数据的实时性要高于其可靠性,所以在UDP之上利用RTP/RTCP协议对媒体(视频和音频)流进行封装、打包和同步,可以使数字视音频信号的网络传输延时达到最小。
通过以上对RTP及RTCP报文的详尽分析,我们可以得到这样一个结论:与TCP协议相比较,RTP协议提供了一种更适合于实时视音频信息的传输机制。
5、结束语
如果接收端和发送端处于同一个局域网内,由于有充分的带宽保证,在满足视频传输的实时性方面,TCP也可以有比较好的表现,TCP和基于UDP的RTP的视频传输性能相差不大。由于在局域网内带宽不是主要矛盾,此时视频数据传输所表现出来的延时主要体现为处理延时,它是由处理机的处理能力以及采用的处理机制所决定的。这时,基于事件处理的多线程多缓冲区机制显得更胜一筹。但是当在广域网中进行视频数据传输时,此时的传输性能极大地取决于可用的带宽,由于TCP是面向连接的传输层协议,它的重传机制和拥塞控制机制,将使网络状况进一步恶化,从而带来灾难性的延时。同时,在这种网络环境下,通过TCP传输的视频数据,在接收端重建、回放时,断点非常明显,体现为明显的断断续续,传输的实时性和传输质量都无法保障。相对而言,采用RTP传输的视频数据的实时性和传输质量就要好得多。 (完)