Сети с маршрутизаторами. Виды алгоритмов маршрутизации. Структура таблицы маршрутизации.

Маршрутизатор имеет несколько портов и должен для каждого поступающего пакета решить — отфильтровать его или передать на какой-то другой порт.

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

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

Рассмотрим принципы маршрутизации на примере сети, изображенной на рис. 1. Здесь S1..S10 — подсети, M1..M13 — маршрутизаторы. Порты маршрутизаторов будем обозначать сочетанием имени маршрутизатора и сети, например, M5/S2 — порт маршрутизатора M5, подключенный к сети S2.

Таблица маршрутизации для маршрутизатора M7 приведена в табл. 1

Рис. 1. Составная сеть с маршрутизаторами.

Таблца №1. Таблица маршрутизации для маршрутизатора М7.

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

Эффективность алгоритмов характеризуется:

— временем доставки пакетов,

— нагрузкой на сеть,

— затратами ресурсов маршрутизаторов (времени и памяти).

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

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

Алгоритмы одношаговой маршрутизации бывают простые, фиксированные и адаптивные. Решение, принимаемое при простой маршрутизации не зависит ни от топологии, ни от состояния сети. Основные варианты простой маршрутизации:

случайная — передача пакета на любой порт, кроме исходного;

по кратчайшей очереди — передача пакета на порт с самой короткой очередью; - лавинная — передача пакета на все порты, кроме исходного;

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

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

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

локальная — только на основе информации о состоянии своих выходных каналов и очередях пакетов;

распределенная — на основе информации, получаемой от других узлов (регулярный обмен узлов таблицами маршрутизации);

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

— на основе состояния связей (англ. Link State Algorithms) — каждый узел строит полный граф сети (передаются ребра графа маршрутизатор-маршрутизатор и маршрутизатор-сеть);

централизованная — с выделенным центром маршрутизации, собирающем информацию о состоянии узлов и каналов и рассылающем ее всем узлам;

гибридная — централизованная+локальная (если путь в таблице один, то пакет отправляется по нему, иначе — на порт с самой короткой очередью).