IGMP

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Содержание

[править] IGMP

Сообщения IGMP инкапсулируются в IP-пакеты с номером протокола 2, поле TTL равно 1. Так как TTL равно 1, то маршрутизаторы не передают пакеты IGMP.

[править] Querier

Querier -- это маршрутизатор, который отвечает за отправку multicast трафика в сегмент. Querier становится маршрутизатор у которого меньше IP-адрес.

Эта роль выбирается с помощью IGMP, так как могут использоваться различные протоколы маршрутизации multicast трафика. Если используются разные протоколы на маршрутизаторах, которые передают трафик в одну сеть, то маршрутизаторы не смогут обнаружить друг друга.

[править] Версии протокола

В IGMP версии 2 было добавлено сообщение Leave Group, которое позволяет маршрутизатору быстрее обнаружить отсутствие членов группы.

В IGMP версии 3 добавлена возможность указания списка источников. Это позволяет хосту указывать с каких адресов он хочет получать пакеты, а с каких нет.

[править] IGMPv1

[править] Формат сообщений IGMPv1

|       8       |       8       |       8       |       8       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Type  |     Unused    |           Checksum            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Group Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Отличия сообщений IGMPv1 от IGMPv2:

  • первый октет разбит на два поля Version и Type,
  • второй октет, в котором указывается Maximum Response Time в IGMPv2, не используется. Его значение 0x00.
  • в IP-заголовке не устанавливается опция IP Router Alert.

[править] IGMPv2

Маршрутизаторы, на которых включен IGMP, отправляют Query:

  • General Query -- отправляется на адрес 224.0.0.1 (все системы в подсети).
  • Group-Specific Query -- отправляется в ответ на полученное сообщение Leave от клиента, для того чтобы проверить есть ли ещё участники группы для которой было получено сообщение Leave. Так как сообщение может не дойти до участников группы и, как следствие, маршрутизатор перестанет передавать трафик в сеть, то отправляются два сообщения Group-Specific Query с интервалом 1 секунду.

[править] Формат сообщений IGMPv2

|       8       |       8       |       8       |       8       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Maximum    |           Checksum            |
|               | Response Time |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Group Address                          |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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

Так как сообщения IGMP не должны выходить за пределы сети, в которой они были сгенерированы, то поле TTL всегда установлено равным 1.

Кроме того, выставляется опция IP Router Alert, которая информирует маршрутизатор о том, что ему необходимо "более подробно анализировать этот пакет".

Поля сообщения IGMPv2:

  • Type — поле определяет тип сообщения, размер 8 бит. Типы сообщений в IGMPv2:
    • Membership Query (значение поля = 0x11) — используется маршрутизаторами для того чтобы определить наличие хостов, которые хотят получать групповую рассылку:
      • General Membership Query устанавливает значение поля Group Address в 0.0.0.0.
      • Group-Specific Query устанавливает значение поля Group Address равным адресу группы в которой отправляется запрос. Это сообщение отправляет маршрутизатор после того как он получает от хоста сообщение Leave Group. Оно используется для того чтобы определить остались ли хосты в этой группе.
    • Version 1 Membership Report (значение поля = 0x12) — используется хостами IGMPv2 для обратной совместимости с IGMPv1.
    • Version 2 Membership Report (значение поля = 0x16) — отправляется членом группы для того чтобы сообщить маршрутизатору, что в группе есть как минимум один хост.
    • Leave Group (значение поля = 0x17) — отправляется членом группы для того чтобы сообщить маршрутизатору, что хост покидает группу.
  • Maximum Response Time — это поле используется только в сообщениях Query, 8 бит. Единицы измерения 1/10 секунды, по умолчанию значение поля 100 (10 секунд). Диапазон значений от 1 до 255 (0.1 до 25.5 секунд).
  • Checksum — контрольная сумма вычисленная отправителем, 16 бит. Вычисляется контрольная сумма всего IP-пакета без учета заголовка.
  • Group Address — устанавливается равным 0.0.0.0 в сообщениях General Query и равным адресу групповой рассылки в сообщениях Group-Specific. В сообщениях Membership Report это группа трафик которой хост хочет получать, а в сообщениях Leave Group это адрес группы которую хост хочет покинуть.

[править] Таймеры протокола

Таймеры протокола (значения соответствуют RFC 2236):

  • Query Interval — интервал времени, который указывает частоту отправки сообщений Query. По умолчанию 125 секунд.
  • Query Response Interval — максимальное время ожидания ответа от хоста на отправку периодических общих Query. По умолчанию 10 секунд. Диапазон значений от 1 до 255 (0.1 до 25.5 секунд).
  • Group Membership Interval — интервал времени в течение которого маршрутизатор ожидает получения IGMP Report. Если он не был получен, то маршрутизатор считает, что в данной сети больше нет хостов, которые принадлежат группе. По умолчанию 260 секунд.
  • Other Querier Present Interval — если в течение этого временного интервала маршрутизатор, который не стал querier, не получает IGMP Query от querier, то он считает, что querier не доступен. По умолчанию 255 секунд.
  • Last Member Query Interval — интервал времени, который указывает частоту отправки Group-Specific Queries для одной и той же группы. По умолчанию 1 секунд.
  • Version 1 Router Present Timeout — интервал времени в течение которого IGMPv2-хост ожидает получения IGMPv1 Query, если сообщение получено не было, то хост считает, что в сети нет маршрутизатора IGMPv1 и начинает отправлять сообщения IGMPv2. По умолчанию 400 секунд.

[править] Совместимость с IGMPv1

[править] Querier

Маршрутизатор с наименьшим IP-адресом становится Querier.

[править] IGMPv3

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/IGMP»