В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681), страница 117
Текст из файла (страница 117)
Таким образом, необходим механизм, при помаши которого отдель ны11 хост информирует присоединенные к его сети маршрутизаторы о сва ем членстве в группе. + МаРшРУтизатаРы должны облтениватъсЯ инфоРмацией двУх типов, Во-„ вых, маршрутизаторы должны знать, какие подсети содержат членов дан ной группы. Во-вторых, маршрутизаторам требуется достаточный объем информации для определения кратчайшего пути к каждой сети, содержащей членов группы. Эти требования подразумевают наличие протокола марш рутизации.
+ Необходим алгоритм маршрутизации для вычисления кратчайших путей ко всем членам группы. + Каждый маршрутизатор должен определять маршруты групповой рассылки на основе адресов отправителя н получателя. Последний пункт является следствием использования групповых адресов. Чтобы проиллюстрировать этот пункт, вернемся к рис. 16.2. Если сервер груповой рассылки передает обычный пакет, адресованный хосту в сети 5, пакет маршрутизатором 1) переправляется маршрутизатору С, который затем переправляет его маршрутизатору Е. Аналогично, пакет, адресованный хосту в сети 3, маршрутизатором 1) переправляется маршрутизатору В. Теперь предположим, что сервер передает пакет с групповым адресом, который долткен быть доставлен хостам в сетях 3.
5 ти 6. Как уже говорилось ранее, маршрутизатор 1) создает две копни пакета и посылает одну копию маршрутизатору В, а другую — маршрутизатору С. Пока что все нормально. Но что будет делать маршрутизатор С, получив пакет с групповым адресом? Маршрутизатору С известно, что этот пакет предназначается для сетей 3, 5 и 6. Проще всего было бы вычисление маршрутизатором С кратчайших маршрутов к каждой нз этих трех сетей. В результате маршрутизатор С получи бы связующее дерево кратчайших путей, показанное на рис.
16А (как и ранее, символом Н обозначены сеттт, символом 1. — линии, символом К вЂ” маршрутизаторы). После этого маршрутизатор С посылал бы две копии пакета через глобальную сеть 4, одну в ссгь 5, а вторую в сеть 6. Но ему также нужно отправить копию пакета маршрутизатору В для доставки сети 3! Таким образом, маршрутизатор В получил бы две копии пакета: одну от маршрутизатора 1) и вторую от маршрутизатора С.
Ясно, что это не то, что предполагал хост из сети 1, отправляя пакет. Чтобы избежать ненужного дублирования пакетов, каждый маршрутизатор должен направлять пакеты, учитывая не только групповой адрес получателей, на и адрес отправителя. Когда маршрутизатор С получает пакет, направляемый методом групповой рассылки группе отправителем из сети 1, он должен рассчитать связующее дерево с корнем в сети 1 (см.
рис. 16.3, а) и выбрать маршрут на основе этого связуклцего дерева. В оставшейся части этого раздела изучаются трп важных протокола, относящиеся к групповой рассылке. Сначала мы рассмотрим протокол 1ОМР, позволяющий хосту присоединяться к группам н выходить из них. Затем мы изучим протокол МОВРГ, являющийся расширением обсуждавшегося в главе 15 протокола 05РГ и обеспечивающий маршрутизацию при групповой рассылке в пределах антона тономпой системы. Наконец, мы обсудим протокол Р1М, предназначенный для внутридоменной групповой рассылки.
рис. 16.4. Связующее дереве ет маршрутизатора С да группы рассылки Протокол!6МР Протокол 1ОМР (1пгегпег Огоцр Мападешеп1 Рго1асо1 — протокол управления группами в объединенных сетях), определенный в КГС 2236', используется хостами и маршрутизаторами для обмена информацией по локальной сети о членстве в группах. В протоколе 1ОМР используется широковещательная природа локальных сетей, обеспечивающая эффективный метод обмена информацией между хостами н маршрутизаторами. Формат сообщения протокола 1ОМР Все сообщения протокола 1ОМР посылаются в 1Р-дейтаграммах и имеют формат, показанный на рис.
16.5. Палее перечислены поля этих сообщений: + Тип. Существуют следующие четыре типа: Запрос а члвнсптве. Посылается маршрутизатором групповой рассылки. Имеется два подтипа: во-первых, общий запрос, позволяющий узнать, у каких групп есть члены в присоединенной к маршрутизатору сети; вовторых, запрос, касающийся конкретной группы и позволяющий узнатгь есть ли члены этой группы среди хостов сети, присоединенной к маршрутизатору. ь Обьявлвние о членстнвв.
Посылается хостом, чтобы объявить о своем членстве в группе. Выход из г)упяы. Посылается хостом, чтобы объявить о своем ныходе из группы. Максимальное время отклика. Имеет значение только в сообщении запроса о членстве. В нем указывается измеряемый в десятых долях секунды максимальный интервал времени, в течение которого должен быть послан ответ. ' цГС 2236, гяитпет цтеир Мк!гмая Рпюке!, тЬъюя 2, яеябрь 1997. 514 Глава 16. Протоколы внешней маршрутизации и групповая рассылка 16.2.
Групповая рассылка 515 + Контрольная сумма. Код обнаружения ошибок, вычисляемый как сум Умма четырех 16-разрядных слов сообшсния в дополнительном коде. Перец с, суммированием само поло контрольной суммы обнуляется. Тот жс алгори оритм используется в протоколе 1Р«4. + Групповой адрес. Ноль в запросе и действительный! Р-адрес группы в объяв ленни о члсистве или в извешении о выходе из группы. 16 Рис. 16.6. Формат сообщения ЮЫР«2 Функционирование протокола 1СМР Назначение протокола 1СМР состоит в том, чтобы каждый хост, использующий этот протокол, мог сообщить о своем членстве в группе другим хостам локальной сети и всем маршрутизаторам локальной ссги. Чтобы стать членом группы, хост посылает объявлспие о члсистве„в котором указывает адрес гр)шпы, Это сообщение отправляется в 1Р-дейтаграмме с тем жс групповым адресом получателя.
Другими словами, поле «Групповой адресь в сообщении 1СМР совпадает с полем «Адрес получателя» в заголовке 1Р-дейтаграммы. Это сообщение получат все хосты, являющиеся в данный момент членами группы, и узнают о появлении нового члсиа группы. Каждый маршрутизатор, присоединенный к данной локальной сети, должен «слугпатья все 1р-дейтаграммы, отправленные путем групповой рассылки, чтобы знать обо всех объявлениях.
Маршрутизатор групповой рассылки поддерживает список действительных па данный момент активных групповых адресов, для чего ои периодически рассылает общий запрос 1СМР, отправляемый в 1Р-дейтаграмме с групповым адресом, соответствующим всем хостам. Каждый хост, желающий оставаться членом одной или нескольких групп, должен читать дейтаграммы с групповым адресом всех хостов. Когда такой хост получает запрос, ои должен послать в ответ объявление о членстве в каждой группе, членом которой ои себя считает.
Обратите внимание иа то, что маршрутизатору групповой рассылки ве нужно знать идентификатор каждого хоста в группе. Достаточно знать, что существует хотя бы один все еще активный член группы. Поэтому каждый хост группы, получающий запрос, запускает таймер со случайным интервалом врсмепи. Любой хост, слышащий, как другой хост объявляет о своем членстве в группе, воздерживается от подачи собственного обьявлеиия. Если по истечении интервала ожидания никто пв передал объявления, то хост сам передает объявление.
При такой схеме маршрутизатору групповой рассылки отвечает только один из членов каждой группы. Покидая группу, хост посылает соответствующее сообщение, используя статический групповой адрес, охватывающий все маршрутизаторы. Получив такое сообщение„маршрутизатор сначала проверяет, относится ли зто сообщение к нему, то есть числится ли данная группа в его списке, и если да, то остались ли в этой группе е уппе еще члены. Для этого маршрутизатор использует специфический для даииой группы запрос.
Группы в протоколе 1Риб П токол ГСМР был разработан для взаимодействия с протоколом 1рч4. В исм Протокол используются 32-разрядиые адреса. Аналогичная схема адресации требуется для ра ты во боты в объединенных сетях по протоколу 1рчб. Вместо того чтобы разрабатывать отдельную версию протокола 1СМР для 1руб, его функции были встроены в протокол 1СМРчб (1пгегпе1 Сопгго! Меззайс Ргогосо!, Ъ'епйоп 6 — протокол управления сообщениями в объединенных сетях, версия 6). В протоколе 1СМРчб рсализоваиы все функции протоколов 1СМРч4 и 1СМР.
Для поддержки групповой рассылки в протокол 1СМРу6 включеиы сообщения с запросом членства в группе и объявлеиием о членстве в группе, используемые тем же самым образом, что и в протоколе 1СМР. К ним добавлена новое сообщение о завершении членства в группе, позволяющсе хосту обьявить о том, что он покидает группу.
Расширение протокола ОЗРИК для групповой рассылки Протокол МООРГ (Мц!цсазг САРà — протокол ОЯРГ для групповой рассылки) представляет собой расширение обсуждавшегося в главе 15 протокола САРГ (Ореп ЯЬогсезг Раса Г(гзг — первоочередное открытие кратчайших маршрутов), обеспечивающее маршрутизацию 1Р-дейтаграмм групповой рассылки. Протокол МОЗРГ предназначен для работы в пределах одной автономной системы'. Протокол МООРГ следусг стратегии, упоминавшейся в предыдущем обсуждеиии групповой рассылки в объединенных сетях.
Каждый присоединенный к локальной сети маршрутизатор используст протокол 1СМР для формирования картины членства в локальных группах Периодически каждый маршрутизатор путем лавинной маршрутизации рассылает информацию о членстве в локальных группах всем остальиыл1 маршрутизаторам в дапиой области. В результате все маршрутизаторы в данной области могут составить детальное представление обо всех членах всех групп. С помощью алгоритма Дейкстры каждый маршрутизатор создаст связующее дерево кратчайших путей от сети-источника до всех остей, содсржаших членов групп.