Примечание. Бит 3 используется в УЛЗ при наличии условия восстановления по тайм-ауту (см. п. 7.5.9).
Процедуры установления и разъединения звена данных
Фаза соединения звена данных. Любой УЛЗ может начать инициацию соединения звена данных.
Если УЛЗ желает инициировать звено данных, то он должен передать командный ПБД УРРАС и начать отсчет тайм-аута подтверждения (см. п. 7.8.1). При приеме ответного ПБД НП подуровень УЛЗ должен сбросить свои переменные приема и передачи ПД и ПМ в 0 для соответствующего соединения звена данных, остановить тайм-аут подтверждения и перейти в фазу передачи информации.
При приеме ответного ПБД ФРЗД подуровень УЛЗ, выдавший командный ПБД УРРАС, должен остановить свой тайм-аут подтверждения, не входить в фазу передачи информации и сообщить об этом вышерасположенному уровню для принятия соответствующих действий.
Описание действий, вызываемых приемом командного ПБД УРРАС или РЗД, см. в п. 7.4.5. Другие ПБД типа 2 (командные или ответные), принятые во время установления соединения, должны игнорироваться УЛЗ.
Если тайм-аут подтверждения истек до приема ответного ПБД НП или ФРЗД, то УЛЗ должен повторно передать командный ПБД УРРАС и начать повторно отсчет тайм-аута подтверждения. После повторной передачи командного ПБД УРРАС N2 раз, передающий УЛЗ должен прекратить передачу командных ПБД УРРАС и сообщить об этом вышерасположенному уровню для инициации соответствующих действий по исправлению ошибки. Значение N2 определяется в п. 7.8.2.
При приеме командного ПБД УРРАС подуровень УЛЗ должен послать индикацию сетевому уровню, чтобы указать на появление запроса установления соединения звена данных от удаленного УЛЗ.
Если затем УЛЗ получит уведомление из сетевого уровня о приемлемости соединения, то он должен передать удаленному УЛЗ ответный ПБД НП, установить свои переменные приема и передачи ПМ и ПД соответствующего соединения звена данных в 0 и войти в фазу передачи информации. Передача ответного ПБД НП должна иметь преимущество над любым другим ответным ПБД того же соединения звена данных, которые могут ожидать передачи на подуровне УЛЗ. Вслед за ответным ПБД НП могут передаваться’ дополнительные ПБД УЛЗ, ожидзютцие передачи.
Если УЛЗ пот:учил уведомление из сетевого уровня не входить в указанную фазу, то он должен передать удаленному УЛЗ ответный ПБД ФРЗД и остаться в разъединенном режиме звена.
Фаза передачи информации. После передачи ответного ПБД НП на командный ПБД УРРАС или после приема ответного ПБД НП на переданный командный ПБД УРРАС подуровень УЛЗ должен принимать и передавать ПБД формата И и формата У КО в соответствии с процедурами, описанными в п. 7.5.
При приеме командного ПБД УРРАС в фазе передачи информации УЛЗ должен подтвердить процедуру сброса, как описано в п. 7.6.
Фаза разъединения звена данных. В фазе передачи информации любой УЛЗ может инициировать разъединение соединения звена данных, передав командный ПБД РЗД.
Если УЛЗ желает разъединить соединение звена данных, то он должен передать командный ПБД РЗД и начать отсчет тайм-аута подтверждения (см. п. 7.8.1). При приеме ответного ПБД НП или ФРЗД от удаленного УЛЗ локальный УЛЗ должен прекратить отсчет своего тайм-аута подтверждения и перейти в режим разъединения звена.
Если тайм-аут подтверждения истечет до приема ответного ПБД НП или ФРЗД, то УЛЗ должен передать повторно командный ПБД РЗД и начать повторный отсчет тайм-аута подтверждения. После передачи командного ПБД РЗД N2 раз передающий УЛЗ должен прекратить передачу командного ПБД РЗД, войти в фазу разъединенного звена данных и сообщить об этом вышерасположенному уровню для инициации соответствующего действия по исправлению ошибки. Значение N2 определяется в п. 7.8.2.
При приеме командного ПБД РЗД подуровень УЛЗ должен передать ответный ПБД НП и войти в фазу разъединенного звена данных. Передача ответного ПБД НП должна иметь преимущество перед передачей любого другого ответного ПБД в том же соединении звена данных, которое может ожидать передачи в УЛЗ.
Фаза разъединенного звена данных. После приема командного ПБД РЗД от удаленного УЛЗ и передачи ответного'ПБД НП либо приема ответного ПБД НП на переданный командный ПБД РЗД подуровень УЛЗ должен перейти в фазу разъединения звена данных.
В фазе разъединения УЛЗ может инициировать соединение звена данных. В этой фазе УЛЗ должен реагировать на прием командного ПБД УРРАС, как описано в п. 7.4.1, и передавать ответный ПБД ФРЗД в ответ на прием командного ПБД РЗД.
При приеме в фазе разъединения любого другого командного ПБД типа 2 с битом 3, равным 1, УЛЗ должен передать ответный ПБД РЗД с битом П, равным 1. Другие ПБД типа 2, принятые в фазе разъединения, УЛЗ должен игнорировать.
Столкновение ненумерованных командных ПБД установления режима. Ситуация столкновения в УЛЗ должна разрешаться следующим образом.
Если переданный и принятый командный ПБД установления режима одинаковы, то каждый УЛЗ при первой возможности должен передать ответный ПБД НП и перейти в указанную фазу либо после приема ответного ПБД НП, либо после истечения своего тайм-аута подтверждения. Если переданный и принятый командные ПБД установления режима различны, то каждый УЛЗ должен перейти в фазу разъединения звена данных и выдать при первой возможности ответный ПБД ФРЗД.
Процедуры передачи информации Ниже описаны процедуры, которые применяются для передачи ПБД И в каждом направлении соединения звена данных.
В дальнейшем выражение „на единицу больше” означает непрерывно повторяющиеся серии последовательностей, т. е. 7 на единицу больше 6, а 0 на единицу больше 7 при нумерации по модулю 8.
Передача ПБД И. Если УЛЗ имеет ПБД И для передачи (т. е. ПБД И еще не переданные или подлежащие повторной передаче, как описано в п. 7.5.5), то он должен передать ПБД И с номером Нпд, равным его текущей переменной ПД, и с Нпм, равным его текущей переменной ПМ для этого соединения звена данных. После передачи ПБД И подуровень УЛЗ должен увеличить на единицу свою переменную передачи ПД.
Если тайм-аут подтверждения не истек к моменту передачи ПБД И, то следует начать его отсчет.
Если переменная передачи ПД соединения звена данных равна последнему принятому значению Нпм плюс к (где к — максимальное число неподтвержденных ПБД И, см. п. 7.8.4), то УЛЗ не должен передавать каких-либо новых ПБД И по этому соединению звена данных, но должен обладать возможностью повторной передачи ПБД И в соответствии с п. 7.5.6 или п. 7.5.9.
Если локальный УЛЗ соединения звена данных находится в состоянии занятости, то он может передавать ПБД И при условии, что удаленный УЛЗ этого соединения звена данных сам не находится в состоянии занятости. Если в УЛЗ некоторого соединения звена данных имеется особое условие НПРК, то он должен прекратить передачу ПБД по этому соединению звена данных.
Прием ПБД И. Если УЛЗ соединения звена данных не находится в состоянии занятости и получает ПБД И с порядковым номером, равным переменной приема ПМ, то этот УЛЗ должен принять поле информации этого ПБД, увеличить на единицу свою переменную приема ПМ и действовать следующим образом:
При наличии готовых к передаче ПБД И УЛЗ должен действовать в соответствии с п. 7.5.1 и подтверждать принятые ПБД И, устанавливая номер Нпм в поле управления следующего передаваемого ПБД И в значение переменной приема ПМ. УЛЗ может также подтвердить принятые ПБД И, передав ПБД ГПР с номером Нпм, равным значению переменной приема ПМ.
При отсутствии готовых к передаче ПБД И УЛЗ должен:
передать при первой возможности ПБД ГПР с номером Нпм, равным значению переменной приема ПМ, либо,
если принятый ПБД не являлся командным ПБД с битом 3, равным 1, ожидать в течение некоторого периода времени, ограниченного вероятным истечением удаленного тайм-аута, подтверждения, пока не появится ПБД И, готовый к передаче, или ожидать накопления дополнительных ПБД И с целью их подтверждения одним ПБД ГПР, что является предметом ограничения размера окна.
Если прием ПБД И вызвал переход УЛЗ в состояние занятости по отношению к последующим ПБД И, то УЛЗ должен передать ПБД НГПР с номером Нпм, равным значению переменной приема ПМ. При наличии готовых к передаче ПБД И подуровень УЛЗ может передать их, как описано в п. 7.5.1, до или после передачи ПБД НГПР.
Если УЛЗ, связанный с некоторым соединением звена данных, находится в состоянии занятости и получает ПБД И в правильной последовательности, то он может игнорировать поле информации, содержащееся в любом принятом по этому соединению звена данных ПБД И (см. п. 7.5.8).
Прием неправильных ПБД. Если УЛЗ принимает недействительный ПБД (см. п. 3.3.5) или ПБД с неправильным адресом ПДУП или ПДУО, то этот ПБД должен быть целиком аннулирован.
Прием ПБД с нарушением порядка следования. Если УЛЗ принимает ПБД И, чей номер передачи нарушает порядок следования, т. е. не равен текущей переменной приема ПМ, но находится внутри окна приема, то УЛЗ должен аннулировать поле информации ■■'этого ПБД И и передать ПБД НПР с Нпм, равным значению ПМ. Затем УЛЗ должен аннулировать поле информации всех ПБД И до тех пор, пока не будет правильно принят ожидаемый ПБД И. При приеме ожидаемого ПБД И УЛЗ должен подтвердить ПБД, как описано в п. 7.5.2. УЛЗ должен использовать значения Нпм и бита 3 аннулированных ПБД И.
В конкретном соединении звена данных в любой момент времени от одного УЛЗ к другому УЛЗ может быть установлено только одно особое условие „передан НПР”. Условие „передан НПР” должно сбрасываться при приеме запрошенного ПБД И. Условие „передан НПР” может быть сброшено по истечении функции тайм-аута „неприем”. Если УЛЗ узнает по истечению тайм-аута „неприем”, что запрошенный ПБД И не будет принят, так как либо запрошенный ПБД И, либо ПБД НПР был потерян или содержал ошибку, то этот УЛЗ может повторить ПБД НПР с гем, чтобы повторно установить условие „передан НПР” вплоть до N2 раз. Значение N2 определяется в п. 7.8.2.
Подтверждение приема. При правильном приеме ПБД формата И или формата УКО. даже в состоянии занятости (см. и. 7 5.8), принимающий УЛЗ должен рассматривать Нпм, содержащийся в этом ПБД, как подтверждение нсек ПЬД И, переданных по этому соединению звена данных с Нид вплоть до принятого Нпм минус 1 включительно. УЛЗ должен сбросить тайм-аут подтверждения при правильном приеме ПБД формата И или формата УКО с Нпм большим, чем последний принятый Нпм (действительно подтверждающий не. которые ПБД И).
Если тайм-аут сброшен, но все еще остались неподтвержденные ПБД И на этом соединении звена данных, то УЛЗ должен начать повторный отсчет тайм-аута подтверждения. Если этот тайм-аут затем истечет, то УЛЗ должен выполнять процедуры п. 7.5.9 относительно неподтвержденных ПБД И.
Прием ПБД НПР. При приеме ПБД НПР подуровень УЛЗ должен установить свою переменную передачу ПД, равную номеру Нпм, принятому в поле управления ПБД НПР. УЛЗ должен передать (в том числе повторно) соответствующий ПБД И, как только он появится. Если другие неподтвержденные ПБД И были уже переданы по этому соединению вслед за ПБД И, указанным в ПБД НПР, то эти ПБД И должны быть повторно переданы УЛЗ вслед за повторной передачей запрошенного ПБД И.
Если повторная передача началась с некоторого ПБД вследствие контрольной сверки (см. п. 7.5.9) и был принят ПБД НПР, который вызывал бы повторную передачу с того же самого ПБД И (как указано Нпм в ПБД НПР), то повторная передача в результате приема ПБД НПР должна быть запрещена.
Прием ПБД НГПР. УЛЗ, принявший ПБД НГПР должен остановить как можно скорее передачу ПБД И по указанному соединению звена данных и начать отсчет таймаута „занято”, если он еще не начат. По истечении тайм-аута „занято” УЛЗ должен выполнить процедуру, описанную в п. 7.5.9. В любом случае УЛЗ не должен передавать других ПБД И по этому соединению звена данных до тех пор, пока не будет принят ПБД ГПР или НПР, или ответный ПБД И с битом П, равным 1, либо пока не завершится процедура сброса в этом соединении звена данных.
Состояние занятости УЛЗ. УЛЗ должен войти в состояние занятости в соединении звена данных, если он временно не способен принять, или продолжать гнил м ПБД И из-за внутренних ограничений, например ограничений приемных буферов. Ожидающие в этом соединении звена данных передачи ПБД И могут быть переданы до или после передачи ПБД НГПР. Находясь н состоянии занятости, УЛЗ должен принимать и обрабатывать ПБД формата УКО и выдавать ответный ПБД НГПР с битом П, равным 1, в ответ на прием командного ПБД формата УКО или И с битом 3, равным 1, по этому соединению звена данных.
Для указания сброса состояния занятости в соединении звена данных УЛЗ должен передать либо ответный ПБД И с битом П, равным 1, при наличии неподтвержденного бита 3, равного 1, либо ответного ПБД НПР или ГПР с номером Нпм, равным текущей переменной приема ПМ, в зависимости от того аннулировал ли УЛЗ поля информации правильно принятых ПБД И или нет. Кроме того, передача командного ПБД УРРАС или ответного ПБД НП должна указывать на сброс состояния занятости на передающем УЛЗ соединения звена данных.
Ожидание подтверждения. УЛЗ поддерживает внут- ренную переменную счета повторных передач для каждого соединения звена данных, которая должна устанавливаться в 0, когда УЛЗ принимает или передает ответный ПБД НП или командный ПБД УРРАС, либо когда УЛЗ принимает ПБД НГПР, либо когда УЛЗ правильно принимает ПБД формата И или формата УКО с Нпм большим, чем последний принятый Нпм (действительно подтверждающий некоторые ПБД И).