Вы не делаете это со своим приложением.
IGMP
- это протокол уровня Интернета, он может даже не достичь вашего приложения.
Всякий раз, когда устройство хочет получить многоадресную рассылку на определенный адрес, оно отправляет IGMP
запрос на присоединение к группе. Маршрутизатор получает запрос и запоминает, что этот пользователь хочет принадлежать к этой группе.
Всякий раз, когда маршрутизатор получает пакет многоадресной рассылки, предназначенный для этого адреса, он направляет его всем членам группы, возможно, с учетом некоторых ограничений управления доступом.
Вся групповая манипуляция выполняется маршрутизаторами. Вы просто отправляете свои UDP
пакеты по адресу многоадресной рассылки (то есть 224/4
), и маршрутизаторы решают, следует ли направить его абоненту.
Если вы хотите ограничить пункты назначения, куда отправляются ваши многоадресные пакеты, вы делаете это на маршрутизаторах.
Однако следует понимать, что слово «маршруты» выше означает, что маршрутизатор отправляет пакет в индивидуальный интерфейс с адресом назначения многоадресной рассылки в заголовке Ethernet
и адресом назначения многоадресной рассылки в заголовке IP
, Коммутатор Ethernet, подключенный к интерфейсу, если таковой имеется, будет распределять пакет по всем активным портам. Поскольку он ничего не знает о маршрутизации через Интернет, он просто увидит бит широковещания / многоадресной рассылки, установленный в заголовке Ethernet
, и будет действовать соответственно.
Однако есть некоторые link layer
устройства (коммутаторы Ethernet), которые заглядывают в network layer
заголовки и ограничивают многоадресную рассылку для подписанных устройств. Это называется IGMP snooping
. Некоторые из них также могут контролировать доступ.