利用RTP可提供大量的实时业务,特别是语声业务和视频业务。RTP主要应用于在Internet上传输对时延敏感的业务,使得这些业务的传输更具规律性和可预测性。
RTP可提供的功能包括:
打时截。在诸如Internet的分组网中,从发送端到接收端不同的时延通常导致到达目的地的分组“成堆”,也就是说,大量的分组儿乎一起到达,其间一会儿丢失分组,一会儿到达大量的分组,造成的结果就是时延抖动,从而达不到专用电路的传输质量。在专用电路中,数据以固定的时延到达。RTP通过一个32比特域来解决此问题:此域用于标识数据的时截值,并用-随机标识符产生第一个分组的时戳值。对后续的分组,按照已过去的“时钟滴塔”数以线性方式增加时截值。
尽管此法并不能保证数据按时到达,但是当此方案与接收端时延抖动缓冲区结合使用时,收到的数据至少能以发送端一样的相对分组时延馈入接收应用程序。接收端的时延缓冲区根据分组的时截值(由RTP发)对来得太快的分组加上一些附加时延,从而平滑数据发送。
编序列号。太多数分组交换网允许同一数据流的分组在网中沿不同路径传输,这样很可能会出现到达接收端的分组顺序与发送时的分组顺序不一致。为解决此问题,RTP给第一个分组分配一个随机序号,后续分组的序号按序递增。这样就允许接收端:(1)对收到的分组排序:(2)检测丢失的分组。尽管RTP并没有为丢失的分组提供重传机制(事实上,实时或接近实时的数据传送不允许重发),但是接收端至少知道语音流有间断期。
编序列号。太多数分组交换网允许同一数据流的分组在网中沿不同路径传输,这样很可能会出现到达接收端的分组顺序与发送时的分组顺序不一致。为解决此问题,RTP给第一个分组分配一个随机序号,后续分组的序号按序递增。这样就允许接收端:(1)对收到的分组排序:(2)检测丢失的分组。尽管RTP并没有为丢失的分组提供重传机制(事实上,实时或接近实时的数据传送不允许重发),但是接收端至少知道语音流有间断期。
发送监控。RTP可通过与它关系密切的RTCP向语音流的发送端提供有用的反馈信息。RTCP定义了发送端记录(SR)和接收端记录(RR)分组,这些记录分组所记录的情况包括:到达时延间隔的抖动、丢失分组数、传输的分组和字节总数,以及其他对诊断、监控和纠正网络错误等有用的数据。比如,当端到端时延增加或抖动加剧,以至影响到声音的保真度时,自适应编码器可能会产生即短又低质的分组。
负载标识。不仅对通过RTP传送的语音数据要用正确的顺序接收,而且要按编码方法对其进行解码,因此,RTP给每一个分组指配负载类型标识符以标识该分组所用的负载类型。RFC1890定义了语音和视频信息的负载类型(用于语音或视频的具体编解码方式),其他的负载类型可由IETF定义或动态地由软件定义。
ITU-T的RTP实现方案是将RTP和它所支持的应用层高度集成,而不是将其作为单独的协议层。因此,RTP更像支持应用程序所要求的功能的“协议顿”。协议顿头不支持的功能可由开发商自行增加,但这将引起多个供应商的互操作性问题。
RTP和RTCP分组都不包括复用信息,因此应没法区分不同的数据流、但接收端可能同时收到来自不同地方的多个语音数据分组,他必须要将其区别开,所以RTP分组被封装在UDP中,UDP本身封装在IP中。UDP是不可靠传输层协议,它提供了端口号标识,但没有纠正错误的能力。
H.323协议与SIP之间的斗争日趋激烈。H.323协议应用得较早,而SIP得到了许多强有力的IP团体的支持。然而限制VoIP发展的因素,既不是H.323协议,也不是SIP,而是VoIP的服务质量。