Действителен ли SSRC = 0 в заголовке пакета RTP? - PullRequest
0 голосов
/ 07 ноября 2019

Со ссылкой на RFC3550

Источник синхронизации (SSRC): источник потока пакетов RTP, идентифицируемый 32-битным числовым идентификатором SSRC, передаваемым в RTP. заголовок, чтобы не зависеть от сетевого адреса.

RFC утверждает, что SSRC является 32-битным числом. Итак, было бы приемлемо иметь SSRC ноль (SSRC = 0x00) в заголовке RTP?

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Все двоичные значения для 32 битов разрешены для SSRC от 0 до 2 ^ 32 -1. Но, как указано в RFC:

  1. SSRC ДОЛЖНО быть случайным значением;
  2. SSRC столкновение ДОЛЖНО быть обнаружено.

    SSRC : 32 бита Поле SSRC идентифицирует источник синхронизации. Этот идентификатор ДОЛЖЕН быть выбран случайным образом с намерением, чтобы никакие два источника синхронизации в одном и том же сеансе RTP не имели одинакового идентификатора SSRC.

  3. SSRC Распределение и использование идентификатора

    Идентификатор SSRC, переносимый в заголовке RTP и в различных полях пакетов RTCP, является случайным 32-разрядным числом, которое требуется дляглобально уникальный в рамках сеанса RTP. Крайне важно, чтобы номер выбирался с осторожностью, чтобы участники одной и той же сети или начинающие одновременно не могли выбрать один и тот же номер.

    Недостаточно использовать адрес локальной сети (например, адрес IPv4) для идентификатора, поскольку адрес может быть не уникальным. Поскольку трансляторы и микшеры RTP обеспечивают взаимодействие между несколькими сетями с разными адресными пространствами, шаблоны распределения адресов в двух пространствах могут привести к гораздо более высокой частоте коллизий, чем при случайном распределении.

    Несколько источников, работающих на одномhost также может конфликтовать.

    Также недостаточно получить идентификатор SSRC, просто вызвав random () без тщательной инициализации состояния.

0 голосов
/ 15 ноября 2019

Да, ноль является действительным значением SSRC и должно учитываться.

Если другая сторона последовательно использует 0 в качестве значения SSRC, ее энтропия может быть поставлена ​​под сомнение ( xkcd и Дилберта ). Как и во многих связанных с VoIP RFC, реализации существенно различаются в зависимости от того, где большинство программного обеспечения конечных точек (UAS, UAC и особенно B2BUA) должны приспосабливаться к отклонениям протокола. Подумайте о различных реализациях DTMF и менее совместимых приложениях.

...