Опубликован: 11.08.2008 | Уровень: специалист | Доступ: свободно
Лекция 7:

Межсетевой протокол управления группами (IGMP)

< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
Аннотация: Рассматривается протокол, который обеспечивает групповую передачу сообщений

Протокол IP может быть включен в два типа связи: одноадресная передача и групповая передача. Одноадресная передача — связь между одним передатчиком и одним приемником. Это непосредственная связь. Однако некоторые процессы иногда должны посылать то же самое сообщение большому количеству приемников одновременно. Это называется рассылка по многим адресам, которая является связью "один ко многим". Групповая передача имеет много приложений. Например, множество биржевых маклеров могут одновременно быть информированы относительно изменений в курсе акций, или туристические агенты могут быть информированы относительно отмены поездки. Некоторые другие приложения включают дистанционное обучение и видео по требованию.

Протокол управления группами Интернета (IGMP) — один из необходимых (но не достаточный, как мы увидим) протоколов, которые включаются в групповую передачу. IGMP взаимодействует с протоколом IP. Рисунок 7.1 показывает типы сообщений IGMP.

Групповое управление

Для того чтобы рассылать сообщения по многим адресам в Интернете, мы нуждаемся в маршрутизаторах, которые способны направлять пакеты, рассылаемые по многим адресам. Таблицы маршрутизации этих маршрутизаторов должны быть модифицированы с использованием одного из протоколов маршрутизации групповой передачи.

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

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

Сообщения IGMP

У IGMP существует две версии. Мы обсуждаем IGMPv2. IGMPv2 имеет три типа сообщений: запрос, отчет о членстве и сообщение об уходе. Есть два типа сообщений запроса, общий и специальный (рис. 7.1).

Типы сообщений IGMP

Рис. 7.1. Типы сообщений IGMP

Формат сообщения

Рисунок 7.2. показывает формат IGMP (версия 2) сообщения.

Формат сообщения IGMP

Рис. 7.2. Формат сообщения IGMP

Тип. Это поле на 8 бит определяет тип сообщения, как показано в таблице 7.1. Значения типов приведены и в шестнадцатеричной, и в двоичной системе обозначений.

Таблица 7.1. Поле типов IGMP
Тип Значение
Общий или специальный запрос 0x11 или 00010001
Отчет о членстве 0x16 или 00010110
Отчет о выходе из группы 0x17 или 00010111

Максимальное время ответа. Это поле на 8 бит определяет время, в пределах которого на запрос нужно ответить. Это значение — десятые доли секунды; например, если значение — 100, оно соответствует 10 с. Значение является отличным от нуля в сообщении запроса, оно установлено на ноль в других двух типах сообщения. Мы вскоре увидим его использование.

Контрольная сумма. Это поле на 16 бит, несущее контрольную сумму. Контрольная сумма вычислена по 8-байтовому сообщению.

Адрес группы. Значение этого поля — "0" для общего сообщения запроса. Значение определяет groupid (адрес групповой рассылки группы) в специальном запросе, сообщении членства и сообщениях ухода.

Операции IGMP

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

Для каждой группы есть один маршрутизатор, который работает в режиме распределения пакетов, предназначенных для этой группы. Это означает, что если есть три маршрутизатора групповой рассылки, подключенных к сети, их групповые идентификаторы (groupids) — единственные.

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

Объединение групп

Хост или маршрутизатор могут присоединиться к группе. Хост поддерживает список процессов, которые имеют членство в группе. Когда процесс хочет присоединиться к новой группе, он посылает свой запрос хосту. Хост добавляет имя процесса и имя требуемой группы к ее списку. Если это — первое вхождение для этой конкретной группы, хост посылает сообщение членства. Если это не первое вхождение, посылать это сообщение не надо, так как хост — уже член группы; он уже получает групповую рассылку для этой группы.

Маршрутизатор также обслуживает список групповых идентификаторов, который показывает членство для сетей, подключенных к каждому интерфейсу. Когда появляется новый интерес в группе для любого из этих интерфейсов, маршрутизатор отсылает сообщение членства. Другими словами, маршрутизатор здесь действует подобно хосту, но его список группы намного более широк, потому что он накапливает членов, которые соединены с его интерфейсами. Обратите внимание, что сообщение членства рассылают из всех интерфейсов, кроме того, от которого прибывает запрос.

Рисунок 7.3. показывает сообщение о членстве, посланное хостом или маршрутизатором.

Отчет о членстве

Рис. 7.3. Отчет о членстве

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

< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша