Маршрутизация, термины, алгоритм Дейкстры (LS)
Для того чтобы переместить пакеты от хоста-отпарвителя к хосту-получателя, сетевой уровень должен определить путь или маршрут следования пакетов. Этим занимается протокол маршрутизации сетевого уровня. Хост напрямую подключен к одному из маршрутизаторов - маршрутизатор по умолчанию (первого ретрансляционного участка). Задача выбора пути от источника к приемнику сводится к выбору пути пакета от маршрутизатора-источника к маршрутизатору-приемнику - алгоритм маршрутизации. Алгоритм находит «оптимальный» путь (с минимальной стоимостью). Рассмотрим граф: узлы - маршрутизаторы, дуги - линии связи. Каждой линии связи соответствует некоторое значение, представляющее «стоимость» пересылке пакета по этой линии.
Протоколы: общедоступные: RIP, BGP, OSPF; частный: EIGRP.
Глобальный алгоритм маршрутизации находит путь с наименьшей стоимостью от отправителя до получателя с помощью инф о сети. Особенность: обладает полной инф о топологии сети и стоимости линий.
Децентрализованный алгоритм вычисление пути выполняется итерационным распределенным образом. Ни 1 узел не обладает полной инф о стоимости всех линий связи. Изначальна каждому узлу известна стоимость напрямую присоединенных к нему линий, затем, путем итерационных вычислений и обмена инф с соседними узлами, узел постепенно определяет путь с наименьшей стоимостью до получателя или до группы получателей.
Алгоритмы: статические и динамические В статическом маршруты изменяются со временем очень медленно, чаще всего вручную.
Динамический запускается либо периодически, либо в ответ на изменение топологии или стоимости линий (по протоколу).
Может быть смесь.
Чувствительность протокола маршрутизации: чувствительные реагируют на загруженность линии связи (стоимость линии возросла, а с ней и загруженность) Так не делается, не устойчиво.
В И используются: алгоритм, основанный на состояниях линий и алгоритм дистанционно-векторной маршрутизации.
Алгоритмы:
Основанный на состоянии линии (Link State, Дейкстры):
В 3 С 5
2 5
3
А 2 1 F
1 2
D E
c(i,j) - стоимость линии от i до j
D(V) - стоимость пути от источника до адресата V - минимальная стоимость известная на пути от А до V.
p(V) - предпоследний узел на кратчайшем пути до V
N - мн-во узлов для которых известны пути.
1.Инициализация
N={A}; для всех V: если V смежный с А, то D(V) = C(a,V), p(V)=A) иначе D(v)=бесконечность
2. цикл пока все узлы не войдут в N
W не принадлежит N т.ч. D(w) min
добавляем w и N, обновить D(V), для всех V смежных с w
D(V) = min(D(V), D(W)+C(W,V))
конец цикла
N | D(B), p(B) | D(C), p(C) | D(D), p(D) | D(E), p(E) | D(F), p(F) |
A | 2,A | 5,A | 1,A | INF | INF |
A,D | 2,A | 4,D | 1,A | 2,D | INF |
A,D,E | 2,A | 3,E | 1,A | 2,D | 4,E |
A,D,E,B | 2,A | 3,E | 1,A | 2,D | 4,E |
бесконечным не будет. завершится за конечное число шагов.
простой, дает результат за конечное время, требует знаний всей топологии сети (глобальный).
Сравнение: 1) скорость схождения: Д: не > N БФ = INF; 2) живучесть (устойчивость к ошибкам) БФ ниже чем у Д; 3) сложность сообщений.
Другие алгоритмы: Алгоритм горячей картофелины (получив сразу выкидывает сообщение в 1 свободный канал, позволяет избежать очередей, может применяться в сетях АТМ) Телефонные алгоритмы коммутированных каналов: канал на кратчайшем, если занят - найти в обход.