Телекоммуникационные технологии.Сети TCP-IP

       

Протокол IGMP


Протокол IGMP (Internet Group Memebership Protocol) предназначен для регистрации на маршрутизаторе членов групп, находящихся в непосредственно присоединенных к нему сетях. Имея эту информацию, маршрутизатор может сообщать другим маршрутизаторам (с помощью протоколов групповой маршрутизации) о необходимости пересылки ему дейтаграмм для тех или иных групп. Современная версия протокола IGMP – версия 2 – документирована в RFC-2236.

IGMP работает непосредственно поверх протокола IP, и идентифицируется значением 2 в поле "Protocol" заголовка IP-дейтаграммы. За IP-заголовком в дейтаграмме следует сообщение IGMP:

Значения полей:

Type (8 бит) – тип сообщения.

Max Response Time (8 бит) – максимальное время отклика, задествовано только в сообщениях типа Membership Query.

Checksum (16 бит) – контрольная сумма.

Group Address (32 бита) – групповой IP-адрес.

Существуют следующие типы сообщений:

Membership Query (Type=17) – запрос о наличии в сети членов групп (отправляется маршрутизатором). Запросы обо всех имеющихся группах – общие запросы – отправляются по адресу 224.0.0.1 ("всем узлам"); запросы о наличии членов определенной группы – частные запросы – отправляются по адресу этой группы.

  • Membership Report (Type=22) – уведомление о наличии в сети члена группы (отправляется хостом – членом группы по адресу группы).

  • Leave Group (Type=23) – уведомление об отсоединении хоста от группы (отправляется отсоединившимся хостом по адресу 224.0.0.2 – "всем маршрутизаторам").

    Протокол функционирует следующим образом.

    Маршрутизатор при своем включении и далее периодически рассылает по адресу 224.0.0.1 общий запрос Membership Query, при этом поле "Group Address" обнулено. Период этих рассылок может меняться администратором; значение по умолчанию – 125 с. Приняв такой запрос, каждый получатель групповых дейтаграмм выжидает случайное время. Если за это время кто-то другой уже ответил сообщением Membership Report, то данный хост не отвечает, иначе он сам посылает такое сообщение. Значение поля "Max Response Time" в Membership Query указывает максимальное время, на которое хост может задержать Membership Report (обычно 10 с). Описанный подход используется, чтобы избежать посылки многочисленных ответов с адресом одной и той же группы: маршрутизатору не нужно знать, сколько именно членов данной группы есть у него в сети, ему требуется лишь сам факт их наличия.


    Сообщение Membership Report посылается по адресу группы, и этот же адрес помещается в поле "Group Address". Следует отметить, что маршрутизатор является членом всех групп, то есть получает сообщения, направленные на любой групповой адрес.

    Если хост является членом нескольких групп, то вышеописанная процедура с выжиданием и отправкой ответа выполняется независимо для каждой группы.

    При подключении хоста к новой группе он самостоятельно отправляет сообщение типа Membership Report, не дожидаясь очередного запроса от маршрутизатора.

    Для каждой группы, члены которой обнаружились в сети, маршрутизатор ведет отсчет времени неактивности. Если ни одного Membership Report для этой группы не было получено за определенный период (по умолчанию – 260 с), то маршрутизатор считает, что членов этой группы в сети больше нет.

    Когда хост отсоединяется от группы, он может послать сообщение Leave Group по групповому адресу 224.0.0.2 ("всем маршрутизаторам"); адрес группы содержится в поле "Group Address". Хосту следует сделать это, если на последний запрос Membership Query от имени данной группы отвечал именно этот хост. Получив сообщение Leave Group, маршрутизатор генерирует частный запрос Membership Query для членов только этой группы. Если за время, указанное в поле "Max Response Time" запроса (по умолчанию – 1 с), маршрутизатор не получил ни одного ответа Membership Report, он считает, что членов данной группы в сети больше нет. Для надежности запрос посылается 2 раза.

    Если к одной сети подключены несколько маршрутизаторов, поддерживающих протокол IGMP, то запросы рассылает только маршрутизатор с наименьшим IP-адресом (то есть, если маршрутизатор получил из сети Membership Query с IP-адресом отправителя меньшим, чем его собственный адрес, он должен перестать посылать запросы и перейти в режим прослушивания обмена IGMP-сообщениями).

    Для обратной совместимости с первой версией протокола IGMP предусмотрено сообщение Membership Report version 1 (Type=18), а также некоторые специальные действия при работе протокола. Подробнее об этом можно узнать в документе RFC-2236.


    Содержание раздела