Индикатор работоспособности. Для функций вышерасположенного уровня может оказаться важным иметь уверенность в том, что подуровень УДС работает надлежащим образом и подсоединен к функционирующей сети. Указатель работоспособности обеспечивает внутреннее для станции периодическое информирование о том, что подуровень УДС функционирует надлежащим образом и что УДС других станций работоспособны.
Указанное информирование осуществляется, когда УД—КА пересекает дугу отсутствие_ответа_10 с новым значением переменной состояние-передачи, равной значению переменной передача- маркера. Информирование о работоспособности происходит, когда станция открывает окно ответа и ничего не опознает в этом окне. Указатель работоспособности информирует о том, что станция принимает маркер от другой станции и что значение ее преемника не изменилось, что является нормальными условиями устойчивого функционирования сети.
Информирование о работоспособности должно осуществляться периодически в той станции, где переменная желание-участвовать остается истинной, а переменная единственная_активная_станция — ложной; другими словами, в той станции, которая является участником активного логического кольца. Если информирование о работоспособности происходит не периодически, монитор станции может предположить, что либо УДС станции неправильно функционирует, либо в сети возникла какая-то другая катастрофическая неисправность. После, возможно, небольшого числа повторных попыток станция должна быть удалена из сети для того, чтобы защитить другие станции от влияния возможного неисправного УДС.
Выход из кольца. Если переменная желание-участвовать установлена в значение «ложно», и станции входят и выходят из кольца, то удаленная станция может повторно войти в кольцо при значении СС_известен «истинно», но недействительным СС. Эта ситуация может быть разрешена через обычный механизм восстановления кольца.
Такая ситуация имеет место, когда станция занимает дугу вы- ход-из-кольца, тогда переменная желание-участвовать или ожи- дание-любой-передачи становится истинной, прежде чем станция сможет занять дугу выход-из-кольца и, таким образом, станция сможет вновь войти в кольцо через дугу восстановление-запроса- вхождения и не изменять адрес СС. Эта последовательность может привести к безуспешности передачи маркера, к вопросам кто-следующий? и в исключительных случаях — к выдаче за- прос-любой-стаиции.
При необходимости этой ситуации можно избежать, запретив станции, которая находится в процессе выхода из кольца, входить снова в кольцо через дугу восстановление_запроса-вхождения.
Делегирование права на передачу. Станция, владеющая маркером, может запросить другую станцию, не владеющую маркером, передать ответ. Фактически первая станция делегирует другой станции полномочие на передачу. Вторичная станция должна удовлетворять всем требованиям, предъявляемым настоящим стандартом к владельцу маркера, за исключением требования к участию в логическом кольце передачи маркера и к соответствующим протокольным механизмам (если только эта вторичная станция не входит или нс требует входа в кольцо). Эта вторичная станция не обязательно должна быть участником логического кольца с точки зрения адресации. Она не должна передавать в сеть свои данные, если только не имеет место следующее:
она уполномочена владельцем маркера выполнить функции передатчика или
передача данных разрешена процедурами, определенными в разд. 7.
7. КОНЕЧНЫЙ АВТОМАТ УПРАВЛЕНИЯ ДОСТУПОМ (УД-КА). ФОРМАЛИЗОВАННОЕ ОПИСАНИЕ
В данном разделе определяется механизм управления доступом к среде с передачей маркера. Раздел начинается с описания переменных и функций, используемых при определении алгоритма. Вторая часть данного раздела представляет собой формальное описание на языке конечных автоматов механизма управления доступом с использованием переменных и функций, рассмотренных в первой части.
Переменные и функции. Переменные и функции описания конечного автомата подразделяются на следующие категории.
Переменные, определяемые диспетчером станции.
Переменные, определяемые интерфейсным конечным автоматом.
Таймеры (тайм-ауты).
Переменные, определяемые приемным конечным автоматом.
Прочие функции и функции УД—КА.
Переменные диспетчера станции. Диспетчер станции обеспечивает подуровень УДС следующими параметрами.
ДС — адрес данной станции. Переменная потока бит, установленная в значение 16- или 48-битного адреса станции. Значение ДС неявно определяет длину сетевого адреса.
Интервал.ответа — целое число в диапазоне от 1 до (213—1) октетных-интервалов. См. пн. 5.1.1 и 6.1.8.
Мин_длина_преамбулы_после_молчания — целое число в диапазоне 1 —15, равное минимальному числу октетов преамбулы, подлежащей использованию в начале передачи после того, как закончилось молчание станции. Значение параметра мин-длины_ преамбулы_после_молчания определяется типом физического уровня станции. В п. 9.3 описан способ получения этого параметра из диспетчера физического уровня при инициации станции.
Макс_счет_передач — целое число, равное половине длины адреса станции, в битах, плюс единица. (Таким образом, это число равно 9 при 16-битном адресе и 25 при 48-битном адресе).
Значение параметра макс-счет-передач ограничивает циклы в УД—КА. Оно используется для ограничения процесса соперничества за овладение маркером. После прохождения циклов соперничества через значение макс-счет_передач процесс должен быть остановлен, если вследствие ошибки отдельный соперник не может быть удовлетворен.
Значение параметра макс-счет_передач используется также для прекращения процесса заявки маркера. После того как кадр заявки маркера будет передан макс-счет_передач без опознания каких-либо передач от других станций, станция может считать, что она заявила маркер.
Макс_счет_внутр_запросов — целое число в диапазоне от 24 до (28—1), определяющее, сколько раз станция владела маркером. Это число вместе со значением тайм-аута обслуживания-кольца определяет, как часто станция открывает окна ответа. Обычно станция открывает окна ответа перед каждой n-й передачей маркера, где п — значение макс_счета_внутр-запросов.
Если бы все станции кольца использовали одинаковое значение макс_счета-внутр_запросов, они могли бы согласованно открывать окна ответа при одном и том же обороте маркера. Эти действия привели бы к быстрым оборотам маркера, когда ни одно окно ответа не открыто и к случайным оборотам маркера, когда каждая станция открывает окно ответа перед передачей маркера.
Чтобы исключить возможность того, что все станции кольца имеют одинаковое значение макс_счета_внутр_запросов, два наименее значащих бита этой переменной должны быть выбраны по случайному закону. Фактическое значение, используемое для макс_счета_внутр_запросов, должно изменяться каждой станцией путем повторного выбора случайных значений двух наименее значимых бит этой переменной, по меньшей мере, через каждые 50 мс или при каждом ее использовании.
Макс_число-попыток — целое число в диапазоне от 0 до 7, определяющее число повторных передач станцией кадра запрос- с_ответом в случае отсутствия на него ответа.
Желаемое_время_обращения_(класс_доступа) — пространство целых чисел в диапазоне от 0 до 221-однооктетных_интервалов, используемых в факультативных процедурах назначения приоритетов и в тайм-ауте обслуживания-кольца. (См. п. 7.1.4 относительно функций этой переменной). •
Начальное_значение_тайм-аута_обслуживания_кольца — целое число в диапазоне от 0 до 221-однооктетных-интервалов, используемое для определения начального значения тайм-аута-оборота_ маркера (обслуживание-кольца) при входе станции в кольцо. Большое значение этого числа заставит станцию запросить преемников сразу же после ее входа в кольцо, а нулевое его значение приведет к отсрочке станцией этого запроса, по меньшей мере, на один оборот маркера. В конкретной реализации ненулевое значение может рассматриваться как бесконечное.
Время_удержания_маркера_высш_приоритета — целое число в диапазоне от 0 до 216-однооктетных_интервалов. Используется для контроля максимального времени, в течение которого станция может передавать кадры при классе доступа 6. Если факультативная возможность назначения приоритетов не используется, тогда время_удержания_маркера-высш_приоритета определяет, как дол* го станция может передавать кадры любого класса доступа.
Желание.участвовать — булева переменная, которая определяет условие устойчивого состояния УД—КА, в котором он не имеет в очереди запросов на передачу. Если эта переменная истинна, станция должна быть в-кольце (быть участником логического кольца с передачей маркера). Если эта переменная ложна, станция должна быть вне_кольца (быть наблюдателем логического кольца с передачей маркера).
Переменные и функции интерфейсного конечного автомата
Изъятие-ожидающего_кадра (класс_доступа) — функция, обеспечиваемая автоматом ИНТ—КА. Эта функция изымает .первый кадр из очереди ожидающих кадров указанного класса доступа п выдает его автомату УД-КА для передачи.
Получение_задержанного_ответа () — функция, обеспечиваемая интерфейсным конечным автоматом УДС. Эта функция воспринимает ответный кадр, выдаваемый пользователем УДС, и выдает его в УД—КА для передачи. Возможен только один ответный кадр в любой момент времени.
Ожидание-передачи (класс_доступа) — пространство булевых переменных, отражающее состояние очереди ожидающих кадров. Эта переменная будет иметь значение «истинно», если очередь ожидающих кадров указанного класса доступа не пустая и «ложно» в противном случае.
Ожидание-любой-передачи — булева переменная, выражающая логическое ИЛИ всех булевых переменных «ожндание-псре- дач'И» (кл аос-досту па). Значение этой переменной истинно, если, по меньшей мере, одна из очередей ожидающих кадров не пустая. Если все очереди пусты, значение этой переменной ложно.
Принят-ответ — булева переменная, которая принимает значение «истинно», когда ИНТ—КА получает действительный кадр ответа после передачи станцией кадра запрос-с-ответом.
Питание-вкл — булева переменная, указывающая, что УД— КА может начинать работу. Ее значение обеспечивается диспетчером станции.
Замечание по управлению членством логического кольца. Булева переменная желание-участвовать функция и ожидание-ка- кой-либо_передачи определяют операции УД—КА относительно соперничества за овладение маркером и участия в логическом кольце в соответствии со следующей таблицей.Значения переменных и функций |
Действия УД—КА |
|
желание_участвовать |
ожи дани е_.какой—л и - бо_передачи |
|
ЛОЖНО |
ложно |
Не соперничает за маркер. Выходит из кольца, если был его участником |
ЛОЖНО |
истинно |
Соперничал за маркер. Передал данные, что могло исчерпать очереди ожидающих кадров и установил переменную ожидание_любой_передачи в значение «ложно». Выходит из логического кольца, если эта переменная становится ложной |
истинно |
ложно |
Соперничает за маркер, если эта станция не единственная активная. Остается в логическом кольце даже при отсутствии данных для передачи |
истинно |
истинно |
Соперничал за маркер. Остается в логическом кольце и передает данные |
Тайм-ауты. При описании конечного автомата используется большое число тайм-аутов. Тайм-аут определяется как совокупность процедур и булевых переменных. Процедуры именуются как тайм-аут-хх.старт (значение), где хх — имя тайм-аута, а «значение» — целое число, которое устанавливает задержку тайм-аута. Тайм-аут-хх.значение сообщает текущее значение счетчика. Булевы переменные именуются тайм-аут-хх.истек и принимают значение «ложно» в процессе отсчета тайм-аута и значение «истинно», когда тайм-аут истекает и достигнет значения ноль.
Например, тайм-аут шина-свободна устанавливается в значение «один» (.интервал ответа) путем отсчета тайм-аута_ш.ина_сво- бодна.старт (1). Переменная тайм-аут-шипа-свободна.истек принимает значение «ложно» в течение одного интервала-ответа.
Интервальные тайм-ауты интервала-ответа. Первые пять тайм-аутов (тайм-аут ліина-свободная, тайм-аут-заявки, тайм-аут_окна_ответа, тайм-аут_соперничества и тайм-аут-переда- чи-маркера) оперируют целыми числами, кратными сетевому ин- тервалу-ответа. (Первые пять тайм-аутов не используются одновременно, поэтому они могут быть реализованы одним схемным таймером).
Тайм-аут_шина_свободна — управляет длительностью, в течение которой станция в состоянии ДЕЖУРНОЕ прослушивает любые данные в среде до входа в состояние ЗАЯВКА-МАРКЕРА й повторной инициации сети. Большинство станций ожидают в течение семи интервалов-ответа. Одна из станций сети, имеющая на- именьший_адрес, ожидает в течение шести интервалов_ответа. Функция макс-шина_свободна выдает значение 6 или 7 в зависимости от состояния наименьшего-адреса.
Тайм-ауТ-заявки — управляет длительностью интервалов между передачами кадров заявка_маркера, в течение которых станция прослушивает. Таймер_заявки всегда загружается значением 1.