<<
>>

Модели конечных автоматов

Ключевой концепцией, используемой в моделях протоколов, является модель конечных автоматов. Данный метод рассматривает состояния, в которых находится протокольная машина (то есть отправитель или получатель) в каждый момент времени.
Состояние протокольной машины включает в себя значения всех ее переменных, в том числе и программные счетчики.

В большинстве случаев многие состояния можно объединить для анализа в группы. Например, рассматривая получателя в протоколе 3, мы можем выделить из всех его возможных состояний два самых важных: ожидание кадра 0 и ожидание кадра 1. Все остальные состояния могут рассматриваться как временные, промежуточные между этими двумя. Обычно выбираются состояния, соответствующие ожидаемым событиям (это соответствует вызову процедуры wait (event) в наших примерах протоколов). Состояние протокольной машины полностью определяется состоянием ее переменных. Количество состояний равно 2", где п — количество битов, необходимых для описания всех переменных, вместе взятых.

Состояние всей системы представляет собой комбинацию всех состояний двух протокольных машин и состояний канала. Состояние канала определяется его содержимым. При использовании протокола 3 у канала может быть четыре возможных состояния: кадр 0 или кадр 1, перемещающийся от отправителя к получателю, кадр подтверждения, двигающийся в противоположном направлении, или пустой канал. Если отправитель и получатель могут находиться в двух различных состояниях, то вся система будет иметь 16 различных состояний.

Следует сказать несколько слов о состоянии канала. Концепция кадра, находящегося в канале, конечно, является абстракцией. Имеется в виду, что кадр частично передан, частично принят, но еще не обработан получателем. Кадр остается «в канале» до тех пор, пока протокольная машина не выполнит процедуру from_physical Jayer и не обработает его.

Каждое состояние может быть соединено с другими состояниями несколькими (О или больше) переходами. Переходы всегда соответствуют каким-либо событиям. Для протокольной машины переход происходит, когда прибывает новый кадр, истекает время ожидания какого-либо таймера, происходит прерывание и т. д. Для канала обычными событиями являются следующие: помещение протокольной машиной в канал нового кадра, доставка кадра протокольной машине или потеря кадра вследствие всплеска шума. Имея полное описание протокольной машины и характеристик канала, можно нарисовать направленный граф, изображающий все состояния в виде узлов, а переходы — в виде направленных дуг.

Одно особое состояние обозначается как начальное. Оно соответствует состоянию системы в момент ее запуска или состоянию, близкому к нему. Из начального состояния можно попасть во многие (вероятно, даже во все) другие состояния с помощью серии переходов. Применяя хорошо известные методы теории графов (например, вычисляя транзитивное замыкание графа), можно определить, какие из состояний достижимы, а какие нет. Такой метод называется анализом достижимости (Lin и др., 1987). Данный анализ может быть полезен для определения правильности протокола.

Формально модель протокола машины конечных состояний можно рассматривать как набор их четырех множеств (5, М, I, Т), где S — множество состояний, в которых могут находиться процессы и канал; М — множество кадров, передающихся по каналу; I — множество начальных состояний процессов; Т — множе- ’ ство переходов между состояниями.

В начальный момент времени все процессы находятся в исходном состоянии. Затем начинают происходить события — например, появляются кадры, которые нужно передать по каналу, или срабатывает таймер. Каждое событие может переключить один из процессов или канал в новое состояние. Тщательно нумеруя все возможные предшественники каждого состояния, можно построить дерево достижимости и проанализировать протокол.

Анализ достижимости может применяться для обнаружения разнообразных ошибок спецификации протокола.

Например, если какой-либо кадр может оказаться в таком состоянии, в котором конечный автомат не сможет определить, какое действие следует предпринять, это означает, что спецификация ошибочна (неполнота протокола). Если имеется ряд состояний, из которых нет выхода (то есть никакие кадры больше не смогут передаваться), это также означает ошибку спецификации (тупик). Менее серьезной ошибкой спецификации протокола является описание обработки события в состоянии, в котором это событие не может произойти (лишний переход). Могут быть обнаружены и другие ошибки.

В качестве примера конечного автомата рассмотрим рис. 3.14, а. Этот граф соответствует протоколу 3, описанному ранее, — у каждой протокольной машины может быть два состояния, а у канала — четыре состояния. Итого возможны 16 состояний, некоторые из которых недоступны из начального состояния. Недостижимые состояния не показаны на рисунке. Для упрощения также опущены ситуации с ошибками контрольных сумм.

Каждое состояние помечено тремя символами: SRC, где S является 0 или 1 и соответствует номеру кадра, который пытается послать отправитель; R также может быть равно 0 или 1 и означает номер кадра, ожидаемого получателем, а С может принимать значения 0, 1, Л или пусто (-), в соответствии с состоянием канала. В данном примере было выбрано исходное состояние (000). То есть отправитель только что послал кадр 0, получатель ожидает кадра 0, и кадр 0 находится в канале.

б

Рис. 3.14. Диаграмма состояний для протокола 3 (а); переходы (б)

На рис. 3.14 показаны девять типов переходов. Переход 0 заключается в потере каналом содержимого. Переход 1 состоит в том, что канал успешно доставляет пакет 0 получателю, при этом получатель передает пакет 0 своему сетевому уровню, изменяет свое состояние на ожидание кадра 1 и пересылает подтверждение. Остальные переходы приведены на рис.

3.14, б. Прибытие кадра с неверной контрольной суммой не показано, так как оно не изменяет состояния в протоколе 3.

При нормальной работе протокола переходы 1, 2, 3 и 4 повторяются друг за другом снова и снова. На каждом цикле доставляются два пакета, возвращая отправителя в исходное состояние, в котором он пытается переслать новый кадр с последовательным номером 0. Если канал теряет кадр 0, происходит переход из состояния (000) в состояние (00-). Наконец у отправителя срабатывает таймер (переход 7), и система возвращается в состояние (000). Потеря подтверждения является более сложной ситуацией, так как требует для восстановления два перехода — 7 и 5 (или 8 и 6 в симметричной ситуации).

Одно из свойств, которыми должен обладать протокол с 1-битовым порядковым номером, заключается в том, что ни при каких обстоятельствах получатель не должен передавать своему сетевому уровню два нечетных пакета подряд, не передав между ними четного пакета, и наоборот. Для изображенного на рис. 3.14 графа это требование может быть перефразировано более формально так: «не должно быть пути, начинающегося в исходном состоянии, при котором переход 1 осуществляется два раза подряд без перехода 3 между ними, и наоборот». Из рисунка видно, что данное требование удовлетворяется.

Другим сходным требованием является отсутствие пути, при котором отправитель изменяет свое состояние дважды (например, с 0 на 1 и обратно на 0) при неизменном состоянии получателя. Существование такого пути означало бы, что два кадра подряд были безвозвратно потеряны, причем так, что получатель этого не заметил. При этом в последовательности доставляемых сетевому уровню пакетов образовалась бы незамеченная брешь в два пакета.

Еще одним важным свойством протоколов является отсутствие тупиков. Тупиком называется ситуация, в которой протокол не может продвинуться дальше (то есть доставлять пакеты сетевому уровню) ни при каких обстоятельствах.

__ Втерминах графической модели наличие тупика характеризуется существованием подмножества состояний, достижимого из исходного состояния и обладающего двумя следующими свойствами:

1. Из этого подмножества состояний нет перехода.

2. В подмножестве нет переходов, обеспечивающих дальнейшую работу протокола.

Попав в тупиковую ситуацию, протокол остается в ней навсегда. По графу видно, что в протоколе 3 нет тупиков.

<< | >>
Источник: Э. ТАНЕНБАУМ. КОМПЬЮТЕРНЫЕ СЕТИ 4-Е ИЗДАНИЕ. 2003

Еще по теме Модели конечных автоматов:

  1. 14.2. Реализация моделей клеточных автоматов на ЭВМ
  2. Игровые автоматы
  3. «автомат общественного мнения».
  4. 3. Продажа товаров с использованием автоматов
  5. Статья 703. Продажа товаров с использованием автоматов
  6. НАСЛАЖДЕНИЕ КОНЕЧНОЕ
  7. ФАНТОМ КОНЕЧНОСТИ
  8. Конечные причины
  9. СОСРЕДОТОЧЬТЕСЬ НА КОНЕЧНОМ РЕЗУЛЬТАТЕ
  10. ДУМАЙТЕ О КОНЕЧНОЙ ЦЕЛИ
  11. Конечный пункт аспекта в знаке Зодиака
  12. Модель личности журналиста: профессиональные, социально-гражданские, нравственные, психологические и социально-демографические характеристики. Модификация общей модели для разных специализаций (репортер, аналитик, расследователь, публицист, ведущий-модератор и т.п.).
  13. ШАГ 2. МЫСЛЕННОЕ ПРЕДСТАВЛЕНИЕ КОНЕЧНОГО РЕЗУЛЬТАТА
  14. “Констрикция” и “дилатация”. Два конечных и промежуточное состояние
  15. Конечно, в качестве Ключа возможны не только идеомоторные приемы, но...
  16. Конечно, в качестве Ключа возможны не только идеомоторные приемы, но...
  17. Глава 9 Пять слов, от которых зависит конечный результат.
  18. От того, в каком ключе, официальном или неофициальном, беседа начнется, зависят ее тактика и конечные результаты.
  19. Знание о том, что нужно делать, не подразумевает, что вы абсолютно уверены в конечном результате.