По истечении тайм-аута подтверждения, тайм-аута „занято” или возможно, тайм-аута бита 3 подуровень УЛЗ на этом соединении звена данных должен перейти в состояние восстановления по тайм-ауту и добавить единицу к своей переменной счета повторных передач.
Затем УЛЗ должен начать отсчет тайм-аута бита 3 и передать командный ПБД формата УКО с битом 3, равным 1.
Состояние восстановления по тайм-ауту должно быть сброшено на соединении звена данных, когда УЛЗ примет от удаленного УЛЗ правильный ПБД формата И или формата УКО с битом П, равным 1.
Если в состоянии восстановления по тайм-ауту УЛЗ принял без ошибок действительный ПБД формата И или формата УКО с битом П, равным 1, и с номером Нпм, находящимся внутри диапазона, начинающегося со значения последнего принятого Нпм и до текущего значения переменной передачи включительно, то он должен сбросить состояние восстановления по тайм-ауту, установить свою переменную передачи, равной принятому номеру Нпм, остановить отсчет тайм-аута бита 3 и передать повторно все неподтвержденные ПБД.
Если в состоянии восстановления по тайм-ауту УЛЗ принял без ошибок действительный ПБД формата И или формата УКО с битом 3/П, равным 0, и с номером Нпм, находящимся внутри диапазона, начинающегося со значения последнего принятого Нпм и до текущего значения переменной передачи включительно, то он не должен сбрасывать состояние восстановления по тайм-ауту, а должен рассматривать принятое значение Нпм как подтверждение указанных ранее переданных ПБД И (см. п. 7.5.5).
По истечении тайм-аута бита 3 в состоянии восстановления по тайм-ауту УЛЗ должен прибавить единицу к своей переменной счета повторных передач. Если переменная счета повторных передач не равна N2, то УЛЗ должен передать повторно ПБД формата УКО с битом 3, равным 1, и начать повторный отсчет тайм-аута бита 3.
Если переменная счета повторных передач равняется N2, то УЛЗ должен начать процедуру сброса (передав командный ПБД УРРАС), как описано в п. 7.6 ниже. N2 — это системный параметр (см. п. 7.8.2).
Процедуры сброса
Фаза сброса используется для инициации обоих направлений передачи информации в соответствии с описанными ниже процедурами. Фаза сброса должна применяться только во время режима асинхронного ответа сбалансированного (РАС).
Любой УЛЗ может начать сброс обоих направлений, передав командный ПБД УРРАС и начав отсчет тайм-аута подтверждения.
После приема командного ПБД УРРАС УЛЗ должен при первой возможности передать:
ответный ПБД НП и сбросить в 0 свои переменные ПМ и ПД для данного соединения звена данных либо
ответный ПБД ФРЗД, если это соединение звена данных должно быть завершено.
Передача ответного ПБД НП или ФРЗД должна иметь преимущество перед передачей любого другого ответного ПБД, который может ожидать передачи по тому же соединению звена данных. После ПБД НП могут следовать другие ПБД УЛЗ, если такие имеются. Если инициирующий УЛЗ правильно принял ПБД НП, то он должен сбросить свои переменные передачи и прием ПД И ПМ в 0 и остановить отсчет тайм-аута подтверждения. Должны быть также сброшены все особые условия, которые могли присутствовать в любом из УЛЗ. участвующем в сбросе. Этот обмен должен также указывать на сброс состояния занятости, которое могло быть в любом из УДЗ, участвующем в сбросе.
При приеме ответного ПБД ФРЗД подуровень УЛЗ должен перейти в фазу разъединенного звена данных, прекратить отсчет своего тайм-аута подтверждения и сообщить об этом вышерасположенному уровню для принятия соответствующих мер. Если тайм-аут подтверждения истек до приема ответного ПБД НП или ФРЗД, то камандный ПБД УРРАС должен быть передан повторно и начат отсчет тайм-аута подтверждения. После истечения этого тайм-аута N2 раз передающий УЛЗ должен прекратить передачу командного ПБД УРРАС,.сообщить об этом вышерасположенному уровню для инициирования соответствующих действий по исправлению ошибки и перейти в режим асинхронного разъединения. Значение N2 определено в п. 7.8.2.
Другие ПБД типа 2 (кроме командных ПБД УРРАС и РЗД), принятые УЛЗ до завершения процедуры сброса, должны быть аннулированы.
При некоторых особых условиях НПРК, перечисленных в п. 7.7, УЛЗ может запросить удаленный УЛЗ сбросить соединение звена данных, передав ответный ПБД НПРК.
При приеме ответного ПБД НПРК (даже во время особого условия НПРК) подуровень УЛЗ должен инициировать процедуру сброса путем передачи командного ПБД УРРАС либо инициировать процедуру разъединения путем передачи командного ПБД РЗД.
После передачи ответного ПБД НПРК подуровень УЛЗ должен ввести особое условие НПРК. Особое условие НПРК должно сбрасываться после того как УЛЗ примет или передаст командный ПБД УРРАС или РЗД либо ответный ПБД ФРЗД. Любой другой командный ПБД типа 2, принятый во время наличия особого условия НПРК, должен вызывать в УЛЗ повторную передачу ответного ПБД НПРК с тем же полем информации, что и первоначально переданное.
При наличии особого условия НПРК дополнительные ПБД И не должны передаваться, а полученные ПБД формата И и формата УКО должны аннулироваться УЛЗ.
При передаче ответного ПБД НПРК подуровень УЛЗ может начать отсчет своего тайм-аута подтверждения. Если этот тайм-аут истечет до получения от удаленного УЛЗ командного ПБД УРРАС или РЗД, то УЛЗ может повторно передать ответный ПБД НПРК и начать повторный отсчет тайм-аута подтверждения. После истечения тайм-аута подтверждения N2 раз УЛЗ должен сбросить это соединение звена данных, передав командный ПБД УРРАС. Значение N2 определяется в п. 7.8.2.
Если во время отсчета тайм-аута подтверждения передаются дополнительные ответные ПБД НПРК, то отсчет этого таймаута не должен ни прекращаться, ни возобновляться.
Особые условия НПРК
УЛЗ должен запросить процедуру сброса (путем передачи ответного ПБД НПРК), как описано в п. 7.6, если во время фазы передачи информации он получает ПБД с одним из условий, указанных в п. 5.4.2.3.5. Кодирование поля информации передаваемого ответного ПБД НПРК приведено в п. 5.4.2.3.5.
УЛЗ должен начать процедуру сброса (путем передачи командного ПБД УРРАС), как описано в п. 7.6, если в фазе передачи информации он получит ответный ПБД НПРК.
Список параметров соединения звена данных
Определен ряд параметров соединения звена данных, диапазоны значений которых определяются на межсистемной основе пользователями во время установки конкретной ЛВС.
Необходимы следующие параметры соединения звена данных для операций типа 2.
Функции тайм-аута. В операциях типа 2 в соединении звена данных могут иметь место ряд независимых событий, каждое из которых могло бы представлять временную функцию. Эти временные функции определены ниже так, как они идентифицированы в тексте описания операций типа 2. Понятно, что эти временные функции можно реализовать, используя ряд индивидуальных тайм-аутов или используя единственный тайм-аут. Если предусмотрена единственная временная функция, то разработчику необходимо будет определять при каждом обращении к тайм-ауту, когда останавливать отсчет, когда начинать сначала и когда продолжать начатый отсчет, основываясь на приоритетах конкретных обрабатываемых событий.
Длительности функций тайм-аута должны определяться с учетом момента запуска тайм-аута, т. е. в начале или в конце события, обусловившего запуск тайм-аута (например передача ПБД в УЛЗ), а также с учетом всех задержек, вносимых подуровнем УДС.
Для нормальной работы процедуры необходимо, чтобы значение временных функций превышало максимальный интервал времени между выполнением нормальной сетевой операции с ПБД типа 2 и приемом соответствующего ПБД типа 2, выданного в ответ на инициирующий ПБД типа 2.
Тайм-аут подтверждения. Тайм-аут подтверждения является параметром соединения звена данных, который должен определять интервал времени, в течение которого УЛЗ должен ожидать приема подтверждения на один или несколько неподтвержденных ПБД И или ожидать ответного ПБД на переданный ненумерованный командный ПБД.
Тайм-аут бита 3. Тайм-аут бита 3 является параметром соединения звена данных, который должен определять временной интервал, в течение которого УЛЗ должен ожидать приема ПБД с битом П, равным 1, в ответ на переданную команду типа 2 с битом 3, равным 1.
Тайм-аут „неприем”. Тайм-аут „неприем” (НПР) является параметром соединения звена данных, который должен определять временной интервал, в течение которого УЛЗ должен ожидать приема ответа на переданный ПБД НПР.
Тайм-аут „занято”. Тайм-аут „занято” является параметром соединения звена данных, который должен определять временной интервал, в течение которого УЛЗ должен ожидать указания сброса состояния занятости на другом УЛЗ.
Максимальное число передач — N2. N2 — это параметр соединения звена данных, который указывает максимальное число повторных передач ПБД после истечения таймаута подтверждения, тайм-аута бита 3 или тайм-аута „неприем”.
Максимальное число октетов в ПБД И — №1.№1 — это параметр соединения звена данных, который определяет максимальное число октетов в ПБД И. Для определения точного значения N1 для конкретного метода доступа следует обратиться к описанию соответствующего УДС. УЛЗ сам по себе не налагает ограничений на значение N1. Однако в целях получения значения N1, от которого могут зависеть все пользователи УЛЗ типа 2, все УДС должны быть способны, по меньшей мере, обрабатывать ПБД И с полем информации до 128 октетов включительно.
Максимальное число неподтвержденных ПБД И — к. Максимальное число (к) последовательно пронумерованных ПБД И, которые в УЛЗ могут оставаться неподтвержденными в любой момент времени, должно быть параметром соединения звена данных, значение которого не должно превышать 127.
Минимальное число октетов в ПБД. Действительный ПБД соединения звена данных минимальной длины должен содержать в точности два поля адреса и одно поле управления, расположенные в перечисленном порядке. Таким образом, минимальное число октетов правильного ПБД соединения звена данных должно равняться трем или четырем в зависимости от формата ПБД: формат НКО либо формат И или УКО соответственно.
Точное описание процедур типа 2
При обнаружении различий с текстом разд. 7 данный подраздел (7.9) должен рассматриваться как определяющее описание.
Описание компонента СОЕДИНЕНИЕ. Компонент СОЕДИНЕНИЕ обрабатывает весь поток ПБД типа 2 конкретного соединения звена данных (характеризующегося парами адресов: АП, ПДУП — АО, ПДУО). Будучи активизирован компонент СОЕДИНЕНИЕ должен обрабатывать все ПБД типа 2, адресованные локальному ПДУ от удаленного ПДУ, а также передавать ПБД типа 2 удаленному ПДУ либо по запросу пользователя, либо в результате выполнения протокола (см. черт. 7.1 и табл. 7).
Когда компонент ПДУ переходит в состояние АКТИВЕН (как описано в п. 6.9), все компоненты СОЕДИНЕНИЕ, связанные с этим ПДУ, переходят в состояние РАР (режим асинхронного разъединения). Когда компонент ПДУ выходит из состояния АКТИВЕН, все компоненты СОЕДИНЕНИЕ, связанные с этим ПДУ, деактивизируются, в каком бы состоянии они ни находились в этот момент.
При интерпретации таблицы переходов состояний необходимо учитывать следующие моменты:
Для уменьшения числа состояний используются переменные рта „флаг”, которые указывают на наличие специальных условий, влияющих на работу компонента СОЕДИНЕНИЕ. Определены следующие флаги: 3_ФЛАГ, П_ФЛАГ, У_ФЛАГ, ДАННЫЕ .ФЛАГ, УДАЛЕННАЯ_ЗАНЯТО.
Некоторые события представлены в форме ПРИНЯТ— XXX—YYY. Это следует понимать как прием любого командного или ответного ПБД, поскольку для этого состояния несущественно, какой именно ПБДЗ принят.
Для некоторых комбинаций состояний и событий в таблице представлены альтернативные действия. Они разделены горизонтальными пунктирными линиями в колонках „действия” и „следующее состояние”. Выбор варианта действий осуществляется на основе: а) локального состояния, б) результата действия диспетчера, в) конкретной реализации. Не существует взаимосвязи между порядком альтернати
в
Диаграмма состояний компонента СОЕДИНЕНИЕ
а) Установление звена данных, разъединение и сброс
Черт. 7.1 и событиями; не предполагается, что каждый раз при возникновении события должна выбираться, одна и та же альтернатива.
В списке действий не предполагается упорядоченности, если только одно или несколько действий зависят от значений и флагов, которые изменяются другими действиями. В этом случае проверки должны выполняться до модификации флагов.
Некоторые действия описаны в форме ПЕРЕДАТЬ _ ХХХ..ОТВ (П = 1) . Это должно означать, что если некоторый другой ответный ПБД с битом П = 0 был передан ранее, то можно модифицировать бит П этого ПБД с 0 на 1 и передать новый ПБД с битом П = 0. Это возможно, например, если реализация УЛЗ управляет очередью ПБД, ожидающих передачи.
Для упрощения таблицы используются следующие четыре тайм-аута: ДАД'АЙМ (тайм-аут подтверждения), 3_ТАЙМ (тайм-аут цикла 3/П), НПР_ТАЙМ (тайм-аут „неприем”) и ЗАНЯТО_ТАЙМ (тайм-аут „занято”).'Введением дополнительных флагов можно написать функционально эквивалентную таблицу переходов состояний с использованием только одного тайм-аута.
Любое действие НАЧАТЬ_ТАЙМ вызывает начало (в том числе повторное) отсчета указанного тайм-аута с нуля, даже если уже шел отсчет этого тайм-аута. При достижении своего предела появляется условие ТАИМ-ИСТЕК и отсчет тайм-аута прекращается. Условие ТАЙМ_ИСТЕК сбрасывается автоматом компонента СОЕДИНЕНИЕ при его распознавании. Действие ОСТАНОВИТЕ- ТАЙМ прекращает отсчет тайм-аута, если он имел место, или сбрасывает условие ТАЙМ_ИСТЕК, если тайм-аут уже достиг своего предела.
Предполагается, что события, не представленные в некотором состоянии, остаются в ожидании, пока не будет изменен какой-либо маскирующий флаг или выполнен переход в состояние, где это событие представлено.