Дистанционно-векторные алгоритмы маршрутизации

В рамках сформированной организационной структуры появляется необходимость совершенствования документооборота. Практическое решение данной задачи воплощается в положении о документообороте, требующем наглядной и полной модели взаимосвязей входящей и выходящей информации в процессе выполнения функций Основа для ее создания, разработанные функциональные (ГОЕГО) и информационные (ШЕПХ) модели Существующие Средства автоматизированной разработки позволяют интегрировать их. определив для каждого информационного потока из первой модели конкретные атрибуты сущностей из второй модели.

Формирование требоьакип к с ре Ш1тч ивгомапиаинн

Следующим этапом реорганизации деятельности предприятий с использованием Средств автоматизированной разработки является формирование требований к средствам автоматизации (рис.

3).

Для этого необходима дальнейшая детализация функциональных моделей Выделяются типовые, автоматизированные, рабочие места (АРМ), Им в соответствие ставятся функции, которые должны автоматизироваться. Разрабатываются функциональные и информационные спецификации типовые АРМ.

Формируются модель интегрированной базы данных и требуемый состав процедур документооборота, позволяющие связать АРМы Сами процедуры документооборота представляют собой "горизонтальный срез" функциональных моделей по группе документов и также могут разрабатываться с использованием Средств автоматизированной разработки.

Рис 3 Исходные данные для формирования требований к средствам автоматизации

С.П.Золотарёв

ДИСТАНЦИОННО-ВЕКТОРНЫЕ АЛГОРИТМЫ МАРШРУТИЗАЦИИ

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

Существует и прямо противоположный, многошаговый подход - маршрутизация от источника (Source Routing). В соответствии с ним узел-источник задает в отправляемом в сеть пакете полный маршрут его следования через все промежуточные маршрутизаторы. При использовании многошаговой

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

Одношаговые алгоритмы в зависимости от способа формирования таблиц маршрутизации делятся на три класса: ; г-

алгоритмы фиксированной (или статической) маршрутизации; ' <

алгоритмы простой маршрутизации;

алгоритмы адаптивной (или динамической) маршрутизации.

Самыми распространенными одношаговыми, являются алгоритмы адаптивной (или динамической) маршрутизации. Эти алгоритмы обеспечивают автоматическое обновление таблиц маршрутизации после изменения конфигурации сети. Протоколы, построенные на основе адаптивных алгоритмов, позволяют всем маршрутизаторам собирать информацию о топологии связей в сети, оперативно отрабатывая все изменения конфигурации связей. В таблицах маршрутизации при адаптивной маршрутизации обычно имеется информация об интервале времени, в течение которого данный маршрут будет оставаться действительным. Это время называют временем жизни маршрута (rime То Live. TTL).

Адаптивные алгоритмы обычно имеют распределенный характер, который выражается в том, что в сети отсутствуют какие-либо выделенные маршрутизаторы, которые собирали бы и обобщали топологическую информацию, эта работа распределена между всеми маршрутизаторами.

Адаптивные алгоритмы маршрутизации должны отвечать нескольким важным требованиям. Во-первых, они должны обеспечивать, если ье оптимальность, то хотя бы рациональность маршрута. Во-вторых. алгоритмы должны быть достаточно простыми, чтобы при их реализации не тратилось слишком много сетевых ресурсов, в частности они не должны требовать слишком большого объема вычислений или порождать интенсивный служебный трафик. И наконец, алгоритмы маршрутизации должны обладать свойством сходимости, то есть всегда приводить к однозначному результату за приемлемое время.

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

дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA); алгоритмы состояния связей (Link State Algorithms. LSA).

В алгоритмах дистанционно-векторного типа каждый маршрутизатор периодически и широковещательно рассылает по сети вектор, компонентами которого являются расстояния от данного маршрутизатора до всех известных ему сетей. Под расстоянием обычно понимается число хопов. Возможна и другая метрика, учитывающая не только число промежуточных маршрутизаторов, но и время прохождения пакетов по сети между соседними маршрутизаторами. При получении вектора о г соседа маршрутизатор наращивает расстояния до указанных в векторе сетей на расстояние до данного соседа. Получив вектор от соседнего маршрутизатора, каждый маршрутизатор добавляет к нему информацию об ювестных ему других сетях, о которых он узнал непосредственно (если они подключены к его портам) или из аналогичных объявлений других маршрутизаторов, а затем снова рассылает новое значение вектора по сети. В конце концов, каждый маршрутизатор узнает информацию обо всех имеющихся в ишерсети сетях и о расстоянии до них через соседние маршрутизаторы.

Дистанционно-векторные алгоритмы хорошо работают только в небольших сетях, В больших сетях они засоряют линии связи интенсивным широковещательным трафиком, к тому же изменения конфигурации могут отрабатываться по этому алгоритму не всегда корректно, так как маршрутизаторы не имеют точного представления о топологии связей в сети, а располагают только обобщенной информацией - вектором дистанций, к тому же полученной через посредников. Работа маршрутизатора в соответствии с дистанционно-векторным протоколом напоминает работу моста, так как точной топологической картины сети такой маршрутизатор не имеет.

Наиболее распространенным протоколом, основанным на дистаиционно-векторном алгоритме, явчяется протокол RIP, который распространен в двух версиях - RIP IP, работающий с протоколом IP. и RJP ГРХ, работающий с протоколом IPX.

Для дистанционно-векторной маршрутизации требуется, чтобы каждый узел (маршрутизатор или хост, на котором реализован протокол RIP (Routing Information Protocol - протокол маршрутной информации)) обменивался информацией с соседними узлами. Для работы алгоритма каждый узел хранит три вектора : - ^ .г- »г

-Wx ~ [ w(x, 1), , w(х.М) ] - - вектор стоимости линий, где «

M - количество сетей, с которыми напрямую соединен узел х; ц(х1) - стоимость линии, которая ассоциируется с выходом каждого узла для каждой присоединенной сети i.-

- U = [L(x, 1), , L(x,N) ] - вектор расстояния для узла х, где

L(xj) - текущая оценка минимальной задержки от узла х до сети j; N- количество сетей в конфигурации.

-n^lRixJ), " eiKT0P следующего

7 J ретрансляционного участка узла х, где

R(x,j) - следующий маршрутизатор на текущем маршруте от узла х до сети]. „;

Периодически (каждые 30 секунд) каждый узел обменивается своим вектором расстояний с соседями. На основе всех входящих векторов расстояний узел х обновляем оба своих вектора следующим образом:

" > i h

• y=Rix j) - значение, минимизирующее предыдущее выражение;

• Neighbours - множество узлов, соседних с х;

• Л7^ - сеть, соединяющая узел х с узлом у.

В программе ROUTING S1MULATOR планируется реализовать дистанционно-векторный алгоритм марщрутизации BF

< > 1

Этот протокол маршрутизации предназначен для сравнительно небольших и относительно однородных сетей (алгоритм Белмана-Форда). Протокол разработан в университете Калифорнии (Беркли), базируется на разработках фирмы Ксерокс и реализует те же принципы, что и программа маршрутизации routed, используемая в ОС Unix (4BSD) Маршрут здесь характеризуется вектором расстояния до места назначения Предполагается, что каждый маршрутизатор является отправной точкой нескольких маршрутов до сетей, с которыми он связан. Описания этих маршрутов хранится в специальной таблице, называемой маршрутной. Таблица маршрутизации RIP содержит по записи на каждую обслуживаемую машину (на каждый маршрут). Запись должна включать в себя:

- IP-адрес места назначения - Метрика маршрута (от 1 до ¡5 чш ю шагов до места назначения).

\

- IP-адрес ближайшего маршрутизатора igatewayу по пути к месту назначения.

- Таймеры маршрута

Первым двум полям записи мы обязаны появлению термина вектор расстояния (место назначение - направление; метрика - модуль вектора). Периодически (раз в 30 сек) каждый маршрутизатор посылает широковещательно копию своей маршрутной таблицы всем соседям-маршрутизаторам, с которыми связан непосредственно. Маршрутизатор-получатель просматривает таблицу. Если в таблице присутствует новый путь или сообщение о более коротком маршруте, или произошли изменения длин пути, эти изменения фиксируются получателем в своей маршрутной таблице. Протокол RIP должен быть способен обрабатывать три типа ошибок:

1. Циклические маршруты. Так как в протоколе нет механизмов выявления замкнутых маршрутов. необходимо либо слепо верить партнерам, либо принимать меры для блокировки такой возможности.

2. Для подавления нестабильностей RIP должен использовать малое значение максимально возможного числа шагов (<16).

3. Медленное распространение маршрутной информации по сети создает проблемы при динамичном изменении маршрутной ситуации (система не поспевает за изменениями). Малое предельное значение метрики улучшает сходимость, но не устраняет проблему. Несоответствие маршрутной таблицы реальной ситуации типично не только для RIP, но

характерно для всех протоколов, базирующихся на векторе расстояния, где информационные сообщения актуализации несут в себе только пары кодов: адрес места назначение и расстояние до него.

Проблема может быть решена следующим образом. Маршрутизатор запоминает, через какой интерфейс получена маршрутная информация, и через этот интерфейс эту информацию уже не передает. В рассмотренном выше примере GW2 не станет посылать информацию о пути к сети А маршрутизатору GW1, от которого он получил эти данные. В этом случае в маршрутной таблице GW1 путь до А исчезнет сразу. Остальные маршрутизаторы узнают о недостижимости сети А через несколько циклов. Существуют и другие пути преодоления медленных переходных процессов. Если производится оповещение о коротком пути, все узлы-получатели воспринимают эти данные немедленно. Если же маршрутизатор закрывает какой-то путь, его отмена фиксируется остальными лишь по тайм-ауту. Универсальным методом исключения ошибок при маршрутизации является использование достаточно большой выдержки, перед тем как использовать информацию об изменении маршрутов. В этом случае к моменту изменения маршрута эта информация станет доступной всем участникам процесса маршрутизации. Но все перечисленные методы и некоторые другие известные алгоритмы, решая одну проблему, часто вносят другие. Многие из этих методов могут при определенных условиях вызвать лавину широковещательных сообщений, что также дезорганизует сеть. Именно малая скорость установления маршрутов в RIP (и других протоколах, ориентированных на вектор расстояния) и является причиной их постепенного вытеснения другими протоколами.

Но даже усовершенствование, изложенное выше, не всегда срабатывает. На рис. 1. приведен пример, когда переходной процесс, несмотря на усовершенствование будет идти долго. При обрыве связи В-Г узлы А и Б сообщают узлу В, что они потеряли связь с узлом Г. Узел В делает вывод, что Г не достижим, о чем и сообщает узлам А и Б. К сожалению А знает, что Б имеет проход к Г длиной 2, из чего он делает вывод о достижимости Г за три шага. Аналогично рассуждает Б о возможности достижимости Г через А. Далее при последующих рассылках метрика доступности Г, характеризуется все большими значениями, до тек пор пока не станет равной "бесконечности".

Рис. 1. Пример топологии, где переходной процесс осуществляется медленно

В RIP сообщения инкапсулируются в udp-дейтограммы, при этом передача осуществляется через порт 520. 'В качестве метрики RTP использует число шагов до цели. Если между отправителем и приемником расположено три маршрутизатора (gateway), считается, что между ними 4 шага. Такой вид метрики не учитывает различий в пропускной способности или загруженности отдельных сегментов сети. Применение вектора расстояния не может гарантировать оптимальность выбора маршрута, ведь, например, два шага по сегментам сети ethernet обеспечат большую пропускную способность, чем один шаг через последовательный канал на основе интерфейса RS-232. -

Маршрут по умолчанию имеет адрес 0.0.0.0 (это верно и для других протоколов маршрутизации). Каждому маршруту ставится в соответствие таймер тайм-аута и "сборщика мусора". Тайм-аут-таймер сбрасывается каждый раз. когда маршрут инициализируется или корректируется. Если со времени последней коррекции прошло 3 минуты или получено сообщение о том. что вектор расстояния равен 16, маршрут считается закрытым. Но запись о нем не стирается, пока не истечет время "уборки мусора" (2мин). При появлении эквивалентного маршрута переключения на него не происходит, таким образом, блокируется возможность осцилляции между двумя или более равноценными маршрутами. Поле команда определяет выбор согласно следующей таблице:

I Таблица 1. Значения кодов поля команда

К Значение

оманда  ' .-v.\ . < л-**,,. >

1 [ Запрос на получение частичной или полной маршрутной информации;

2 Отклик, содержащий информацию о расстояниях из маршрутной таблицы отправителя: > - . "

3 Включение режима трассировки (устарело);

4: Выключение режима трассировки (устарело); . " ,

5-6 Зарезервированы для внутренних целей sun microsystem. .

Поле версия для RIP равно 1 (для RIP-2 двум). Поле набор протоколов сети i определяет набор протоколов, которые используются в соответствующей сети (для Интернет это поле имеет значение 2). Поле расстояние до сети i содержит целое число шагов (от 1 до 15) до данной сети. В одном сообщении может присутствовать информация о 25 маршрутах. При реализации RIP можно выделить следующие режимы:

Инициализация. определение всех "живых" интерфейсов путем посылки запросов, получение таблиц маршрутизации от других маршрутизаторов. Часто используются широковещательные запросы.

Получен запрос. В зависимости от типа запроса высылается адресату полная таблица маршрутизации, или проводится индивидуальная обработка.

Получен отклик. Проводится коррекция таблицы маршрутизаЧии (удаление, исправление, добавление).

Регулярные коррекции. Каждые 30 секунд вся или часть таблицы маршрутизации посылается всем соседним маршрутизаторам. Могут посылаться и специальные запросы при локальном изменении таблицы. R1P достаточно простой протокол, но, к сожалению не лишенный недостатков:

a. R1P не работает с адресами субсетей. Если формальный 16-бит идентификатор ЭВМ класса В не равен 0, RIP не может определить является ли не нулевая часть субсетевым ID, или полным IP-адресом.

b. RIP требует много времени для восстановления связи после сбоя в маршрутизаторе (минуты) В процессе установления режима возможны циклы.

c. Число шагов важный, но не единственный параметр маршрута, да и 15 шагов не предел для современных сетей.

Протокол RIP-2 (RFC-1388. Ю93 год) является новой версией R1P, которая в дополнение к широковещательному режиму поддерживает мультикастинг; позволяет работать с масками субсетей. Поле маршрутный демон является идентификатором резидентной программы-маршрутизатора. Поле метка маршрута используется для поддержки внешних протоколов маршрутизации, сюда записываются коды автономных систем. При необходимости управления доступом можно использовать первые 20 байт с кодом набора протоколов сети OxFFFF и меткой маршрута =2. Тогда в остальные 16 байт можно записать пароль.

В сетях, где используется протокол RIP, накладные расходы на обмен маршрутной информацией строго фиксированы.

С.П.Золотарёв

АЛГОРИТМЫ МАРШРУТИЗАЦИИ СОСТОЯНИЯ СВЯЗЕЙ

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

Маршрутизация пакетов в сети занимает одно из важных мест в управлении сетью. Под маршрутизацией обычно понимают доставку пакетов из одного узла сети в другой, максимизируя при этом производительность сети. Задачу маршрутизации в сети решают специальные устройства -маршрутизаторы. Алгоритм маршрутизации - это часть программного обеспечения маршрутизатора, отвечающая за выбор выходной линии, на которую поступивший ракет должен быгь передан. Выбор одного из возможных в маршрутизаторе направлений зависит от текущей топологии сети, длин очередей в узлах коммутации и т.п.

В виду сложности структур современных компьютерных сетей, задача маршрутизации не решается в полной мере. В большинстве случаев это связано с маршрутизаторами . не справляющимися с поддержанием таблиц маршрутизации и выбором оптимальных маршрутов Для данного класса трафика. Поэтому возникает задача исследования существующих алгоритмов маршрутизации с целью улучшения их характеристик, или создания новых алгоритмов маршрутизации.

Маршрутизация может быть представлена в следующем виде. П>сть дан направленный взвешенный граф С=(У,Е). в котором каждый узел из множества К представляет собой устройство, обрабатывающее и передающее данные, а каждое ребро из множества Е является линией связи. Основной задачей алгоритмов маршрутизации является передача данных из узла источника в узел приемник, максимизируя при этом производительность сети. При моделировании алгоритмов маршрутизации возникают две