RTP: обнаружение коллизий SSRC в одноадресных сеансах

Из RFC 3550:

Если получатель обнаруживает конфликт двух других источников, он МОЖЕТ сохранить пакеты от одного и отбросить пакеты от другого, если это может быть обнаружено разными транспортными адресами источника или CNAME. Ожидается, что два источника разрешат конфликт, чтобы ситуация не длилась долго.

Как отправители могут обнаруживать коллизии SSRC в одноадресной конфигурации с одним получателем и двумя отправителями, которые обмениваются данными только с получателем?

Можно предположить, что получатель должен периодически отправлять все известные CNAME всем известным участникам (отправителям). Это правда? Но как в таком случае отправители будут ассоциировать полученный CNAME с транспортным адресом?

Обновление:

Как указано ниже, существует два отдельных сеанса RTP с отдельными пространствами SSRC, поэтому обнаружение коллизий не требуется.

Отличительной чертой сеанса RTP является то, что каждый из них поддерживает полное отдельное пространство идентификаторов SSRC.

И:

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

И даже есть пример описанной мной ситуации:

Например, рассмотрим трехстороннюю конференцию, реализованную с использованием одноадресной рассылки UDP, где каждый участник получает сообщения от двух других через отдельные пары портов. Если каждый участник отправляет отзыв RTCP о данных, полученных от одного другого участника, только обратно этому участнику, то конференция состоит из трех отдельных сеансов RTP "точка-точка".


person gavv    schedule 07.01.2014    source источник


Ответы (2)


Насколько я понимаю, это правило применимо только для многоадресной рассылки и/или зацикливания пакетов. С описанной вами настройкой (два отправителя уникастят одному получателю) они не знают друг друга и не имеют мер для обнаружения коллизии. Задача получателя разобраться с этой проблемой. Если получатель является медиапроцессором, он, скорее всего, будет действовать как конечная сторона, переформатирует поток и повторно отправит необходимое содержимое под своим собственным SSRC.

person Netch    schedule 07.01.2014
comment
Спасибо! Это действительно указано в определении сеанса RTP, но я пропустил это. - person gavv; 08.01.2014

Сообщение Goodbye может быть отправлено с соответствующим значением Reason.

См. http://www.ietf.org/rfc/rfc3550.txt @ 6.6 BYE. : До свидания, пакет RTCP

По традиции я видел значение «ssrc», используемое для обозначения изменения SSRC.

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

person Jay    schedule 07.06.2014