Протокол управления группами Интернета

редактировать
Протокол для установления членства в группах многоадресной рассылки в сетях IPv4

Протокол управления группами Интернета (IGMP ) - это протокол связи, используемый хостами и соседними маршрутизаторами в сетях IPv4 для установления членства в группах многоадресной рассылки. IGMP является неотъемлемой частью IP multicast и позволяет сети направлять многоадресные передачи только тем хостам, которые их запросили.

IGMP можно использовать для сетевых приложений «один ко многим», таких как онлайн потоковое видео и игры, и позволяет более эффективно использовать ресурсы при поддержке этих типов Приложения.

IGMP используется в сетях IPv4. Управление многоадресной рассылкой в ​​сетях IPv6 осуществляется с помощью Multicast Listener Discovery (MLD), который является частью ICMPv6 в отличие от инкапсуляции IP-адреса IGMP.

Содержание

  • 1 Архитектура
  • 2 Версии
  • 3 Сообщения
    • 3.1 Сообщения IGMPv2
    • 3.2 Запрос членства IGMPv3
  • 4 Реализации
  • 5 См. Также
  • 6 Примечания
  • 7 Ссылки

Архитектура

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

Базовая архитектура IGMP.png

IGMP работает между хостом и локальным маршрутизатором многоадресной рассылки. Коммутаторы с функцией отслеживания IGMP получают полезную информацию, наблюдая за этими транзакциями IGMP. Протокол независимой многоадресной рассылки (PIM) затем используется между локальным и удаленным многоадресными маршрутизаторами для направления многоадресного трафика от хостов, отправляющих многоадресные рассылки на хосты, которые зарегистрировались через IGMP для их приема.

IGMP работает на сетевом уровне точно так же, как и другие протоколы управления сетью, такие как ICMP.

. Протокол IGMP реализован на конкретном хосте и в пределах маршрутизатор. Хост запрашивает членство в группе через свой локальный маршрутизатор, в то время как маршрутизатор прослушивает эти запросы и периодически отправляет запросы подписки. Для выполнения этой функции запроса выбирается один маршрутизатор на подсеть. Некоторые многоуровневые коммутаторы включают функцию запросов IGMP, позволяющую их функциям отслеживания IGMP работать в отсутствие возможности многоадресной IP-рассылки в более крупной сети.

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

Версии

Существует три версии IGMP. IGMPv1 определяется RFC 1112, IGMPv2 определяется RFC 2236, а IGMPv3 изначально определяется RFC 3376 и был обновлен с помощью RFC 4604, который определяет как IGMPv3, так и MLDv2. IGMPv2 улучшает IGMPv1, добавляя возможность хосту сигнализировать о желании покинуть группу многоадресной рассылки. IGMPv3 улучшает IGMPv2, поддерживая многоадресную рассылку для конкретного источника и вводит агрегирование отчетов о членстве.

Эти версии обратно совместимы. Маршрутизатор, поддерживающий IGMPv3, может поддерживать клиентов, использующих IGMPv1, IGMPv2 и IGMPv3. IGMPv1 использует модель запрос-ответ. Запросы отправляются на 224.0.0.1. Отчеты о членстве отправляются на многоадресный адрес группы. IGMPv2 ускоряет процесс выхода из группы и регулирует другие таймауты. Сообщения о выходе из группы отправляются на 224.0.0.2. Представлен групповой запрос. Специфичные для группы запросы отправляются на групповой адрес многоадресной рассылки. Введены средства для выбора маршрутизаторами IGMP-запросчика для сети. IGMPv3 вводит возможность многоадресной передачи, зависящей от источника. Отчеты о членстве отправляются на 224.0.0.22.

Сообщения

Существует несколько типов IGMP-сообщений:

Общие запросы членства
Отправляются маршрутизаторами многоадресной рассылки для определения того, какие адреса многоадресной рассылки представляют интерес для систем, подключенных к сети, которые они служат для обновления состояния членства в группе для всех систем в своей сети.
Запросы членства в группе
Используются для определения состояния приема для конкретного адреса многоадресной передачи
Запросы, специфичные для группы и источника
Разрешить маршрутизатору определять, желают ли какие-либо системы получать сообщения, отправленные в группу многоадресной рассылки с адреса источника, указанного в списке адресов одноадресной рассылки
Отчеты о членстве
Отправляются получателями многоадресной рассылки в ответ на запрос о членстве или асинхронно при первой регистрации в группе многоадресной рассылки
Сообщения о выходе из группы
Отправляются получателями многоадресной рассылки, если указана многоадресная рассылка передача больше не требуется на приемнике

Сообщения IGMP передаются в чистых IP-пакетах с Номер IP-протокола 2. Подобно протоколу управляющих сообщений Интернета, для обмена сообщениями IGMP не используется транспортный уровень.

Сообщения IGMPv2

Структура пакета IGMPv2
битовое смещение0–78–1516–31
0ТипМаксимальное время ответаКонтрольная сумма
32Адрес группы

Где:

Тип
Указывает тип сообщения следующим образом: 124>Значения типа сообщения IGMPСообщениеЗначение типаЗапрос членства0x11Отчет о членстве IGMPv10x12Отчет о членстве IGMPv20x16Отчет о членстве IGMPv30x22Покинуть группу0x17
Максимальное время ответа
Определяет требуемую скорость отклика ответов на Запрос на членство (0x11). Это поле имеет значение только в запросе на членство; в других сообщениях он установлен в 0 и игнорируется получателем. В поле указывается время в единицах 0,1 секунды (значение поля 10 означает 1 секунду). Большие значения уменьшают пиковую скорость трафика IGMP, а меньшие значения улучшают реакцию протокола, когда последний хост покидает группу.
Group Address
Это адрес многоадресной рассылки, запрашиваемый при отправке группового или группового- и-исходный запрос. Поле обнуляется при отправке общего запроса.

Сообщение отправляется с использованием следующих IP-адресов назначения:

адрес назначения IGMPv2
Тип сообщенияМногоадресный адрес
Общий запросВсе хосты (224.0.0.1)
Групповой запросЗапрашиваемая группа
Отчет о членстве (все версии IGMP)Группа, о которой сообщается
Выйти из группыВсе маршрутизаторы (224.0.0.2)

Запрос членства IGMPv3

Запрос членства IGMPv3
смещение бит0–345–78–1516–31
0Тип = 0x11Максимальный код ответаКонтрольная сумма
32Адрес группы
64ResvSQRVQQICКоличество источников (N)
96Адрес источника [1]
128Адрес источника [2]
...
Адрес источника [N]

Где:

Max Resp Code
В этом поле указывается максимальное время (с шагом 1/10 секунды), разрешенное перед отправкой ответного отчета. Если число меньше 128, значение используется напрямую. Если значение равно 128 или более, оно интерпретируется как экспонента и мантисса.
Контрольная сумма
Это 16-битное дополнение суммы дополнений до единицы всего сообщения IGMP.
Адрес группы
Это адрес многоадресной рассылки, который запрашивается при отправке запроса для группы или для группы и источника. Поле обнуляется при отправке общего запроса.
Resv
Это поле зарезервировано. Он должен быть обнулен при отправке и игнорироваться при получении.
S (Подавить обработку на стороне маршрутизатора) Флаг
Когда этот флаг установлен, он указывает принимающим маршрутизаторам, что они должны подавить нормальную обработку. обновляется таймер.
QRV (переменная надежности запрашивающего)
Если она не равна нулю, она содержит значение переменной надежности, используемое отправителем запроса. Маршрутизаторам следует обновить свою переменную устойчивости, чтобы она соответствовала последнему полученному запросу, если только значение не равно нулю.
QQIC (код интервала запроса запрашивающего)
Этот код используется для указания значения интервала запроса (в секунд), используемый запросчиком. Если число меньше 128, значение используется напрямую. Если значение равно 128 или больше, оно интерпретируется как показатель степени и мантисса.
Количество источников (N)
В этом поле указывается количество адресов источника, присутствующих в запросе. Для общих запросов и запросов для групп это значение равно нулю. Для запросов, специфичных для группы и источника, это значение не равно нулю, но ограничено сетевым MTU.
Source Address [i]
Поля Source Address [i] являются вектор из n IP-адресов одноадресной рассылки, где n - значение в поле Number of Sources (N).

Реализации

FreeBSD, Linux и Windows операционные системы поддерживают IGMP на стороне хоста.

См. Также

Примечания

Ссылки

Последняя правка сделана 2021-05-24 04:58:41
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте