RFC: 1112
Оригинал: Host Extensions for IP Multicasting
Предыдущие версии: RFC 966, RFC 988, RFC 1054
Категория: Стандарт Интернета
Дата публикации:
Автор:
Перевод: Николай Малых

RFC 1112, Страница 13 из 15

Неформальное описание протокола

Multicast-маршрутизаторы передают сообщения Host Membership Query (запросы) для определения принадлежности к группам хостов подключенных к маршрутизатору сетей. Запросы адресуются группе all-hosts (224.0.0.1) и передаются со временем жизни IP TTL = 1.

Хосты отвечают на такие запросы сообщениями Host Membership Reports (отклики), сообщающие о каждой группе, в которую входит хост для сетевого интерфейса, через который поступил запрос. Для предотвращения одновременной передачи множества откликов используют два метода:

  1. При получении запроса хост вместо незамедлительной передачи отклика включает таймер для каждой группы, к которой он принадлежит на интерфейсе, через который был принят запрос. Для каждого таймера задается разное время (от 0 до D) с использованием генератора случайных чисел. Когда отсчет заданного времени заканчивается, для соответствующей группы генерируется отклик. Таким образом, отклики передаются в течение D вместо одновременной передачи откликов для всех групп.
  2. Отклики передаются с IP-адресом получателя, совпадающим с адресом группы хостов, к которой относится отчет, и временем жизни 1, поэтому отклик доступен всем членам группы. Если хост видит отчет для группы, в которую он входит, хост останавливает свой таймер для этой группы и не генерирует для нее отклика. Таким образом, в нормальной ситуации, для каждой группы генерируется только один отчет (хостом, на котором установлено минимальное значение таймера для данной группы). Отметим, что multicast-маршрутизаторы получают все групповые дейтаграммы IP и, следовательно, не требуется прямой адресации к таким маршрутизаторам. Отметим также, что маршрутизатору не требуется знать, какие хосты входят в группу — достаточно иметь информацию о присутствии в группе хотя бы одного хоста данной сети.

Существуют также два расширения описанных выше методов. Во-первых, если в момент получения запроса о принадлежности к группе таймер уже запущен, он не сбрасывается. Во-вторых, таймер для группы all-hosts (224.0.0.1) не используется и отчеты о принадлежности к этой группе не генерируются.

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

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

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

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

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

2007 - 2017 © Русские переводы RFC, IETF, ISOC.