Кратко
- RFC 5285, заменённый RFC 8285, называет число в элементе расширения локальным идентификатором. Формат и смысл задаёт URI, а
extmapсвязывает его с числом в области конкретного согласования. - Пакет, формат, карта, декодирование, действие и результат требуют отдельных квитанций. Последняя версия SDP не должна задним числом переименовывать старые пакеты.
В архиве инцидента лежали все RTP-пакеты. Расширение с ID 3 повторялось тысячи раз, и аналитика построила по нему график громкости. Ошибка обнаружилась лишь после восстановления offer и answer: в этой сессии число 3 было связано с URI временного смещения. Громкость использовала другой ID.
Байты пережили инцидент. Эпоха согласования — нет.
RFC 5285 позволил размещать несколько небольших элементов метаданных в одном поле расширения RTP. Полный URI в каждом пакете был бы дорогим, а вечная глобальная нумерация всех расширений — негибкой. Поэтому в быстром пути используется короткий индекс, а абсолютный URI точно определяет формат и значение. В SDP это оформляется строкой a=extmap:<значение> <URI>.
RFC 8285 заменил документ 2008 года. Он снял прежний запрет на чередование однобайтовой и двухбайтовой форм при согласованной поддержке и уточнил правила BUNDLE. Но локальный номер так и не стал глобальным именем.
IANA регистрирует URI, а не сессионную цифру
В реестре RTP Compact Header Extensions находятся URI для временного смещения, синхронизации, уровня аудио, MID, RID, маркировки кадров и других функций. Реестр даёт устойчивое имя и ссылку на спецификацию. Он не назначает этой функции число 3 во всех звонках.
Однобайтовая форма располагает идентификаторами 1–14. Двухбайтовая предоставляет больше пространства. Малое число эффективно именно потому, что отправляется часто и переиспользуется в разных областях.
Одна сессия вправе связать 3 с уровнем аудио, другая — со смещением времени. Объявления extmap могут действовать на уровне сессии либо медиараздела, но эти стили нельзя смешивать. Направление и дополнительные атрибуты тоже входят в определение.
Полная запись должна содержать не только ID и значение, но и медиараздел или группу BUNDLE, эпоху offer/answer, направление, URI и конфигурацию. Если карта отсутствует, правильный статус — «смысл не разрешён». Пакет всё ещё доказывает время, порядок, SSRC и исходные байты, но не название метаданных.
Синтаксис может быть верным при неверном словаре
Поле профиля показывает, использует ли пакет однобайтовую или двухбайтовую форму. Парсер способен проверить длину, границы, заполнение и выделить элемент. Это квитанция формата.
Затем ID ищется в карте, действовавшей в тот момент. Найденный URI выбирает специализированный декодер, который должен принять значение. Это уже семантическая квитанция. Сводить обе к флагу «обработано» опасно: структурно безупречный элемент может получить чужое имя.
Смешанный режим хорошо показывает границу. RFC 5285 требовал одной формы на весь поток. RFC 8285 разрешает чередовать формы между пакетами, если все получатели поддерживают это, обычно после согласования extmap-allow-mixed. Внутри одного пакета по-прежнему используется одна указанная форма.
Двухбайтовый пакет доказывает отправку, но не согласие получателя. Атрибут в offer доказывает предложение, но не answer и не реальное использование. Возможность, договорённость и событие — три разных факта.
Обновление создаёт новую эпоху, но не новое значение старого ID
Действующие идентификаторы должны быть уникальны в своей области. Обновление может добавить или удалить расширение, изменить направление, но не переназначить действующий ID другому URI. Иначе пакеты в полёте оказались бы между двумя словарями.
Для расследования это означает, что недостаточно сохранить конечный SDP. Каждое изменение образует эпоху с доказуемой точкой вступления. Старые пакеты читаются по старой карте, даже если к концу разговора набор расширений изменился.
Значения 4096–4351 используются в offer для взаимоисключающих вариантов или кандидатов, не помещающихся в действующий диапазон. Ответчик выбирает нужный и отображает его в свободный передаваемый ID. Само большое число не может быть ID элемента на проводе. Это пространство выбора, а не свидетельство работы.
Квалификатор inactive также отделяет поддержку от отправки. Наличие строки в SDP ещё не означает, что элемент появился в RTP. Согласование и наблюдение дополняют, но не заменяют друг друга.
BUNDLE объединяет транспорт и меняет область номеров
BUNDLE позволяет нескольким m=-разделам использовать один транспорт. MID помогает связать входящий поток с нужным медиаразделом; RFC 9143 требует включать это расширение в сгруппированных RTP-описаниях.
RFC 8285 рассматривает разделы одной группы BUNDLE как единое пространство локальных ID. Один и тот же URI с одной конфигурацией должен иметь одинаковый номер во всех членах, где он объявлен. Однако наборы расширений у членов могут различаться.
Одна таблица на весь сервер слишком широка. Полностью независимая таблица на каждый m= слишком узка. Архив должен хранить группу, членство, URI, конфигурацию и время действия. Если SFU переписывает расширения, нужны отдельные входная и выходная карты и запись преобразования.
RtpStreamId добавляет ещё одну область. RFC 8852 ограничивает RID источником и медиасессией, а при BUNDLE ещё и MID. Сначала локальный ID выбирает URI расширения RID, затем значение RID выбирает поток внутри собственного контекста. Одинаковое слово «идентификатор» не означает общей глобальной сущности.
Шифрование меняет наблюдаемость, а не факт существования
Метаданные расширений могут быть чувствительными. RFC 6904 предложил выборочное шифрование значений. RFC 9335 отметил, что даже ID и длины могут выдавать приложение или устройство, и определил Cryptex для защиты большей части структуры.
Если после включения защиты сетевая сонда перестала видеть уровень аудио, это не доказывает, что отправитель перестал его формировать. Сонда потеряла видимость открытого текста. Авторизованный получатель может расшифровать байты, но ему всё равно нужна правильная эпоха extmap.
Честная цепочка состоит из шести этапов: пакет получен; форма разобрана; карта найдена; значение декодировано по URI; компонент получил разрешение действовать; независимый сигнал измерил итог. Правильный уровень аудио не гарантирует правильный выбор говорящего, а правильный выбор не гарантирует хорошее качество при перегрузке сети.
RFC 5285 полезен своей сдержанностью. Он сделал метаданные дешёвыми на проводе, не объявив короткое число всемирной истиной. Система наблюдения должна сохранить это ограничение и добавлять новую квитанцию к каждому следующему выводу.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
