Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
11.04.2015
Размер:
4.78 Mб
Скачать

7.7 Маршрутизация с учетом состояний линий

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

  • Обнаруживать своих соседей и узнавать их сетевые адреса.

  • Измерять задержку или стоимость связи с каждым из своих соседей.

  • Создавать пакет, содержащий всю собранную информацию.

  • Посылать этот пакет всем остальным маршрутизаторам.

  • Вычислить кратчайший путь ко всем остальным маршрутизаторам.

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

7.7.1 Знакомство с соседями

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

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

Один из способов смоделировать локальную сеть состоит в том, что локальная сеть рассматривается узлом графа, как и маршрутизаторы, как показано на рисунке 77. На рисунке сеть изображена в виде искусственного узла N, с которым соединены маршрутизаторы А, С и F. Возможность передачи пакетов от А к С по локальной сети отражается здесь наличием пути АNC.

Рисунок 76 - Девять маршрутизаторов и одна локальная сеть

Рисунок 77 - Графовая модель нашей сети

7.7.2 Измерение стоимости линии

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

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

Оба способы могут быть аргументированы. Учет трафика в линии при измерении задержки означает, что когда у маршрутизатора есть выбор между двумя линиями с одинаковой пропускной способностью, маршрут по менее загруженной линии будет рассматриваться как более короткий. Такой выбор приведет к более сбалансированному использованию линии связи и, следовательно, к более эффективной работе системы.

К сожалению, имеется аргумент против учета загруженности линии в расчете задержек. Рассмотрим подсеть, изображенную на рисунке 78, разделенную на две части – восточную и западную, которые соединены двумя линиями, CF и EI. Предположим, что большая часть потока данных между востоком и западом использует линию CF. В результате эта линия оказывается тяжело загруженной и с большими задержками. Учет времени состояния пакета в очередях при подсчете кратчайшего пути сделает линию EI более привлекательной. После установки новых таблиц маршрутизации большая часть потока данных между востоком и западом переместится на линию EI, и ситуация повторится с точностью до смены одной линии на другую. Аналогично, после еще одного обновления уже линия CF окажется более привлекательной. В результате таблицы маршрутизации будут страдать от незатухающих колебаний, что будет сильно снижать эффективность работы системы. Если же нагрузку не учитывать, то эта проблема не возникает.

Рисунок 78 - Подсеть, в которой две части соединены двумя линиями

Соседние файлы в папке Методичка по протоколам