Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 116
Текст из файла (страница 116)
Во-первых, он помещает пакет, предназначающийся мобильному пользователю, в поле данных внешнего пакета, который посылается внешнему агенту (этап 2 нэ рис. 5.17). Такой прием называется туннелированием. Позднее мы обсудим ее подробнее, Получив пакет, внешний агент извлекает из поля данных оригинальный пакет, который пересылает мобильному пользователю в виде кадра уровня передачи данных. Затем внутренний агент сообщает отправителю, что в дальнейшем следует не посылать пакеты мобильному хосту на домашний адрес, э вкладывать их в поле данных пакетов, явно здресованных внешнему агенту (этап 3 на рис.
5.17). Последующие пакеты теперь могут направляться напрямую пользователю через внешнего агента (этап 4), полностью минуя домашний адрес мобильного пользователя. Различные предложенные схемы маршрутизации отличаются в нескольких аспектах. Во-первых, они отличаются в том, какая часть протокола выполняется маршрутизаторами, а какая — хостами, а также каким уровнем протоколов хостов. Во-вторых, в некоторых схемах маршрутизаторы записывают преобразованные адреса, поэтому онн могут перехватывать и переадресовывать пакеты даже еще до того, как они успевают дойти до домашнего адреса мобилыюго пользователя.
В-третьих, в одних схемах каждому посетителю дается уникальный вре- Алго итмыма ш утизвции 433 меккый адрес, а в других схемах временный адрес ссылается ка агента, обрабатывающего график для всех посетителей, Рис. 6.17. Маршрутизация покатое мобильным хостам В-четвертых, схемы различаются способами переадресации пакетов. Один из способов заключается в изменении поля адреса получателя в пакете и передаче измененного пакета. Есть системы, в которых весь пакет, включая домашний адрес, может быть помещен внутрь другого пакета, посылаемого по временному адресу. В любом случае, когда хост или маршрутизатор получает сообщение вида «Начиная с этого момента, пожалуйста, пересылайте мне всю почту, адресуемую Стефани», у него могут возникнуть вопросы — например, с кем он разговаривал, соглашаться или нет на данное предложение.
Несколько протоколов мобильных хостов обсуждаются и сравниваются в (Нас апй Оцо, 2000; РегЬ1вз, 1998а; 8цоегеп авд Ва1а1гПзЬваЬ, 2000; 8о!ошоп, 1998; Жавй апд СЬеп, 2001). Маршрутизация в специализированных сетях Итак,мы рассмотрели, как производится маршрутизация в случаях, когда станции мобильны, а маршрутизаторы стационарны. Еще более занимательная ситуация возникает тогда, когда мобильны сами маршрутизаторы.
Это возможно, например, в следующих случаях. + Военная техника на поле боя при отсутствии инфраструктуры. + Морская флотилия, находящаяся в плавании. + Работники служб спасения в районах с разрушенной инфраструктурой. + Собрание людей с портативными компьютерами при отсутствии в поме- щении сети 802.11. 434 Глава 5, Сетевой уровень Во всех подобных случаях каждый узел состоит из маршрутизатора и хоста одновременно, обычно они даже совмещены в пределах одного компьютера. Сети, состоящие из узлов, волею судеб оказавшихся недалеко друг от друга, называются специализированными сетями, или мобильными специализированными сетями (МАЖЕТ, МоЪ|1е Ад Ьос пегаогЬ).
Давайте их вкратце рассмотрим. Более подробную информацию можно найти в книге (Реги(пз, 2001). Основное отличие специализированных сетей от обычных проводных сетей состоит в том, что все обычные законы, касающиеся фиксированной топологии, известных соседей, взаимосвязи между 1Р-адресом и расположением в специализированных сетях, перестают работать. Маршрутизаторы могут легко появляться в системе и так же легко из нее исчезать, появляясь в каком-то другом месте. В обычных сетях путь от маршрутизатора к какому-либо адресату продолжает оставаться реализуемым до тех пор, пока не произойдет какой-нибудь сбой системы.
В специализированных сетях топология постоянно меняется, а с ней меняется и предпочтительность (и даже реализуемость) путей. Причем, это происходит спонтанно, безо всяких предупреждений. Надо ли говорить о том, что в таких условиях маршрутизация будет сильно отличаться от маршрутизации в стационарных сетях. Известно множество алгоритмов выбора маршрута для специализированных сетей. Один из наиболее интересных — это алгоритм АОРЧ (Ад Ьос Оп-бепшпс1 Р(эсапсе Чесгог — маршрутизация по требованию в специализированных сетях на основе вектора расстояний). Об этом можно прочитать у (Рег)ппз апб Коуег, 1999). АОРЧ является дальним родственником алгоритма Беллмана-Форда (Ве!1- шап — Рогб) (метод векторов расстояний), адаптированным для работы в мобильной среде и принимающим в расчет ограниченность пропускной способности и срока службы элементов питания — свойства, характерные для мобильных сетей.
Еще одной необычной характеристикой является то, что АОРЧ вЂ” это алгоритм апо требованиюь, то есть он вычисляет маршрут только в тот момент, когда появляется желающий отправить пакет тому или иному адресату. Посмотрим, что это значит, Построение маршрута Специализированная сеть в любой момент времени может быть описана с помощью графа узлов (маршрутизаторов и хостов), Два узла считаются соединенными (то есть между ними проведена дуга), если они могут связываться напрямую посредством радио. Поскольку у одного из них может быть более мощный передатчик, чем у другого, то возможна ситуация, когда узел А соединен с В, но В не соединен с А. Однако для простоты мы будем считать, что все соединения симметричны.
Следует заметить, что нахождение одного из узлов в зоне действия другого еше не означает наличия связи между ними, Их могут разделять холмы, здания и другие местные предметы, блокирующие соединение. Для описания алгоритма воспользуемся рис. 5.18, на котором изображен процесс, запущенный на узле А, которому необходимо отправить пакет на узел ( Алгоритм АОРЧ на каждом узле ведет таблицу, доступ к которой осуществляется с помощью поля адреса. Таблица содержит информацию об адресате, в том числе Алгоритмы маршрутизации 435 адрес ближайшего соседа, которому необходимо переслать пакет, чтобы он мог достичь пункта назначения.
Допустим, А просматривает эту таблицу и не находит записи для Т. Значит, нужно найти маршрут, ведущий к этому узлу. Итак, алгоритм начинает заниматься поисками маршрутов только тогда, когда они реально требуются. Это и делает его алгоритмом зпо требованию». нв шнроковещання Я рно. 6.16. Зона шнроковвщання Я (е); состояние после получення узлаын В н 0 шнроковвщатального пакета от Я (б); состоянне после получения узламн С, Гн 8 шнроковещатвльного пакета от Я (в); состояние после получення узлами Е, Н н ( широковещательного пакета от Я (г). Затененными кружочкамн обозначены новые получателя.
Стрелками показаны возможные обратные маршруты Для поиска! узел А генерирует специальный пакет запроса маршрута йООТЕ ЙЕООЕ5Т и распространяет его по сети широковещательным способом, На рис, 5.18, а показано, что этот пакет достигает узлов В и .О. На самом деле, причиной установления именно узлами В и )У соединения с А является то, что они могут получать пакеты от А.
Например, Е не соединен дугой с А, потому что он не может принимать радиосигнал от этого узла. То есть Г не соединен с А. Формат пакета запроса маршрута показан на рис. 5.19. В нем, как видно из этого рисунка, содержатся адреса источника и приемника (обычно 1р-адреса), с помощью которых можно понять, кто кого ищет. Также содержится поле Иоентифвкаэюр запроса, которое представляет собой локальный счетчик, обновляемый каждым узлом независимо и инкрементирующийся всякий раз, когда распространяется пакет запроса маршрута. Поля Адрес источника и Идентификатор запроса вместе единственным образом идентифицируют пакет ЕООТЕ ЕЕООЕ5Т, что позволяет узлам обнаруживать и отвергать любые дубликаты.
Адрес Идентификатор Адрес Порядковый Порядковый Счетчик отпраентеля запроса получателя номер отправителя номер получвтвля переколов Рно. 6.19. Формат пакета ПООТЕ ПЕСОЕЗТ В дополнение к счетчику Идентификаглор запроса каждый узел имеет второй счетчик, который инкрементируется всякий раз при отправке пакета для запроса маршрута или ответе на такой пакет. Его работа напоминает часы, и используется 436 Глава 6. Сетевой ровень оп для того, чтобы можно было отличить новые маршруты от старых.
Четвертое поле, показанное на рис, 5,19, это счетчик узла А; пятое — последнее значение порядкового номера пакета, полученного от 1(оно равно О, если такого пакета пе было). Вскоре мы более подробно раскроем назначение этих полей Наконец, последнее поле — Счвглчик переходов — запоминает количество пересылок, соэер. шенных пакетом. В начале работы алгоритма оно равно нулю. Когда пакет запроса маршрута прибывает па узел (например, па узлы В и 1)), с пим происходит следующее; 1, Пара значений полей Адрес исвючника и Идвнжификажор запроса ищется в таблице локальной истории, С их помощью можно выяснить, приходил ли уже этот запрос и обрабатывался ли оп.
Если обнаруживается, что пакет является дубликатом, оп отвергается и его обработка прекращается. В противном случае указанная пара значений заносится в таблицу истории, чтобы в будущем можно было обнаружить дубликаты. Обработка запроса продолжается. 2. Приемник ищет адрес назначения в таблице маршрутов. Если известен достаточно свежий маршрут, отправителю посылается пакет наличия маршрута 880ТЕ РЕРст, сообщающий ему о том, как можно достичь получателя (в двух словах: «Используй меня»). Что значит «свежий маршрут»? Имеется в виду, что поле Порядковый номер получателя в таблице маршрутизация имеет значение большее нли равное Порядковому номеру получателя нз пакета запроса маршрута.
Если оно меньше, значит, хранящийся в таблице маршрут является более старым, нежели предыдущий маршрут, имевшийся у отправителя к тому же пункту назначения. В этом случае выполняется пункт 3. 3. Поскольку у приемника отсутствует свежий маршрут к адресату, он инкрементирует поле Сметчик переходов н вновь широковещательным образом распространяет пакет запроса маршрута.
Из пакета извлекаются данные н сохраняются в виде новой записи в таблице обратных маршрутов. Эти данные будут использоваться лля построения обратного пути, по которому впоследствии необходимо будет послать ответный пакет отправителю. Стрелки на рнс, 5.18 как раз показывают процесс построения обратного пути. Для записи о только что созданном обратном пути запускается таймер. Прн наступлении тайм- аута запись удаляется. Нн В, нн й не знают, где находится узел 1 поэтому каждый нз ннх создает обратный путь к А, как показано стрелками на рнс. 5.18, н широковещательным способом распространяет пакет со Сметчиком переходов, установленным в единицу.
Этот пакет от В достигает С и П. Узел С делает запись в таблице обратных путей н, в свою очередь, тоже широковещательным способом распространяет пакет далее. Что касается .О, то он отвергает пакет: для него зто дубликат. Разумеется, н В отвергает пакеты, полученные от.0. Тем не менее, Гн 6 принимают широковещательное сообщение от 1) и сохраняют его, кзк показано на рис. 5.18, в, После того как Е, Н н 1 получают широковещательный пакет, запрос маршрута наконец достигает узла назначения (1).