RFC-5285-RTP-Header-Extensions

本文概述了RFC-5285对RTP头部扩展的改进,解决了一包内扩展头数量限制和标识符冲突问题。通过定义URL命名的扩展元素和IANA注册表,实现了向后兼容的多头扩展,并介绍了one-byteheader和two-byteheader方式的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在RTC3550中提供了一种可扩展RTP头的能力。定义如下图,现有的报头扩展方法允许每个RTP分组最多有一个扩展,由16位标识符和16位长度字段标识,该字段以32位指定报头扩展的长度。
在这里插入图片描述
这种机制有两个弊端:第一在一个RTP包中只能提供一个扩展头,第二规范并没有给出如何分配16位头扩展标识符以避免冲突的指导。

本规范通过定义一种向后兼容和可扩展的方法来在单个RTP分组中携带多个报头扩展元素,从而消除了第一个缺点。通过定义这些扩展元素来消除第二个缺点,这些扩展元素使用URLs命名,在IETF中定义一个 IANA的注册表,使用SDP方法来映射注册表和标识符之间的对应关系。
于是在RFC-5285对头扩展进行了优化

扩展头

在这里插入图片描述

  • defined by profile:决定使用哪种Header Extension
    • one-byte header方式,defined by profile等于0xBEDE
    • two-byte header方式,defined by profile等于0x1000
  • length:表示Header Extension的长度:length x 4字节

One-Byte Header

如果是One-Byte Header方式封装,则defined by profile的值为0xBEDE。
每一个扩展项都是以1个字节的ID和长度开始,后面跟着具体的数据,如下图:
在这里插入图片描述

  • ID: 4bit 标示本地标示,有效范围为1-14
  • len: 4bit 标示长度范围:0~15,为0表示长度为1字节,15表示16字节

栗子

在这里插入图片描述

two-byte header

如果是two-byte header方式封装,则defined by profile的值为0x1000。
在这里插入图片描述
**appbits:**字段为4位,取决于应用程序,可定义为任何值或含义,不在本规范范围内。出于发信号的目的,此字段被视为分配给本地标识符256的特殊扩展值。如果未通过配置或发信号为此本地标识符256指定扩展,则发送方应将appbits字段设置为所有0,接收方必须忽略该字段。

后面每个扩展选项的定义如下:
在这里插入图片描述

主要是ID和length的长度的区别

栗子

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值