Я пытаюсь использовать IGMP для своего NAVbus, как несколько подключенных к нему систем. Я отправляю посылку каждые 1/100сек. Первоначально я собирался использовать UDP, но хотел бы использовать многоадресную рассылку. Но эта сеть не подключена к маршрутизатору для выполнения задач IGMP. так как я использую однородную сеть (только Ubuntu), только cisco 2924xlen для моего коммутатора. Таким образом, это сводится к тому, есть ли способ, которым я могу использовать свою коробку NAVserver в качестве сервера IGMP? Спасибо
2 ответа
IGMP не является многоадресной заменой UDP. Скорее, как говорится в его названии ("Протокол управления группами"), это протокол управления многоадресной рассылкой, используемый для управления членством в группах для UDP (и других протоколов дейтаграмм).
Для получения многоадресных пакетов, предназначенных для определенной группы (будь то UDP или что-то еще), вы должны сначала отправить запрос IGMP "присоединиться к группе". Коммутаторы вдоль пути заметят, что ваш порт хочет подписаться на эту группу.
(Для отправки многоадресных пакетов это не требуется - вы можете просто отправлять обычные UDP-дейтаграммы на IP-адрес группы.)
Для многоадресной рассылки строго не требуется маршрутизатор - в небольшой сети, такой как ваша, большая часть будет обрабатываться коммутаторами (которые используют IGMP, чтобы запомнить, какие порты коммутатора подписаны на какие группы многоадресной рассылки).
Найдите в своей документации функции "IGMP snooping" и "IGMP querier".
Просто чтобы вы знали, UDP может использовать многоадресную рассылку. И IGMP использует голые IP-пакеты, то есть вам не нужен маршрутизатор для его работы. Любой тип сети, если он использует протокол IP, должен работать.