![]() |
|
|
Реферат: Распределенные алгоритмы(3)
P вычисляет Подпись Чтобы проверить подпись ( (1)
Вычислить (2)
Вычислить f (М, z) и проверить, что первые k бит - Если подпись истинна, значение z, вычисленное на первом шаге
проверки равняется значению x, используемому в подписывании и следовательно
первые k бит f (М, z) равны Подделка и заключительное решение. Мы рассмотрим теперь
стратегию подделывающего для получения подписи согласно вышеупомянутой схеме
без знания (1)
Выбрать k произвольных бит (2)
Выбрать произвольное число y и вычислить (3)
Вычислить f (М, x) и посмотреть, равняются ли первые k бит значениям Поскольку вероятность равенства в шаге (3) может быть принята При k = 72 и принятым временем (1)
p выбирает произвольные (2)
p вычисляет f (М, (3)
p вычисляет Чтобы проверить подпись ( (1)
Вычислить (2)
Вычислить f (М, Подделывающий, пытающийся произвести действительную подпись с той
же самой стратегией, что приведена выше, теперь имеет вероятность успеха в
третьем шаге В этом и предыдущем разделе было показано, что в синхронных системах существуют детерминированные решения для проблемы Византийского вещания. Максимальная способность восстановления таких решений - t < N/3, если не используется проверка подлинности (Раздел 14.1), и неограничена, если она используется (этот раздел). Во всех решениях, представленных здесь, синхронность была смоделирована с помощью (довольно сильных) предположений модели импульса; отказоустойчивая реализация модели импульса обсуждается в Разделе 14.3. Проблема расстрельной команды. В дополнение к принятию модели импульса, второе предположение, лежащее в основе всех решений, представленных до сих пор - то, что импульс, в котором вещание начинается, известен всем процессам (и пронумерован 1 для удобства). Если априори дело обстоит не так, возникает проблема старта алгоритма одновременно, после того, как один или более процессов (спонтанно) инициируют запрос просьбу о выполнении алгоритма вещания. Запрос может исходить от командующего (после вычисления результата, который должен быть объявлен всем процессам) или от помощников (понимающих, что им всем нужна информация, хранящаяся у командующего). Эта проблема изучается в литературе как проблема расстрельной команды. В этой проблеме, один или более процессов инициируют (запрос), но не обязательно в одном и том же импульсе, и процессы могут стрелять. Требования: (1) Обоснованность. Никакой корректный процесс не стреляет, если никакой процесс не инициировал. (2) Одновременность. Если любой корректный процесс стреляет, тогда все корректные процессы стреляют в том же самом импульсе. (3) Завершение. Если корректный процесс инициирует, то все корректные процессы стреляют в течение конечного числа импульсов. Действительно, имея решение для проблемы расстрельной команды, не нужно заранее соглашаться о первом импульсе вещания; процессы, запрашивающие вещание, инициируют алгоритм расстрельной команды, и вещание начинается в импульсе следующем за стрельбой. Методы, используемые в решениях проблемы Византийского-вещания и проблемы расстрельной команды, могут быть объединены, чтобы получить протоколы, более эффективные по времени, которые решают проблему вещания непосредственно в отсутствии априорного соглашения о первом импульсе. Временная сложность и рано останавливающиеся протоколы. В этой главе мы представили протоколы, использующие t + 1 или 2t + 3 импульсов, или раундов связи. Фишером и Линчем [FL82] показано, что t + 1 раундов связи - оптимальное число для t-устойчивых протоколов согласия, и результат был расширен, чтобы охватить протоколы с установлением подлинности, Долевом и Стронгом [DS83]. Тонкий момент в этих доказательствах - то, что в использованных сценариях процесс должен отказывать в каждом из импульсов с 1 по t, поэтому нижние границы в худшем случае - число фактических сбоев в течение выполнения. Так как в большинстве выполнений фактическое число сбоев намного ниже способности восстановления, изучалось существование протоколов, которые могут достигать соглашения ранее в тех выполнении, которые имеют маленькое число сбоев. Протоколы вещания с таким свойством называются рано останавливающимися. Долев, Райсчук и Стронг [DRS82] продемонстрировали нижнюю границу в f + 2 раунда для любого протокола в выполнении с f сбоями. Обсуждение нескольких рано останавливающихся протоколов вещания и согласия есть в [BGP92]. Рано останавливающиеся протоколы принимают решение в течение нескольких импульсов после того, как корректные процессы заключают, что был импульс без новых сбоев. Однако, нельзя гарантировать, что все корректные процессы достигают этого заключения в одном и том же импульсе. (Если, конечно, они не достигают его в импульсе t + 1; так как самое большее t процессов отказывают, среди первых t + 1 имеется один раунд, в котором никакого нового сбоя не происходит.) Как следствие, рано останавливающиеся протоколы не удовлетворяет одновременности. Коун и Дворк показали [CD91], что, чтобы достигнуть одновременности, в выполнении, где никаких сбоев не происходит, необходимо также t + 1 раунд, даже для рандомизированных протоколов и в (очень слабый) модели аварий. Это означает, что протоколам с установлением подлинности также нужно t + 1 импульсов для одновременного соглашения. Поблемы решения и согласованная непротиворечивость. При использовании протокола вещания в качестве подпрограммы, фактически все проблемы решения для синхронных систем могут быть решены достижением согласованной непротиворечивости, то есть соглашения о множестве входов. В проблеме согласованной непротиворечивости, процессы принимают решение о векторе входов, с одним элементов для каждого процесса в системе. Формально, требования таковы: (1)
Завершение. Каждый корректный процесс p останавливается на векторе
(2) Соглашение. Векторы решения корректных процессов равны. (3)
Зависимость. Если q корректен, то для корректного p, Согласованной непротиворечивости можно достичь множественными вещаниями:
каждый процесс вещает свой вход, и процесс p помещает свое решение в вещании q
в Так как каждый корректный процесс вычисляет один и тот же вектор (соглашение), большинство проблем решения легко решается с помощью детерминированной функции на векторе решения (что непосредственно гарантирует соглашение). Согласие, например, решается с помощью извлечения значения, имеющего большинство, из решающего вектора. Выбор решается извлечением самого маленького уникального идентификатора в векторе (остерегайтесь; избранный процесс может быть сбойным). В предыдущих разделах было показано, что (когда рассматриваются детерминированные алгоритмы) синхронные системы имеют более высокую способность восстановления, чем асинхронные. Это было сделано для идеализированной модели синхронности, где процессы функционируют в импульсах. Более высокая способность восстановления модели импульса означает, что не возможно детерминированно устойчиво синхронизировать полностью асинхронные сети. В этом разделе будет показано, что устойчивая реализация модели импульса возможна в модели асинхронных сетей ограниченных задержек (ABD (asynchronous bounded-delay) сети - АСОЗ). Модель АСОЗ характеризуется наличием локальных часов и верхней
границей на задержку сообщений. В описании и анализе алгоритмов мы используем кадр
реального времени (real-time frame), который
является назначением времени наступления Заглавные буквы (C, T) используются для времени часов, а строчные буквы (c, t) - для реального времени. Часы могут использоваться для управления наступлением событий, как в выражении when rоторое вызывает посылку сообщения во
время Значение идеальных часов увеличивается на
Различные часы в распределенных системах не показывают одно
и то же время часов в любой заданный момент реального времени, то есть, Задержка сообщений ограничена снизу
Так как выбор кадра реального времени свободный, предположения (14.1) и (14.2) относятся к временному кадру так же, как и к часам и системе связи. В этом подразделе будет изучена степень точности, с которой
процесс p может настраивать свои идеальные часы на идеальные часы надежного
сервера s. У детерминированного протокола самая лучшая доступная точность - Теорема 14.12
Существует детерминированный протокол для синхронизирования Доказательство. Мы сначала представим простой протокол и
докажем, что он достигает точности, заявленной в теореме. Чтобы
синхронизировать Чтобы доказать заявленную точность, назовем реальные
времена посылки и получения сообщения <time,
Т>
Рисунок 14.5 Сценарии для детерминированного протокола. Чтобы показать нижнюю границу для точности, пусть дан детерминированный
протокол; в этом протоколе p и s обмениваются некоторыми сообщениями, после
которых p корректирует свои часы. Рассматриваются два сценария для протокола,
как изображено на Рисунке 14.5. В первом сценарии, часы равны до выполнения,
все сообщения из s в p доставляются после Во втором сценарии Однако, ни p ни s не наблюдают различия между сценариями,
так как неопределенность в задержке сообщения скрывает различие; следовательно Этот минимум равняется (и случается при Если два процесса p и q синхронизируют свои часы с сервером
с этой точностью, достигается глобальная Лучшая точность достижима у вероятностного протокола синхронизации,
предложенного Кристианом [Cri89]. Для этого протокола принимается, что задержка
сообщения - стохастическая переменная, распределенная согласно (не обязательно
известной) функции Протокол прост; p просит, чтобы s послал время, и s
немедленно отвечает сообщением <time, T>.
Процесс p измеряет время I между посылкой запроса и получения
ответа; справедливо Лемма 14.13
Вероятностный протокол синхронизации часов достигает точности Доказательство. Вероятность того, что запрос p прибывает в
течение Временная сложность протокола уменьшается, если p посылает
новый запрос когда никакого ответа не было получено 14.3.2 Распределенная Синхронизация Часов Этот раздел представляет t-Византийско-устойчивый (при t <
N/3) распределенный алгоритм синхронизации часов Махани и Шнайдера [MS85].
Долев, Халперн и Стронг [DHS84] показали, что никакая синхронизация не возможна
при Ядро алгоритма синхронизации - протокол, который достигает неточного
соглашения о средних значениях часов. Процессы корректируют свои часы и достигают
высокой степени синхронизации. Из-за отклонения через некоторое время точность
ухудшается, что влечет за собой новый раунд синхронизации после некоторого
интервала. Предположим, что в реальное время Неточное соглашение: алгоритм с быстрой сходимостью. В
проблеме неточного соглашения, используемой Махани и Шнайдером [MS85] для
синхронизации часов, процесс p имеет действительное входное значение var
begin (*фаза сбора входов*) forall wait while (*Теперь вычислить приемлемые значения*) while end После получения <ask> от q: send<val, После получения <val, x> от q: if такое сообщение не было получено от q прежде then insert( Алгоритм 14.6 алгоритм с быстрой сходимостью. Алгоритм с быстрой сходимостью, предложенный Махани и
Шнайдером дан как Алгоритм 14.6. Для конечного множества Затем процесс применяет к полученным значениям фильтр,
который гарантированно пропускает все значения корректных процессов и только те
сбойные значения, которые достаточно близки к правильным значениям. Поскольку
корректные значения отличаются только на Затем вычисляется выход с помощью усреднения значений - все
отклоненные значения заменяются оценкой, вычисленной применением
детерминированной функции estimator к оставшимся значениям. Эта функция
удовлетворяет Теорема 14.14
Алгоритм с быстрой сходимостью достигает точности Доказательство. Пусть Первая граница следует из того, что, так как если p и r -
корректные процессы, то Вторая граница справедлива, так как для корректных p и q, Отсюда следует, что для корректных p и q,
= = o Произвольная точность может быть достигнута повторением
алгоритма; после i итераций, точность становится Синхронизация Часов. Чтобы синхронизировать часы,
используется алгоритм с быстрой сходимостью, чтобы достигнуть неточного
соглашения по новому значению часов. Предполагается, что часы первоначально (1) Задержка сообщения точно не известна, так что процесс не может знать точное значение другого процесса; и (2) При выполнении алгоритма идет время, так что часы не имеют постоянных значения, а увеличиваются со временем. Чтобы компенсировать неизвестную задержку, процесс добавляет var
begin (*фаза сбора входов*) forall wait while (*Теперь вычислить приемлемые значения*) while end После получения <ask> от q: send<val, После получения <val, С> от q: if такое сообщение не было получено от q прежде then Алгоритм 14.7 быстрая сходимость часов. Заметьте, что в Алгоритме 14.7 фильтр имеет более широкую
грань, а именно Утверждение 14.15
Для корректных p, q, и r, после лимита времени p выполняется Доказательство. Передача сообщения <val,
C> от q до p осуществляет детерминированный алгоритм чтения часов из
Теоремы 14.12. Когда p получает это сообщение, [1] - функция Эйлера “фи”; - размер |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |