如RFC 8285所述,有关RTP扩展标头的结构的问题

时间:2020-01-08 15:04:53

标签: webrtc rtp rtcp

在处理RTP标头扩展的RFC 8285中,1字节标头扩展的结构如下所示(第4.2节):

  0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       0xBE    |    0xDE       |           length=3            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  ID   | L=0   |     data      |  ID   |  L=1  |   data...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ...data   |    0 (pad)    |    0 (pad)    |  ID   | L=3   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          data                                 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

我了解RFC中说明的OxBEDE。然后是“ length = 3”位,后面是实际的扩展名。每个扩展名都由ID和长度组成。为两字节报头扩展定义了类似的结构。

在两种类型的标题中,我都不理解“ length = 3”位部分。它只是用于32位边界的填充吗?如果是这样,这有什么目的?易于解析?为什么不让扩展元素在xBEDE之后立即启动。当然可以节省空间。 可能是我缺少一些基本知识。

1 个答案:

答案 0 :(得分:1)

这可能可以追溯到RFC 3550。像这样显式地指定长度字段,可使不了解扩展名的客户端更轻松地跳过它们。 还要注意,除非通过RFC 5285进行扩展(由8285更新),否则只能有一个扩展,因此您看到的是向后兼容性黑客。

相关问题