Модель машины конечных состояний
10.23 Модель машины конечных состояний
Семенов Ю.А. (ГНЦ ИТЭФ)
Базовой концепцией построения многих современных протоколов является машина конечных состояний (FSM - Finite State Machine). При этом подходе каждый протокол характеризуется машиной, которая в любой момент времени находится в каком-то конкретном состоянии. Каждому состоянию соответствует определнный набор значений системных переменных. Такой подход требует определенного уровня абстрагирования. Например, для того чтобы ЭВМ перешла из состояния ожидания в состояние, когда получено некоторое сообщение, реализуется достаточно много промежуточных операций (проверка качества сигнала, контроль целостности сообщения, проверка отсутствия переполнения буфера и многие другие). Все эти промежуточные операции и состояния считаются переходными и в данной модели не рассматриваются. Таким образом, состояние протокольной машины полностью определяется набором значений определенных системных переменных. Так состояние протокольной машины канала определяется состояниями клиента и сервера. Если состояние как отправителя так и получателя характеризуются двумя битами, то состояние системы будет характеризоваться 16 состояниями. Из любого состояния может быть нуль или более возможных переходов в другое состояние. Переход из одного состояние в другое происходит при наступлении определенного события (например, полчение сообщения, прерывание, таймаут и т.д.).
Машина состояний протокола может быть охарактеризована с помощью ориентированного графа, в котором число узлов равно числу конечных состояний системы, а число ребер всей совокупности возможных переходов из одного состояния в другое. Одно из состояний выбирается в качестве исходного. Из этого состояния система может попасть в некоторые (все) другие состояния с помощью последовательности переходов. Данный подход позволяет часто выявить слабые места протокола (например, возможности "повисаний").
Машина конечных состояний протокола характеризуется следующими наборами переменных |
S |
Набор состояний процессов и канала |
M |
Набор кадров, которые могут быть переданы по каналу |
I |
Набор исходных состояний процессов |
T |
Набор переходов между состояниями |
В начальный момент все процессы находятся в исходных состояниях. Дальнейшие переходы из состояния в состояние определяются событиями, происходящими в системе. Каждое событие может вызвать переход в новое состояние какого-то процесса или канала. Если в результате анализа графа машины конечных состояний выясняется, что в случае прихода кадра некоторого типа, не определено, в какое состояние должна перейти машина, это свидетельствует о наличии ошибки в протоколе. Если обнаруживается одно или несколько состояний, из которых нет перехода куда-либо во вне (тупик), такое положение также свидетельствует об ошибке. В качестве примера машины конечных состояний можно рассмотреть граф протокола
TCP.
Содержание раздела