Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 142
Текст из файла (страница 142)
Затем маршрутизатор принимает маршрут с кратчайшим расстоянием. Оценивающая функция не является частью протокола ВСР, так что системный администратор может использовать любую оценивающую функцию. Протокол ВСР легко разрешает проблему счета до бесконечности, от которой страдают остальные алгоритмы дистанционно-векторной маршрутизации. Предположим, выходит из строя маршрутизатор С илн линия ГС.
В этом случае маршрутизатор Е получит информацию о маршрутах от своих трех оставшихся сосе- 828 Глава 5. Сетевой уровень дей. Этими маршрутами будут ВСР, 7ЕССР и ЕЕССР. Второй и третий маршрут бесполезны для маршрутизатора Е, так как они сами проходят через маршрутизатор Е, позтому в качестве нового пути к маршрутизатору Р он выбирает маршрут ЕВСР. Другие алгоритмы дистанционно-векторной маршрутизации часто ошибаются, так как они не могут отличить соседей, обладающих независимыми маршрутами к адресату, от соседей, не обладающих такими маршрутами.
Определение протокола ВОР можно найти в ВЕС с 1771 по 1774. Информация, «вторую маршрутизатор Е получает от своих соседей о маршрутизаторе 0 От В: «Я использую ВО0» От ЕВ «я использую ВС0» От (: «Я использую )ЕООО» От Е: «Я использую ЕЕЗСО» Рис. В.В7. Множество ВОР-маршрутизаторов (а), 'информация, посланная марш рутизатору Е (о) Многоадресная рассылка в Интернете Обычно 1Р-связь устанавливается между одним отправителем и одним получателем. Однако для некоторых приложений возможность послать сообщение одновременно большому количеству получателей является полезной. Такими приложениями могут быть, например, обновление реплицируемой распределенной базы данных, передача биржевых сводок брокерам и цифровые телеконференции (с участием нескольких собеседников).
Протокол 1Р поддерживает многоадресную рассылку при использовании адресов класса Р. Каждый адрес класса 1) соответствует группе хостов. Для обозначения номера группы может быть использовано 28 бит, что делает возможным одновременное существование 250 миллионов групп. Когда процесс посылает пакет по адресу класса Р, протокол прилагает максимальные усилия по его доставке всем членам группы, однако не дает гарантий доставки. Некоторые члены группы могут не получить пакета. Поддерживаются два типа групповых адресов: постоянные и временные адреса. Постоянная группа не требует установки. У каждой постоянной группы есть постоянный адрес. Примерами постоянных групп являются: + 224.0.0.1 — все системы локальной сети; + 224.0.0.2 — все маршрутизаторы локальной сети; + 224.0.0.5 — все ОБРЕ-маршрутизаторы локальной сети; + 224.0.0.5 — все назначенные ОБРЕ-маршрутизаторы локальной сети.
Сетевой уровень в Интернете 529 Временные группы перед использованием следует создать. Процесс может попросить свой хост присоединиться к какой-либо группе. Когда последний процесс хоста покидает группу, группа более не присутствует на данном хосте. Каждый хост следит за тем, членами каких групп являются его процессы в текущий момент. Многоадресная рассылка осуществляется специальными многоадресными маршрутизаторами, которые могут одновременно являться и стандартными маршрутизаторами.
Примерно раз в минуту каждый многоадресный маршрутизатор совершает аппаратную (то есть на уровне передачи данных) многоадресную рассылку хостам на своей локальной сети (по адресу 224.0.0.1) с просьбой сообщить о группах, к которым в данный момент принадлежат их процессы. Каждый хост посьшает обратно ответы для всех интересующих его адресов класса 1). Эти пакеты запросов и ответов используются протоколом 1СМР (1птегпе~ Сгоцр Мапайешепс Рготосо1 — межсетевой протокол управления группами), являющимся грубым аналогом протокола 1СМР (1птегпет Соптто1 Меьэайе Рто1осо1 — протокол контроля сообщений в сети Интернет).?СМР использует только два типа пакетов — запроса и ответа — фиксированного формата, содержащих управляющую информацию в первом слове поля полезной нагрузки и адрес класса 1) во втором. Этот формат описан в КРС 1112.
Многоадресная рассылка реализуется при помощи связующих деревьев. Каждый маршрутизатор многоадресной рассылки обменивается информацией со своими соседями с помощью модифицированного протокола дистанционно-векторной маршрутизации, что позволяет каждому построить для каждой группы связующее дерево, покрывающее всех членов группы. Для усечения дерева, чтобы исключить из него маршрутизаторы и сети, не являющиеся членами данной группы, применяются различные методы оптимизации. Чтобы миновать узлы сети, не являющиеся узлами связующего дерева, протокол использует туннелирование. Мобильный ) Р Многие пользователи Интернета обладают портативными компьютерами и заинтересованы в возможности оставаться в подключенном к сети состоянии, даже находясь в пути.
К сожалению, система адресации 1Р такова, что реализовать это оказывается гораздо сложнее, чем кажется. В этом разделе мы познакомимся с этой проблемой и ее решением. Более подробное описание дано в (РегЫпэ, 1998а). Главным виновником проблемы является сама схема адресации. Каждый 1Р-адрес содержит номер сети и номер хоста. Например, рассмотрим машину с 1Р-адресом 160.80.40.20/16. Здесь 160.80 означает номер сети (8272 в десятичной системе счисления), 40.20 является номером хоста (10 260 в десятичной системе).
Маршрутизаторы по всему миру содержат таблицъц в которых указывается, какую линию следует использовать, чтобы попасть в сеть 160.80. Когда прихолит пакет с 1Р-адресом получателя вида 160.80.ххх.ууу, он отправляется по этой линии. 530 Глава Б. Сетевой уровень Если вдруг машина с этим адресом перевозится куда-то со своего места, адресованные ей пакеты будут продолжать направляться по ее домашнему адресу в ее локальную сеть (или ее маршрутизатору). До машины перестанет доходить эдектронная почта и т. п.
Предоставление же машине нового адреса, соответствующего ее новому расположению, является нежелательным, так как об этом изменении придется информировать большое количество людей, программ и баз данных. Другой подход состоит в использовании маршрутизаторами полного 1Р-адреса для определения маршрута, а не только полей класса и номера сети. Однако при такой стратегии каждый маршрутизатор должен будет содержать таблицы из миллионов записей, н стоимость поддержания Интернета в работоспособном состоянии составит астрономические суммы.
Когда потребность в мобильных хостах значительно возросла, проблемная группа проектирования Интернета (1ЕТР, 1птегпет Епй1пеег!пй Таза Рогсе) создала рабочую группу для поиска решения проблемы. Созданная рабочая группа быстро сформулировала набор целей, которых хотелось бы достичь, независимо от способа решения.
Основными целями были признаны следующие: 1. Каждый мобильный хост должен иметь возможность использовать свой домашний 1Р-адрес где угодно. 2, Изменения программного обеспечения фиксированных хостов недопустимы. 3. Изменения программного обеспечения и таблиц маршрутизаторов недопустимы, 4. Большая часть пакетов, направляемых мобильным хостам, должны доставляться напрямую. 5. Не должно быть никаких дополнительных расходов, когда мобильный хост находится дома. Рабочая группа выработала решение, описанное в разделе «Многоадресная рассылка». Суть его, напомним, заключалась в том, что везде, где требуется предоставить возможность перемещения в пространстве, следует создать внутреннего агента Везде, где нужно принимать посетителей, следует создать внешнего агента. Когда мобильный хост прибывает на новое место, он связывается с местным внешним агентом и регистрируется.
Затем внешний агент связывается с внутренним агентом пользователя и сообщает ему адрес для передачи сообщений прибывшему хосту. Обычно это 1Р-адрес внешнего агента. Когда пакет прибывает в домашнюю локальную сеть пользователя, его получает маршрутизатор, соединенный с этой локальной сетью. При этом маршрутизатор пытается определить расположение хоста обычным способом, с помощью широковещательной рассылки АКР-пакета, спрашивая, например: «Каков ЕтЬегпег-адрес хоста 160.80.40.20?» Внутренний агент отвечает на этот запрос, выдавая свой собственный Егйегпег-адрес. Маршрутизатор пересылает пакеты для 160.80А0.20 внутреннему агенту.
Тот, в свою очередь, упаковывает их в поле данных 1р-пакета, который туннелирует пакеты внешнему агенту. Внешний агент извлекает их и отсылает по адресу уровня передачи данных мобильного хоста. Внутренний агент также сообшает отправителю новый адрес мобильного хоста, Сетевой уровень в Интернете 531 так что последующие пакеты могут быть туннелированы напрямую внешнему агенту. Это решение удовлетворяет всем перечисленным выше требованиям. Следует, пожалуй, отметить одну небольшую деталь. Когда мобильный хост перемещается, у маршрутизатора, скорее всего, остается в памяти его Егпегпееадрес (который скоро станет недействительным).
Чтобы заменить этот адрес адресом внутреннего агента, применяется хитрость, называемая добровольным АКР-сообщением. Это особое сообщение, предоставляемое маршрутизатору по инициативе хоста, которое заставляет маршрутизатор заменить в своей таблице запись о хосте, собирающемся покинуть свое место. Когда позднее мобильный хост возвращается, то же сообщение используется для повторного изменения памяти маршрутизатора. Ничто не мешает мобильному хосту быть собственным внешним агентом, но такой подход будет работать только в том случае, когда мобильный хост (в качестве внешнего агента) логически связан с Интернетом на своем месте.
Также он должен получить (временный) 1Р-адрес в текущей сети. Решение, предложенное проблемной группой 1ЕТР, разрешает ряд других, еще не упомянутых проблем с мобильными хостами. Например, как обнаружить агента? Для этого агент периодически рассылает широковещательным способом свой адрес и тип услуг, которые он предоставляет (то есть пишет о том, кто он: внутренний агент, внешний агент или и то, и другое).