Маршрутизация, алгоритм Беллмана-Форда (DV)

Для того чтобы переместить пакеты от хоста-отпарвителя к хосту-получателя, сетевой уровень должен определить путь или маршрут следования пакетов. Этим занимается протокол маршрутизации сетевого уровня. Хост напрямую подключен к одному из маршрутихзаторов - маршрутизатор по умолчанию (первого ретрансляционного участка). Задача выбора пути от источника к приемнику сводится к выбору пути пакета от маршрутизатора-источника к маршрутизатору-приемнику - алгоритм маршрутизации. Алгоритм находит «оптимальный» путь (с минимальной стоимостью).Рассмотрим граф: узлы - маршрутизаторы, дуги - линии связи. Каждой линии связи соответствует некоторое значение, представляющее «стоимость» пересылке пакета по этой линии.

Протоколы: общедоступные: RIP, BGP, OSPF; частный: EIGRP.

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

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

Алгоритмы: статические и динамические

В статическом маршруты изменяются со временем очень медленно, чаще всего вручную.

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

Может быть смесь.

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

В И используются: алгоритм, основанный на состояниях линий и алгоритм дистанционно-векторной маршрутизации.

Децентрализованный алгоритм (Беллмана-форда, дистанционно векторной маршрутизации): основан на рассылке сообщений (при изменении стоимости пути (событие: пришло сообщение от кого-то или изменение стоимости известной линии связи)), асинхронный (управляется событиями), нет явного критерия остановки (после какой-то итерации строка не изменится, новое сообщение посылаться не будет), не требует знания всей конструкции сети.

Алгоритм: y - 2 - x - 1 - z - 7 - y

1. Инициализация: в таблице бесконечности дл диагональных (.) известные длины пути DX(*, V) = INF, DX(V, V) = C(X, V). Для всех адресатов minWD(Y, W).

2. Ожидание события: (пока не придет сообщение, изменение стоимости линии связи)

а. Если изменилась стоимость С(X, V) на d => меняется стоимость в таблице. Для всех адресатов y DX(Y, V) +=d таблица обновляется. Если появился новый min => рассылка всем соседям

б. Если обновление - новое значение от соседа w адресат y. Обновление DX(Y, V) = C(X, V) + newval. Если получается новое min значение, то рассылка всем соседям.

3. Снова ждет пока что-нибудь не случится.

DX Y Z   DX Y Z
Y INF Y
Z INF Z
   
DY X Z DY X Z
X INF X
Z INF Z
   
DZ X Y DZ X Y
X INF X
Y INF Y

На 3 шаге обновлений нет

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

Сравнение: 1) скорость схождения: Д: не > N БФ = INF; 2) живучесть (устойчивость к ошибкам) БФ ниже чем у Д; 3) сложность сообщений.

Другие алгоритмы: Алгоритм горячей картофелины (получив сразу выкидывает сообщение в 1 свободный канал, позволяет избежать очередей, может применяться в сетях АТМ) Телефонные алгоритмы коммутированных каналов: канал на кратчайшем, если занят - найти в обход.