Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (сети).doc
Скачиваний:
6
Добавлен:
19.11.2019
Размер:
435.71 Кб
Скачать

Алгоритм Дейкстры

Данный алгоритм находит самый короткий путь от данного узла до всех других узлов, работает следующим образом.

  1. Маркируйте все узлы, кроме стартового, парой значений, состоящей из расстояния до данного узла (первоначально « ») и именем узла подхода (первоначально «-»). Узел подхода – это ближайший (слева) соседний узел, к которому осуществляется непосредственный подход через маркируемый узел.

  2. Начиная со стартового узла, выберите узел с самым низким совокупным весом; считайте этот узел установленным (или фиксированным).

  3. Маркируйте соседние с установленным узлы совокупным расстоянием от стартового узла и именем узла подхода.

  4. Если узел уже маркирован, то его метка заменяется на новую, совокупное расстояние которой меньше, чем существующее совокупное расстояние.

  5. Продолжайте маркировку, пока все узлы не будут установлены.

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

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

Рис. 16 Пример применения алгоритма Дейкстры, шаг первый

  1. Н ачните с узла A, зафиксируйте его, перемаркируйте соседние (справа) узлы B и F с учетом их расстояний.

Рис. 17 Пример применения алгоритма Дейкстры, шаг второй

  1. Т еперь самым малым весом обладает узел B, поэтому для него повторяются все действия пункта 2.

Рис. 18 Пример применения алгоритма Дейкстры, шаг третий

  1. Теперь узел G имеет самый малый вес, поэтому он и используется. Новый вес для F меньше чем существующий, поэтому старая метка (6,A) заменяется новой (5,G). То же самое происходит и с узлом C.

Р ис. 19 Пример применения алгоритма Дейкстры, шаг четвертый

  1. П овторите предыдущую процедуру для узла F. В результате узел E должен был бы получить метку (9, F), но его существующая метка (6,G) имеет более низкий суммарный вес до исходного узла, так что оставлена без изменений.

Рис. 20 Пример применения алгоритма Дейкстры, шаг пятый

  1. П овторите процедуру для узла C.

Рис. 21 Пример применения алгоритма Дейкстры, шаг шестой

  1. Повторите процедуру для узла E. В результате метка узла D (9,C) будет заменена на (8,E).

Р ис. 22 Пример применения алгоритма Дейкстры, шаг седьмой

Установка узла D завершает процедуру алгоритма Дейкстры. Нетрудно видеть, что самый короткий путь от A до D имеет совокупный вес 8, и читая метки, начинающиеся с узда D, в обратном порядке, получаем наикратчайший маршрут: D E G B A.

Маршрутизация по вектору расстояния

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

Р ассмотрим узел A в сети, показанной на рис. 23. Он периодически запрашивает в узлах B и C информацию о самых коротких маршрутах от этих узлов до всех других узлов в сети. При этом узел A будет также получать информацию о расстоянии между собой и соседними узлами и будет использовать полученную информацию для вычисления самых коротких маршрутов между собой и всеми другими узлами.

Рис. 23 Маршрутизация по вектору расстояния

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

В примере сети, показанной на рисунке, для узлов B и C требуется 10 и 12 единиц времени (соответственно), чтобы ответить и послать их текущие векторы расстояния узлу A. Теперь узел A может сделать вывод, что для путешествия пакета к узлам B и C требуется 5 и 6 единиц времени соответственно. Оценки 6 и 4 в таблицах узлов B и C игнорируются, поскольку оценки 5 и 6 считаются более свежими. После этого получение для узла A новой таблицы является относительно простой задачей. Рассмотрим случай определения маршрута от узла A к узлу D. Узел A оценивает, что если он направит пакет, предназначенный для D, прямо к узлу B, то потребуется 5(AB) плюс 4(СВ)=9 единиц времени, так что первый выбор – направление через узел B. Процедура повторяется для всех других, несмежных узлов сети. Трафик между AE направляется через узел B с суммарным расстоянием 11 (5+6), а не через узел C с суммарным расстоянием 12 (6+6). Наконец, пакеты, предназначенные для узла F, отправляются не через узел B (маршрут с суммарным расстоянием 18), а через более короткий путь, проходящий через узел C, за 16 временных единиц.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]