Опознан-преемник — булева переменная, используемая запрашивающей станцией для регистрации приема действительного кадра установить-преемника во время последовательности запрос- вхождения. Если эта переменная имеет значение «истинно», когда тайм-аут_окна_ответа истек, соперничество успешно разрешено.
Счет_передач_заявок — целое число в диапазоне от 0 до макс- счета_яіередач. Используется в качестве индекса ДС для выбора двух бит из адреса станции. Значение выбранных бит (кратное двум интервалам-ответа) определяет длину поля информации кадра заявка-маркера, подлежащего передаче. После каждого кадра заявка_маркера значение переменной счет-передач-заявок увеличивается на единицу.
Счет_прохождений_соперничества — целое число в диапазоне ют 0 до макс-счета-передач. Используется в качестве индекса ДС для выбора двух бит из адреса станции. Дополнение до единиц значения выбранных бит (кратного интервалу-ответа) определяет длительность времени, в течение которого станция задерживается в состоянии ЗАПРОС-ВХОЖДЕНИЯ после получения кадра раз- решение_соперничества. Если до истечения тайм-аута соперничества никаких других кадров не опознано, станция передает владельцу маркера кадр установить-преемника, увеличивает значения счета-прохождений-соперничества, переходит в состояниеЗАДЕРЖКА-ЗАПРОС А и ожидает маркер или другой кадр раз- решение-соперничества.
Задержка-соперничества (цикл) — целочисленная функция, принимающая значения 0, 1, 2 или 3. Эти значения основаны на дополнении до единиц пары адресных бит, которые указываются в цикле сортировки адресов. Это значение используется для управления числом интервалов-ответа, на которые станция задерживается перед передачей при запросе вхождения в логическое кольцо.
Счет_прохождений-разрешения — целое число в диапазоне от О до макс-счета-передач. Используется для счета числа прохождений разрешений соперничества, которые выполняет станция,, владеющая маркером. Если этот счет достигает.значения макс- счета_передач, процесс разрешения прекращается и УД—КА переходит в следующее подсостояние передача-маркера.
Счет_запросов — целое число в диапазоне от 0 до 28—1.
Определяет, когда станция должна открыть окно ответа. Перед передачей маркера значение счета-запросов проверяется. Если это значение равно нулю, запрашивается новый преемник открытием окна ответа. Если это значение не равно нулю, счет уменьшается и передается маркер. Всякий раз, когда во время окон ответа, следующих за кадром запрос-преемника, что-либо- опознается, значение счетчика устанавливается в ноль, с тем, чтобы он снова оказался в значении ноль, когда станция в последующем примет и передаст маркер. Таким образом, получение кадра установить-преемника во время окна ответа побуждает станцию вновь открыть окно ответа перед следующей передачей маркера (тайм-аут-обслуживания_кольца разрешен).
Оставшиеся-попытки — целое число в диапазоне от 0 до пре- дельного-числа-попыток. Используется для счета числа повторных передач при таймировании кадра, определяющего запрос-с- ответом.
Подавление_КПК — булева переменная, используемая в УД—КА для указания на то, что текущий кадр должен быть передан без добавления КПК автоматом ПД—КА.
Счет_сбоев_передатчика — целое число в диапазоне от 0 до 7. Используется для информирования о том, что передатчик станции, вероятно неисправен, в связи с чем передачи станции не- могут быть опознаны правильно другими станциями сети.
Значение счета-сбоев_передатчика увеличивается каждый раз,, когда станция решает закончить процесс соперничества за маркер или когда она не в состоянии передать маркер какому-либо преемнику. Ни одна из таких ситуаций не должна иметь место во время нормальной работы. Значение счета-сбоев-передатчика сбрасывается в ноль, если станция либо побеждает в процессе маркерного соперничества запрос-вхождения, либо успешно запрашивает нового преемника, поскольку такое событие указывает, что другая станция правильно опознала передачу данной станции.
Если значение счета_сбоев_передатчика возросло до значения макс_счет_сбоев-передатчика, станция сообщает диспетчеру станции передатчик-неисправен и входит в состояние АВТОНОМНОЕ. Значение макс-счет-сбоев-передатчика устанавливается равным 7, допустимое при случайных протокольных тупиковых последовательностях, обусловленных помехами. Если станция не может войти в кольцо или передать маркер (находилась в логическом кольце) семь раз подряд, это значит что внешние влияния вызвали какую-то неисправность в станции, вероятно, в передатчике, и поэтому станция сама выходит из логического кольца.
Первые-помехи — булева переменная, которая управляет обработкой пакетов помех в состоянии КОНТРОЛЬ-ПЕРЕДАЧИ- МАРКЕРА. Принимает значение «истинно» при входе в это состояние и значение «ложно», когда ожидаемые отраженные сигналы ложны и опознан пакет помех. Если пакет помех опознается, когда переменная первые-помехи имеет значение «ложно», станция переходит в состояние ДЕЖУРНОЕ.
Ожидаемое_отражение — булева переменная, используемая при попытке передать маркер. Она помогает станции отличать опознаваемые передачи своего собственного маркера от только что переданных новым владельцем маркера искаженных данных. Переменная ожидаемое_отражение устанавливается в значение «истинно» при передаче маркера и в значение «ложно», когда станция опознает, или предположительно опознает отраженные сигналы переданного ею маркера.
Состояние_передачи — переменная многих состояний, используемая для управления операциями подсостояния состояния ПЕ- РЕДАЧА-МАРКЕРА.
Действия, выполняемые в этом состоянии, зависят от значения переменной состояние-передачи следующим образом:
Значение переменной состояние_передачи |
Действие |
Запрос_ирссмиика |
Передача кадра запрос-преемника. Вход в состояние ОЖИДАНИЕ-ОТВЕТА |
Передача-маркера |
Передача маркера преемнику. Вход в состояние КОНТРОЛЬ_ПЕРЕДАЧИ_МАР. КЕРА |
Повторная-передача- тларкера Кто_следующий? |
Те же действия, что и в подсостоянии пе- редача-маркера Передача кадра кто следующий? Вход в состояние ОЖИДАНИЕ-ОТВЕТА |
Значение переменной состояние_передачи |
Действие |
Запрос-любой-станции |
Передача кадра запрос-преемника-2 с АП-ДС и с двумя открытыми окнами ответа, которые охватывают все другие станции. Вход в состояние ОЖИДАНИЕ-ОТ- ВЕТА |
Общая неисправность |
Установка переменной станция-ограни- ченной-іакшивиоісти в значение «истинно» и либо молчаливая передача маркера обратно самой себе (если станция имеет дополнительные данные для передачи), либо вход в состояние ДЕЖУРНОЕ. Эта станция не должна передавать снова до тех пор, пока не будет иметь данных для передачи или пока не опознает действительного кадра от другой станции |
ИНТ — КА-СОБЫТИЕ.уведомление — функция, обеспечиваемая автоматом УД—КА. Эта функция настраивает автомат ИНТ—КА на появление значительных событий в автомате УД-КА.
УЗ_СОБЫТИЕ.уведомление — функция, обеспечиваемая подуровнем УДС, которая настраивает диспетчера на появление значительных событий в подуровне УДС.
7Л.7. Переменные инициации. Значения переменных, описываемых в настоящем разделе, копируются в соответствующие операционные переменные при инициации станции. Каждая переменная инициации имеет тот же диапазон, что и соответствующая поименованная операционная переменная.
иниц-ДС — копируется в ДС при инициации
иниц_интервал_ответа — копируется в интервал_ответа при инициации
иниц-макс-счет-запросов — копируется в макс-счет-запросов при инициации
иниц_макс_числа_попыток — копируется в макс-число-попы- ток при инициации
иниц_время_удержания_маркера_высш_приоритета — копируется в время-удержания_маркера-высш-приоритета при инициации
иниц-желаемого-времени-оборота (класс доступа) — копируется в желаемое-время_обоірота (класс доступа) при инициации
иниц_исходного_значения_таймера_обслуживания кольца — копируется в исходное-значение-таймера-обслуживания-кольца при инициации
иниц_желание-участвовать—копируется в желание-участво- вать при инициации
7 2. Формализованное описание автомата управления доступом. В данном подразделе приводится формализованное описание автомата УД—КА. Используемая описательная модель является гибридом метода конечных автоматов и процедурных нотаций и концепций языков программирования. В любой момент времени автомат УД—КА может находиться в одном из 11 основные состояний. Его действия и переходы в другое состояние определяются его оценкой переменных УДС, рассмотренных в предыдущем подразделе.
В соответствующих таблицах спецификация УД—КА ориентирована на правильную работу в дуплексной среде. То есть автомат не должен вводиться в заблуждение приемом собственных передач. Кроме того, УД—КА не будет работать надлежащим образом в полудуплексной среде. Дело разработчика добиться того, чтобы реализация, не являющаяся дуплексной, действовала так, как если бы она была дуплексной.
Оцениваемые условия и действия, выполняемые при каждом переходе конечного автомата, выражаются с использованием синтаксиса, основанного на языке программирования Ада. Переменные УД—КА и другие блоки информации, используемые УД—КА, описываются с использованием деклараций данных, подобных языку Ада. Если блок информации не может быть выражен с использованием синтаксиса Ада, используется описательное утверждение, заключенное в угловые скобки (О). Для лучшей читабельности принят упрощенный, подобный языку Ада стиль описания, который не предназначен для представления компилируемых утверждений.
Представлено следующее:, стилистические декларации на языке программирования большинства переменных, функции и процедуры, используемые при описании конечного автомата; перечень переходов состояний УД—КА (дуги); таблицы переходов состояний УД—КА.
Таблицы переходов состояний содержат текущее состояние, имя перехода и следующее состояние на одной линии с началом описания каждого перехода. Ниже этой линии указано следующее:
условия, которые должны иметь место для выполнения конкретного перехода;
действия, которые должны быть выполнены перед входом в следующее предписанное состояние.
Примечание. В целях описания предполагается, что автомат УД—КА должен мгновенно реагировать на внешние события. Таким образом, все условия оцениваются одновременно.7.2.1. Объявления данных автомата УД—КА
Примечание. Здесь константы представлены в виде цифровых значений в отличие от разд. 4, где они представлены в виде последовательностей упорядоченных для передачи бит.
Константы и параметры
Все нижеперечисленное рассматривается в данном описании как константы с учетом того, что многие из этих констант по существу являются параметрами станций, устанавливаемыми диспетчером станции
интервал-символа: constant длительность := 1/ <сетевая
•скорость да;нны:х>.
октетный-интервал: constant длительность := 8«интервал-
символа;
длина-адреса: constant (16, 48); параметр сети
макс_счет_передач: constant (9, 25) := (длина-адреса/2) 4- 1;
макс-длина-адреса: constant (2 ** 6 — 1, 2««48 — 1)
: = (2 дл'И'на-адреса — 1);
длительность_тайм-аута: constant целое := (2««21);
макс_длина_кадра: constant целое := (2** 13— 1); 8191
макс_длина_блока_данных: constant целое : =
(макс_длина_кадра — (54-2 * длина-адреса/8));
это дает 8174 при 48-битном адресе,
и 8182 при 16-битном адресе.
макс_класс_доступа: constant целое := 6;
•обслуживание-кольца: constant целое := —2;
минимальное значение класса доступа
макс-счет-сбоев-передатчика: constant целое := 7;
иниц—ДС: constant целое range 0 .. макс-адрес
:= < специфичен для станции >;
иниц-ннтервал-ответа: constant длительность range октетный-
интервал ..
(2.» 13 — 1) «октетный-интервал := < специфичен для сети>; иниц_желание-участвовать: constant булево : = <специфичен
для станции >;
иниц-макс-счет-зацросов: constant целое
16 .. 255 : = < специфичен для станции >;
иниц_макс_число-попыток: constant целое range 0..7 := 3;
значение типа
иниц-время_удерж_маркера_высш_приоритета: constant целое range 0 .. (2 ** 16 — 1) := <специфичен для станции>;
иниц_желаемое-время_обращения: array (—2, 0, 2, 4) constant целое range 0 .. длительность-тайм-аута := «^специфичен для
станции >•
иниц-нач_значение-тайм-аута-обслуживания-кольца constant целое range 0.. длительность-тайм-аута <специфичен для
станции>;
Определение типов
type интервалы-ответа is целое range 0.. 7;
type адрес is целое range 0.. макс-адрес;
type счет_передач is целое range 0.. макс-счет-передач;
type приоритет_УЛЗ is целое range 0 .. 7;
type приоритет-УДС is (0, 2, 4, 6);
type действия-УДС is (запрос-без-ответа, запрос-с-ответом, ответ);
type символ-УДС is (ноль, единица, не-данные, зап-нерабоч, плохой-сигнал, молчание);
обозначаются соответственно (0, 1, N, Р, В, S) символ-данных is символ-УДС range ноль .. единица;
обозначается D
type октет_данных array (0 .. 7) of символ-данных;
type тип-блока-данных is
record
длина: целое range 0.. макс_длина_блока_данных := 0;
данные: array (0 .. макс-длина-блока-данных) of октет-
-данных;
end record;
type идентификатор-кадра is (управление_УДС, 2#00#
данные); 2#10#или 2#01#или 2#11#
type тип_упр_кадра is (идк: идентификатор-кадра) record case идк is
when управление-УДС => типкддисп : целое range 0.. 63;