Skip to main content

13. RTP配置文件和有效载荷格式规范 (RTP Profiles and Payload Format Specifications)

完整的特定应用程序的RTP规范将需要一种或多种附属文件,描述如下:配置文件和负载格式规范。

RTP可以用于具有不同要求的各种应用程序。通过在主要协议规范中允许多个选择,然后在单独的配置文件文档中选择适当的选择或定义特定环境和应用程序类的扩展来提供适应这些要求的灵活性。通常情况下,一个应用程序在特定的RTP会话中只能运行在一个配置文件下,因此RTP协议本身没有明确指示正在使用的配置文件。音频和视频应用程序的配置文件可以在相应的RFC 3551中找到。配置文件通常被命名为“RTP Profile for ...”。

第二种类型的附属文件是负载格式规范,它定义了如何在RTP中传输特定类型的负载数据,例如H.261编码的视频。这些文件通常被命名为“RTP Payload Format for XYZ Audio/Video Encoding”。负载格式可能在多个配置文件下有用,因此可以独立于任何特定配置文件来定义。然后,配置文件文档负责将该格式默认映射到有效负载类型值(如果需要)。

在本规范中,已经鉴定了以下项目,以便在配置文件中可能进行定义,但这个列表不是详尽无遗的:

RTP数据头:配置文件可以重新定义RTP数据头中包含标记位和有效负载类型字段的八位字节,以适应不同的要求,例如具有更多或更少标记位(第5.3节,第18页)。

有效负载类型:假设包括有效负载类型字段,则配置文件通常会定义一组有效负载格式(例如,媒体编码)和这些格式到有效负载类型值的默认静态映射。某些有效负载格式可以通过引用单独的有效负载格式规范来进行定义。对于每个定义的有效负载类型,配置文件必须指定要使用的RTP时间戳时钟速率(第5.1节,第14页)。

RTP数据头附加项:如果在与有效负载类型无关的配置文件的应用程序类中需要额外的功能,则可以附加其他字段到固定的RTP数据头中(第5.3节,第18页)。

RTP数据头扩展:如果要在配置文件中允许使用该机制,则必须定义RTP数据头扩展结构的前16个位的内容,以允许实现特定的扩展(第5.3.1节,第18页)。

RTCP数据包类型:可以定义并向IANA注册新的应用程序特定RTCP数据包类型。

RTCP报告间隔:配置文件应该指定在计算RTCP报告间隔中使用的常量的值建议。这些常量是会话带宽的RTCP分数、最小报告间隔和发送器和接收器之间的带宽分配。如果已经证明以可扩展的方式工作,配置文件可以指定备用值。

SR/RR扩展:如果有关发件人或接收者应定期报告的其他信息,可以为RTCP SR和RR数据包定义扩展部分(第6.4.3节,第42和43页)。

SDES使用:配置文件可以指定要传输的RTCP SDES项的相对优先级或完全排除(第6.3.9节);CNAME项的备用语法或语义(第6.5.1节);LOC项的格式(第6.5.5节);NOTE项的语义和使用(第6.5.7节);或要在IANA注册的新的SDES项类型。

安全性:配置文件可以指定应用程序应该提供的安全服务和算法,并可以提供有关其适当使用的指导(第9节,第65页)。

字符串到密钥映射:配置文件可以指定用户提供的密码或密码短语如何映射到加密密钥。

拥塞:配置文件应该指定适用于该配置文件的拥塞控制行为。

底层协议:可能需要使用特定的底层网络或传输层协议来传输RTP数据包。

传输映射:可以指定RTP和RTCP到传输级地址(例如UDP端口)的映射,而不仅限于在第11节第68页中定义的标准映射。

可以预期不是每个应用程序都需要一个新的配置文件。在一个应用程序类中,最好扩展现有的配置文件,而不是创建一个新的配置文件,以便促进应用程序之间的互操作,因为每个应用程序通常只运行在一个配置文件下。可以通过通过IANA注册并将其描述发布在配置文件的附录或负载格式规范中来实现简单的扩展,例如增加更多有效负载类型值或RTCP数据包类型的定义。