Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Оптимальность интервальной маршрутизации: специальные топологии. 5 глава

Так как u1 Î S:

                               dS(u2, v) £ dS (u2, u1) + dS (u1,v).             (2)

Узел u2 изменит Du2 [v] в данном обходе тогда и только тогда когда

                               dS(u2, w) + dS (w, v) < dS (u2, v).                  (3)

Применяя (2), и затем (1), и вычитая dS(u2, u1), мы получим

                              dS(u1, w) + dS (w, v) < dS (u1, v)                (4)

значит u1 изменит Du1 [v] в этом обходе.‰

 

В соответствии с этой леммой, Алгоритм 4.6 может быть модифицирован следующим образом. После получения таблицы Dw, (сообщение < dtab, w,D>) узел u вначале выполняет локальные w -централизованные операции, и затем рассылает таблицы своим сыновьям в Tw. Когда пересылка таблицы закончилась достаточно переслать те ссылки D[v] для которых Du[v] изменилась в течение локальной w -централизованной операции. С этой модификацией таблицы маршрутизации не содержат циклов не только между централизованными обходами (как сказано в Лемме 4.7), но также в течение централизованных обходов.

4.2.3 Обсуждение и Дополнительные Алгоритмы

 

Представление алгоритм Toueg предоставило пример как распределенный алгоритм может быть получен непосредственным образом из последовательного алгоритма. Переменные последовательного алгоритма распределены по процессам, и любое означивание переменной x (в последовательном алгоритме) выполняется процессом владеющим x. Всякий раз когда ознaчивающее выражение содержит ссылки на переменные из других процессов, связь между процессами потребуется для передачи значения и синхронизации процессов. Специфические свойства последовательного алгоритма могут быть использованы для минимизации числа соединений.

Алгоритм Toueg прост для понимания, имеет низкую сложность, и маршрутизирует через оптимальные пути; его главный недостаток в его плохая живучесть. Когда топология сети изменилась все вычисления должны произвестись заново.

Во-первых, как ранее говорилось, однообразный выбор всеми узлами следующего центрального узла (w) требует чтобы множество участвующих узлов было известно заранее. Так как это в основном не известно априори, исполнение расширенного распределенного алгоритма вычисления этого множества (на пример алгоритм Финна, Алгоритм 6.9) должно предшествовать исполнению алгоритма Toueg.

Во-вторых, алгоритм Toueg основан на повторяющимися применениями уникальности треугольника d(u, v) £ d(u, w) + d(w, v). Оценивание правой стороны (u) требует информацию о d(w, v), и эта информация в часто удалена, т.е., не доступна ни в u ни в любой из его соседей. Зависимость от удаленных данных делает необходимым транспортирование информации к удаленным узлам, которые могут быть исследованы в алгоритме Toueg (часть распространения).

Как альтернатива, определенное ниже равенство для d(u, v) может использоваться в алгоритмах для проблем кротчайших путей:

                 ì   0                        если u=v

d(u,v)=      í                                                                       (4.1)

                 î    wuw+d(w,v)       иначе

Два свойства этого равенства делают алгоритмы основанные на этом отличными от алгоритма Toueg.

(1) Локальность данных. Во время оценивания правой стороны равенством (4.1), узлу u необходима только информация доступная локально (именно, wuw) или в соседях (именно, d(w, v)). Транспортирование данных между удаленными вершинами избегается.

(2) Независимость пункта назначения. Расстояния до v (именно, d(w, v) где w сосед u) только нуждаются в вычислении расстояния от u в v. Таким образом, вычисление всех расстояний до фиксированного пункта назначения vo может происходить независимо от вычисления расстояния до других узлов, и также, может бать сделано обособленно.

 

В завершение этой части обсуждены два алгоритма основанные на равенстве, а именно алгоритмы Мерлина-Сигалла и Чанди-Мизра. Не смотря на преимущества от локальности данных, сложность соединений этих алгоритмов не лучше алгоритма Toueg. Это из-за независимости пункта назначения введенного равенством(4.1); очевидно, использование результатов для других пунктов назначения (как сделано в алгоритме Toueg) более выгодный прием чем локальность данных.

Если это не ведет к уменьшению сложности соединений, тогда каково значение локальности данных? Уверенность в удаленных данных требует повторных распространений если данные могли измениться из-за топологических изменений сети. Доведение до конца этих распространений (с возможными новыми топологическими изменениями в течение распространения) вызывает нетривиальные проблемы с дорогими решениями (см., на пример, [Gaf87]). Более того, алгоритмы основанные на равенстве 4.1 могут быть более легко адаптированы к топологическим изменениям. Оно служит примером в части 4.3, где подробно разобран такой алгоритм.

 

Алгоритм Мерлина-Сигалла. Алгоритм предложенный Мерлином и Сигаллом [MS79] вычисляет таблицы маршрутизации для каждого пункта назначения абсолютно обособленно; вычисления для различных пунктов назначения не оказывают влияния друг на друга. Для пункта назначения v, алгоритм начинает работу с дерева Tv с корнем в v, и повторно перевычисляет это дерево с тем чтобы оно стало оптимальным деревом стока для v.

Для пункта назначения v, каждый узел u содержит оценку расстояния до v (Du[v]) и соседа через которого пакет для u пересылается (Nbu[v]), который также является отцом u в Tv. В период перевычисления каждый узел u посылает свою оценку расстояния, Du[v], к всем соседям исключая Nbu[v] (в < mydist, v, Du[v]> сообщении). Если узел u получает от соседа w сообщение <mydist, v, d > и если d+wuv < Du[v], u изменит Nbu[v] на w и Du[v] на d + wuv. Период перевычисления контролируется узлом v и требует обмена двумя сообщениями в W бит на каждый канал.

В [MS79] показано что после i периодов перевычислений все кротчайшие пути в более чем i шагов будут корректно вычислены, так что после N раундов все кротчайшие пути будут вычислены. Кротчайшие пути в каждый пункт назначения вычисляются выполнением алгоритма независимо для каждого пункта назначения.

Теорема 4.11 Алгоритм Мерлина и Сигалла вычисляет таблицы маршрутизации кротчайших путей с обменом 0(N2) сообщениями на канал, 0(N2 W) битами на канал, 0(N2 |E|) сообщениями всего, и 0(N2|E|W) битами всего.

 

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

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

Вычисление, для всех узлов, расстояния до узла vo (и привилегированного исходящего канала), каждый узел u начинает с Du[vo] = ¥ и ждет получения сообщений. Узел vo посылает <mydist, vo,0> сообщение всем соседям. Когда же узел u получает сообщение < maydist ,vo,d> от соседа w, где d + wuw < Du[vo], u заносит значение d+wuv в Du[vo] и посылает сообщение < mydist, vo, D Du[vo]> всем соседям; смотри Алгоритм 4.7.

 

var Du[vo]: вес    init ¥;

  Nbu[vo]: узел init udef;

 

Только для узла vo:

begin Du[vo]:= 0;

           forall w Î Neighvo do послать < maydist, vo, 0> к w

  end

 

Обработка сообщения < maydist, vo, d> от соседа w узлом u:

   { <mydist, vo, d > Î Mwv }

   begin получить <mydist, vo, d > от w;

                if   d + wuw < Du[vo] then

                     begin Du[vo]:= d+wuw;  Nbu[vo]:= w;

                              f orall x Î Neighu do послать < maydist, vo, Du[vo]> к x

                     end

     end

Алгоритм 4.7 Алгоритм Чанди-Мизра (для узла u).

Не трудно показать что Du[vo] всегда верхняя граница для d(u, vo), т.е ., d(u,vq) £ Du[vo] инвариант алгоритма; см. упражнение 4.3. Чтобы продемонстрировать чти алгоритм вычисляет расстояния верно, нужно показать что в конечном счете достигнется конфигурация в которой Du[vo] £ d(u, vo) для каждого u. Мы дадим доказательство этого свойства используя предположение допущения слабой справедливости, а именно, что каждое сообщение которое посылается в конечном счете получено в каждом вычислении.

 

Теорема 4.12 В каждом вычислении Алгоритма 4.7 достигнется конфигурация в которой для каждого узла u, Du[vo] £ d(u, vo).

Доказательство. Зафиксируем оптимальное дерево стока T для vo и обозначим остальные узлы v1vN-1 таким образом что если v i, отец узла vj, тогда i < j. Пусть C вычисление; можно показано индукцией по j что для каждого j £ N— 1  достигнется конфигурация в которой, для каждого i £ j, Dvi[vo] £ d(vi, vo). Заметим что  Dvi[vo] никогда не увеличивается в алгоритме; таким образом если Dvi[vo] £ d(vi, vo) содержится в некоторой конфигурации то она лучшая конфигурация из всех.

Случай j = 0: d(vo, vo) = 0, и Dvo[vo] = 0 после выполнения инициализационной части узлом vo,, таким образом Dvo[vo] £ d(vo, vo) содержится после этого выполнения.

Случай j + 1: Допустим что достигнется конфигурация в которой для каждого i £ j, Dvi[vo] £d(vi, vo), и рассмотрим узел vj+1. Имеется кротчайший путь vj+1, vi,..., vo длины d(vj+1, vo) от vj+1 до vo, где vi отец vj+1 в T, отсюда i £ j. Следовательно, по индукции, достигается конфигурация в которой Dvi[vo] £ d(vi, vo). Всякий раз когда Dvi[vo] уменьшится, vi посылает сообщение < mydist, vo, Dvi[vo]> своим соседям, отсюда сообщение < mydist, vo,d> посылается к vj+1 по крайней мере однажды с d £ d(vi,vo).

По предположению, это сообщение принимается в C узлом vj+1. Алгоритм подразумевает что после получения этого сообщения хранится Dvi[vo] £ d +  , и выбор i подразумевает что  d +   £ d(vj+1, vo). 

 

Полный алгоритм также включает механизм с помощью которого узлы могут определить окончание вычисления.; сравним с замечанием об алгоритме Netchange в начале части 4.3.3. Механизм для определения завершения является вариацией алгоритма Дейкстры-Шолтена обсужденного в 8.2.1.

Алгоритм отличается от алгоритма Мерлина-Сигалла двумя вещами. Во-первых, нет "отца" узла u которому не посылаются сообщения типа < mydist,.,.>. Эта особенность алгоритма Мерлина и Сигалла гарантирует что таблицы всегда не содержат циклов, даже в течение вычислений и при наличии топологических изменений. Во-вторых, обмен сообщениями < mydist,.,. > не координируется в раундах, но существует отслеживание завершения, который влияет на сложность не лучшим образом.

Алгоритм может потребовать экспоненциальное количество сообщений для вычисления путей до одного пункта назначения vo. Если стоимости всех каналов равны (т.е., рассматривается маршрутизация с минимальным количеством переходов) все кротчайшие пути к vо вычисляются используя O (N |E|) сообщений (O(W) бит каждое), руководствуясь следующим результатом.

Теорема 4.13 Алгоритм Чанди и Мизра вычисляет таблицы маршрутизации с минимальным количеством шагов с помощью обменов 0(N2) сообщениями (N2W) бит на канал, и 0(N2|E|) сообщений и 0(N2 |E| W) бит всего.

 

Преимущество алгоритма Чанди и Мизра над алгоритмом Мерлина и Сигалла в его простоте, его меньшей пространственной сложности, и его меньшей временной сложности.

4.3 Алгоритм Netchange

 

Алгоритм Таджибнаписа Netchange [Taj77] вычисляет таблицы маршрутизации которые удовлетворяют мере "минимальное количество шагов". Алгоритм подобен алгоритму Чанди-Мизра, но содержит дополнительную информацию которая позволяет таблицам только частично перевычисляться после отказа или восстановления канала. Представление алгоритма в этой части придерживается Лампорта [Lam82]. Алгоритм основан на следующих предположениях.

Nl. Узлы знают размер сети (N).

N2. Каналы удовлетворяют дисциплине FIFO.

N3. Узлы уведомляют об отказах и восстановлениях смежных к ним каналов.

N4. Цена пути – количество каналов в пути.

Алгоритм может управлять отказами и восстановлениями или добавлениями каналов, но положим что узел уведомляет когда смежный с ним канал отказывает или восстанавливается. Отказ и восстановление узлов не рассматривается: на самом деле отказ узла можно рассматриваться его соседями как отказ соединяющего канала. Алгоритм содержит в каждом узле u таблицу Nbu [v], дающую для каждого пункт назначения v соседа u через которого u пересылает пакеты для v. Требования алгоритмов следующие:

 

Rl. Если топология сети остается постоянной после конечного числа топологических изменений, тогда алгоритм завершается после конечного числа шагов.

R2. Когда алгоритм завершает свою работу таблицы Nbu[v] удовлетворяют

(a) если v = u то Nbu[v] = local;

(b) если путь из u в v ¹ u существует то Nbu[v] = w, где w первый сосед u в кротчайшем пути из u в v,

(c)  если нет пути из u в v тогда Nbu[v] = udef.

4.3.1 Описание алгоритма

 

Алгоритм Таджибнаписа Netchange дан как алгоритмы 4.8 и 4.9. Шаги алгоритма будут сначала объяснены неформально, и, впоследствии правильность алгоритма будет доказана формально. Ради ясности моделирование топологических изменений упрощено по сравнению с [Lam82], примем, что уведомление об изменении обрабатывается одновременно двумя узлами задействованными изменениями. Это обозначено в Подразделе 4.3.3, как асинхронная обработка.

Выбор соседа через которого пакеты для v будут посылаться основан на оценке расстояния от каждого узла до v. Предпочитаемый сосед всегда сосед с минимальной оценкой расстояния. Узел u содержит оценку d(u, v) в Du[v] и оценки d(w, v) в ndisu[w, v] для каждого соседа u. Оценка Du[v] вычисляется из оценок ndisu[w, v], и оценки ndisu[w,v] получены посредством коммуникаций с соседями.

Вычисление оценок Du[v] происходит следующим образом. Если u = v тогда d(u, v) = 0 таким образом Du[v] становится 0 в этом случае. Если u ¹ v, кротчайший путь от u в v (если такой путь существует) состоит из канала из u до сосед, присоединенного к кратчайшему пути из сосед до v, и следовательно                                             d(u, v) = 1 + min d(w, v).

                                                              w Î Neigh u

Исходя из этого равенства, узел u ¹v оценивает d(u, v) применением этой формулы к оценочным значениям d(w, v), найденным в таблицах ndisu[w, v]. Так как всего N узлов, путь с минимальным количеством шагов имеет длину не более чем N—1. Узел может подозревать что такой путь не существует если оцененное расстояние равно N или больше; значение N используется для этой цели.

 

var   Neighu  : множество узлов; (* Соседи u *)

             Du: массив 0.. N;   (* Du[v] - оценки d(u, v) *)

            Nbu: массив узлов;  (* Nbu[v]- предпочтительный сосед для v *)

             ndisu: массив 0.. N;    (* ndisu[w, v] - оценки d (w. v) *)

 

Инициализация:

  begin forall w Î Neighu , v Î V do ndisu[w, v]:= N,

             forall v Î V do

                        begin Du[v]:= N;

                                   Nbu[v]:= udef

                         end;

              Du[u]:= 0; Nbu[u]:= local;

               forall w Î Neighu do послать < mydist, u, 0> к w

    end

 

процедура Recompute (v):

    begin if v = u

            then begin Du[v]:= 0; Nbu[v]:= local end

            else begin (* оценка расстояния до v *)

                      d:= 1 + min{ ndisu[w, v]: w Î Neighu};

                   if d < N then

                           begin Du[v]:= d;

                                     Nbu[v]:= w with 1 + ndisu[w, v] = d

                           end

                   else begin Du[v]:= N; Nbu[v]:= udef end

            end;

            if Du[v] изменилась then

                   forall x Î Neighu do послать < mydist, v, Du[v]> к x

     end

Алгоритм 4.8 Алгоритм Netchange (часть I, для узла u).

 

Алгоритм требует чтобы узел имел оценки расстояний до v своих соседей. Их они получают от этих узлов послав им сообщение <mydist,.,.> следующим образом. Если узел u вычисляет значение d как оценку своего расстояния до v (Du[v] = d), то эта информация посылается всем соседям в сообщении < mydist, v, d >. На получение сообщения <mydist, v, d> от соседа w, u означивает ndisu[w, v] значением d. В результате изменения ndisu[w, v] оценка  u расстояния d(u, v) может измениться и следовательно оценка перевычисляется каждый раз при изменении таблицы ndisu. Если оценка на самом деле изменилась то, на d' например, происходит соединение с соседями используя сообщение < mydist, v, d'>.

 

Алгоритм реагирует на отказы и восстановления каналов изменением локальных таблиц, и посылая сообщение <mydist,.,.> если оценка расстояния изменилась. Мы предположим что уведомление которое узлы получают о падении или подъеме канала (предположение N3) представлено в виде сообщений < fail,. > и < repair,. >. Канал между узлами u1 и u2 смоделирован двумя очередями, Q u1 u2  для сообщений от u1 к u1 и Q u2 u1 для сообщений из u2 в u1. Когда канал отказывает эти очереди удаляются из конфигурации (фактически вызывается потеря всех сообщений в обоих очередях) и узлы на обоих концах канала получают сообщение < fail,. >. Если канал между u1 и u1 отказывает, u1 получает сообщение < fail, u2 > и u2 получает сообщение < fail, u1 >. Когда канал восстанавливается (или добавляется новый канал в сети) две пустые очереди добавляются в конфигурацию и два узлы соединяются через канал получая сообщение < repair,. >. Если канал между u1 и u2 поднялся u1 получает сообщение< repair, u2 > и u2 получает сообщение < repair, u1 >.

 

Обработка сообщения < mydist, v,d>  от соседа w:

        { < mydist, v,d> через очередь Q wv }

        begin  получить < mydist, v,d> от w;

                    ndisu[w,v]:= d; Recompute (v)

          end

 

Произошел отказ канала uw:

        begin получить < fail, w>; Neighu:= Neighu \ {w},

                   forall v Î V do Recompute (v)

         end

Произошло восстановление канала uw:

       begin получить < repair, w>, Neighu:= Neighu È {w};

                      forall v Î V do

                              begin ndisu[w, v]:= N;

                                        послать < mydist, v, Du{[v]> to w

                              end

         end

Алгоритм 4.9 АЛГОРИТМ NETCHANGE (часть 2, для узла и).

Реакция алгоритма на отказы и восстановления выглядит следующим образом. Когда канал между u и w отказывает, w удаляется из Neighu и наоборот. Оценка расстояния перевычисляется для каждого пункта назначения и, конечно, рассылается всем существующим соседям если оно изменилось. Это случай если лучший маршрут был через отказавший канал и нет другого соседа w' с ndisu[w', v]= ndisu[w, v]. Когда канал восстановлен(или добавлен новый канал) то w добавляется в Neighu, но u имеет теперь неоцененное расстояние d(w, v) (и наоборот). Новый сосед w немедленно информирует относительно Du[v] для всех пунктов назначения v (посылая сообщения< mydist, v, Du[v] >). До тех пор пока u получает подобное сообщения от w, u использует N как оценку для d(w,v), т.е., он устанавливает ndisu[w, v] в N.

P(u, w, V) º

             up(u, w) Û w Î Neighu                              (1)

         Ù up(u, w) Ù Qwu содержит сообщение < mydis t,v,d> Þ

                последнее такое сообщение удовлетворят d = Du[v] (2)

        Ù up(u, w) Ù Qwu не содержит сообщение < mydis t,v,d> Þ

               ndisu[w, v] = Dw [v]                                  (3)

   L(u, v) º

                u = v Þ (Du[v] = 0 Ù Nbu[v] = local)        (4)

           Ù (u ¹ v) Ù $ w Î Neighu: ndisu[w, v] < N - 1) Þ

                (Du[v] = 1 + min ndisu[w, v] = 1 + ndisu[Nbu[v], v]) (5)

                                      w Î Neigh u

           Ù (u ¹ v Ù " w Î Neighu: ndisu[w, v] ³ N—1) Þ

                      (Du[v] = N Ù Nbu[v] = udef)                         (6)

Рисунок 4.10 Инварианты P(u, w, v) и L(u, v).

Инварианты алгоритма Netchange. Мы докажем что утверждения являются инвариантами; утверждения даны на Рисунке 4.10. Утверждение P(u, w, v) констатирует что если u закончил обработку сообщения <mydist, v,.>  от w то оценка u расстояния d(w,v) эквивалентна оценке w расстояния d(w, v). Пусть предикат up(u, w) истинен тогда и только тогда когда (двунаправленный) канал между u и w существует и действует. Утверждение L(u, v) констатирует что оценка u расстояния d(u, v) всегда согласована с локальными данными u, и Nbu[v] таким образом означен.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...