Skip to main content

2. RTP使用场景 (RTP Use Scenarios)

以下部分介绍了RTP使用的一些方面。这些示例被选择用来说明使用RTP的应用程序的基本操作,而不是限制RTP的使用。在这些示例中,RTP通过IP和UDP进行传输,并遵循在配套的RFC 3551中指定的音频和视频配置文件中建立的约定。

2.1 简单的多播音频会议

IETF的一个工作组会议使用Internet的IP多播服务进行语音通信,讨论最新的协议文档。通过某种分配机制,工作组主席获得多播组地址和一对端口。一个端口用于音频数据,另一个端口用于控制(RTCP)报文。这些地址和端口信息被分发给预期的参与者。如果需要保密性,数据和控制报文可以根据第9.1节的规定进行加密,此时还必须生成和分发加密密钥。这些分配和分发机制的确切细节超出了RTP的范围。

每个会议参与者使用的音频会议应用程序会将音频数据以小块(例如20毫秒持续时间)发送。每个音频数据块之前都有一个RTP报头;RTP报头和数据又包含在一个UDP报文中。RTP报头指示了每个报文中包含的音频编码类型(例如PCM、ADPCM或LPC),以便发送方可以在会议期间更改编码,例如以适应通过低带宽链路连接的新参与者或对网络拥塞的指示做出反应。

与其他分组网络一样,Internet偶尔会丢失和重新排序数据包,并且以可变的延迟时间发送它们。为了应对这些损坏,RTP报头包含了时序信息和一个序列号,以允许接收者重构源产生的时序,因此在这个示例中,音频块以20毫秒的间隔持续播放出来。此时时序重构对会议中的每个RTP报文源单独执行。接收者也可以使用序列号来估计丢失的数据包数量。

由于在会议期间,工作组的成员加入和离开,因此了解任何时刻参与者的身份以及他们接收音频数据的情况是很有用的。为此,会议中的每个音频应用程序实例会定期在RTCP(控制)端口上多播一个接收报告和其用户的名称。接收报告指示当前发言者的接收情况,可以用于控制自适应编码。除了用户名之外,还可以包含其他标识信息,但受到控制带宽限制。当一个站点离开会议时,它发送RTCP BYE报文(第6.6节)。

2.2 音频和视频会议

如果在会议中同时使用音频和视频媒体,它们将作为单独的RTP会话传输。也就是说,分别为每个媒体使用两个不同的UDP端口对和/或多播地址传输单独的RTP和RTCP报文。在RTP级别上,音频会话和视频会话之间没有直接的耦合,除非同时参与两个会话的用户在两个会话的RTCP报文中使用相同的显著(规范)名称,以便可以关联这两个会话。

这种分离的一个原因是允许会议中的某些参与者选择只接收一个媒体。第5.2节给出了更详细的解释。尽管有分离,但是可以通过使用RTCP报文中携带的时序信息实现源的音频和视频的同步播放。

2.3 混音器和转换器

到目前为止,我们假设所有站点都希望以相同的格式接收媒体数据。然而,这可能并不总是合适的。考虑这样一种情况,即在一个区域中的参与者通过低速链路连接到享有高速网络访问权限的多数会议参与者。与其强迫每个人使用较低带宽、降低质量的音频编码,不如在接近低带宽区域附近放置一个称为混音器的RTP层中继。该混音器重新同步传入的音频数据包,重构发送方生成的持续20毫秒间隔,将这些重构的音频流混合到单个流中,将音频编码转换为较低的带宽,并将较低带宽的数据包流转发到低速链路。这些数据包可以单播到单个接收者,也可以在不同的地址上多播到多个接收者。RTP报头包括一种用于混音器识别对混合数据包有贡献的源的方式,以便在接收者处提供正确的发言者指示。

音频会议的一些预期参与者可能通过高带宽链路连接,但可能无法通过IP多播直接到达。例如,它们可能在一个应用级防火墙后面,不允许任何IP数据包通过。对于这些站点,混音可能是不必要的,此时可以使用称为转换器的另一种类型的RTP层中继。安装了两个转换器,一个位于防火墙的内部,一个位于防火墙的外部,外部的转换器通过安全连接将所有接收到的多播数据包传递给防火墙内部的转换器。防火墙内部的转换器再次将它们作为多播数据包发送到限制为站点内部网络的多播组。

混音器和转换器可以设计用于各种目的。一个例子是视频混音器,它将单独的视频流中的每个人的图像进行缩放,并将它们合成为一个视频流以模拟一个团体场景。其他的转换例子包括将只会说IP/UDP的一组主机与只会理解ST-II的一组主机连接起来,或者从不经过重新同步或混音的多个源的视频流的逐个数据包编码转换。混音器和转换器的操作细节在第7节中给出。

2.4 分层编码

多媒体应用程序应能够根据接收方的能力调整传输速率,以适应网络拥塞。许多实现将速率自适应的责任放在源头。这在多播传输中效果不好,因为异构接收者的带宽要求冲突。结果往往是一个最小公分母的情况,其中网络网状结构中最小的管道决定了整体实时多媒体传输的质量和保真度。

相反,可以通过将分层编码与分层传输系统结合使用,在接收方放置速率自适应的责任。在IP多播上下文中,源可以将分层表示的逐层信号的渐进层分布在其自己的单独多播组上的多个RTP会话中。接收者然后可以通过仅加入适当的多播组子集来适应网络的异构性并控制接收带宽。

有关使用分层编码的RTP的详细信息,请参见第6.3.9节、第8.3节和第11节。