Вопрос по IP Multicasting? - PullRequest
       35

Вопрос по IP Multicasting?

2 голосов
/ 03 февраля 2009

Привет, я создаю потоковое приложение. в этом я использую IP Multicasting.

Подскажите, как проверить клиента перед добавлением его в группу.

это что-то, что я имею отношение к IGMP?

Ответы [ 3 ]

9 голосов
/ 03 февраля 2009

Вы не делаете это со своим приложением.

IGMP - это протокол уровня Интернета, он может даже не достичь вашего приложения.

Всякий раз, когда устройство хочет получить многоадресную рассылку на определенный адрес, оно отправляет IGMP запрос на присоединение к группе. Маршрутизатор получает запрос и запоминает, что этот пользователь хочет принадлежать к этой группе.

Всякий раз, когда маршрутизатор получает пакет многоадресной рассылки, предназначенный для этого адреса, он направляет его всем членам группы, возможно, с учетом некоторых ограничений управления доступом.

Вся групповая манипуляция выполняется маршрутизаторами. Вы просто отправляете свои UDP пакеты по адресу многоадресной рассылки (то есть 224/4), и маршрутизаторы решают, следует ли направить его абоненту.

Если вы хотите ограничить пункты назначения, куда отправляются ваши многоадресные пакеты, вы делаете это на маршрутизаторах.

Однако следует понимать, что слово «маршруты» выше означает, что маршрутизатор отправляет пакет в индивидуальный интерфейс с адресом назначения многоадресной рассылки в заголовке Ethernet и адресом назначения многоадресной рассылки в заголовке IP , Коммутатор Ethernet, подключенный к интерфейсу, если таковой имеется, будет распределять пакет по всем активным портам. Поскольку он ничего не знает о маршрутизации через Интернет, он просто увидит бит широковещания / многоадресной рассылки, установленный в заголовке Ethernet, и будет действовать соответственно.

Однако есть некоторые link layer устройства (коммутаторы Ethernet), которые заглядывают в network layer заголовки и ограничивают многоадресную рассылку для подписанных устройств. Это называется IGMP snooping. Некоторые из них также могут контролировать доступ.

1 голос
/ 04 февраля 2009

ОК, есть законная необходимость контролировать, кто может присоединиться к многоадресной группе. Единственный способ убедиться, что это делается, - фильтровать входящие IGMP-пакеты на интерфейсах маршрутизатора. Это сработало бы, если список «разрешенных подписчиков» достаточно статичен, но если изменений будет много, он быстро станет несостоятельным.

Если (и только если) есть административный контроль вплоть до «размещенного клиентом» маршрутизатора, я подозреваю, что там можно было бы что-то сделать, чтобы ограничить группы, которые видимо для устройства, но это сильно зависит от среды (в сценарии «Широкополосное и многоадресное видео от одного провайдера» может потребоваться договорное требование для использования управляемого DSL-маршрутизатора).

0 голосов
/ 03 февраля 2009

В дополнение к комментариям Quassnoi о том, как работает многоадресная рассылка, я должен задаться вопросом ... Почему вы хотите ограничить членство в многоадресной рассылке и / или проверить получателя перед его добавлением в группу?

...