Команды и ответы
Супервизорный формат, показанный на рис. 5, предусматривает четыре команды и ответа, которые представлены на рис. 7. (Обобщенная сводка всех команд и ответов дана в таблице 2.) Этими командами и ответами являются: Готов к приему (Receive Ready—RR), Неприем (Reject—REJ), He готов к приему (Receive Not Ready—RNR), Выборочный неприем (Selective Reject—SREJ). Назначение этого формата и четырех команд и ответов состоит в выполнении нумерованных (т. е. использующих порядковые номера кадров) супервизорных функций, таких, как подтверждение (квитирование), опрос, временная задержка передачи данных и восстановление после ошибок. Кадры супервизорного формата не содержат информационного поля, следовательно, как показано на рис. 5, в них располагается порядковый номер приема. Супервизорный формат может быть использован для подтверждения приема кадров от передающей станции. Рассмотрим команды и ответы, используемые супервизорным форматом.
Готов к приему (RR) используется первичной или вторичной станцией для индикации того, что станция готова принять информационный кадр и/или подтвердить (квитировать) ранее принятые кадры с помощью поля N(Пр). Если станция до этого, используя команду Не готов к приему, посылала уведомление о том, что она занята, теперь она использует команду Готов к приему для индикации того, что она свободна и готова принять данные. Первичная станция может также использовать команду Готов к приему для опроса вторичной станции.
Не готов к приему (RNR) используется станцией для индикации состояния занятости. Эта команда уведомляет передающую станцию о том, что принимающая станция не способна принять дополнительные поступающие данные. Кадр RNR, используя поле N(Пр), может подтвердить прием ранее переданных кадров. Состояние занятости может быть сброшено посылкой кадра RR, а также некоторых других кадров, которые будут рассмотрены позднее.
Выборочный неприем (SREJ) используется станцией для запроса повторной передачи единственного кадра, который определен в поле N(Пр). Как и в случае включающего подтверждения, подтверждение распространяется на все информационные кадры с номерами до N(Пр) - 1 включительно. Выборочный неприем позволяет реализовать режим выборочного повторения, рассмотренный в гл. 2. Как только передан кадр SREJ, следующие кадры принимаются и сохраняются для повторно передаваемого кадра.
Неприем (REJ) используется для запроса передачи кадров, начиная с кадра, указанного в поле N(Пр). Подтверждаются все кадры с номерами до N(Пр) - 1. Кадр REJ может использоваться для реализации метода Возвращение-на-N (Go-Back-N).
Таблица 2. Команды и ответы HDLC | |||||||||||
Двоичное кодирование управляющего | |||||||||||
поля | |||||||||||
Формат | Команды | Ответы | |||||||||
Информационный | - | N(Пос) | - | * | - | N(Пр) | - | I - Информация | I - Информация | ||
Супервизорный | * | RR - Готов к приему | RR - Готов к приему | ||||||||
* | REJ - Неприем | REJ - Неприем | |||||||||
* | RNR - Не готов к приему | RNR - He готов к приему | |||||||||
* | SREJ - Выборочный неприем | SREJ - Выборочный неприем | |||||||||
Ненумерованный | * | UI - Ненумерованная информация | UI - Ненумерованная информация | ||||||||
* | SNRM - Установить режим нормального объекта | ||||||||||
* | DISC - Разъединить | RD - Запрос разъединения | |||||||||
* | UP - Ненумерованный опрос | ||||||||||
* | UA - Ненумерованное подтверждение | ||||||||||
* | Test - Проверка | Test - Проверка | |||||||||
* | SIM - Установить режим инициализации | RIM - Запросить режим инициализации | |||||||||
* | FRMR - Неприем кадра | ||||||||||
* | SARM - Установить ARM | DM - Режим разъединения | |||||||||
* | RSET - Сбросить | ||||||||||
* | SARME - Установить расширенный ARM | ||||||||||
* | SNRME - Установить расширенный NRM | ||||||||||
* | SABM - Установить АВМ | ||||||||||
* | XID - Идентификация станции | XID - Идентификация станции | |||||||||
* | SABME - Установить расширенный АВМ | ||||||||||
' Значение 1 или 0. |
Третий и последний тип формата в протоколе HDLC предназначен для реализации ненумерованных команд и ответов. Этот формат используется для посылки большинства индикаторов команд и ответов, которые представлены на рис. 7 и в табл. 2. Структура управляющего поля ненумерованного формата показана на рис. 5. Ненумерованные команды можно разбить на группы в соответствии с выполняемыми функциями:
— команды установки режима: SNRM, SARM, SABM, SNRME, SARME, SABME, SIM, DISC (SNRME, SARME, SABME для расширенной адресации);
— команды передачи информации: UI, UP;
— команды восстановления: RESET;
—другие команды: XID, TEST.
Рассмотрим команды/ответы для ненумерованного формата:
UI (Unnumbered Information—Ненумерованная информация). Эта команда позволяет производить передачу данных пользователя в ненумерованном кадре (т. е. без порядкового номера).
RIM (Request Initialization Mode — Режим инициализации запроса). Кадр RIM является запросом на команду SIM от вторичной к первичной станции.
SIM (Set Initialization Mode — Установить режим инициализации). Эта команда используется для инициализации сеанса между первичной и вторичной станциями. Ожидаемым ответом является UA.
SNRM (Set Normal Response Mode — Установить режим нормального ответа). Эта команда переводит вторичную станцию в NRM (режим нормального ответа). NRM предотвращает посылку вторичной станцией несанкционированных (unsolicited) кадров. Это означает, что первичная станция управляет всем потоком сообщений в канале.
DM (Disconnect Mode — Режим разъединения). Этот кадр передается вторичной станцией для индикации того, что она находится в режиме логического разъединения.
DISC (Disconnect — Разъединить). Эта команда, передаваемая первичной станцией, переводит вторичную станцию в режим разъединения аналогично нажатию рычага телефонного аппарата.
UA (Unnumbered Acknowledgment— Ненумерованное подтверждение). Это—подтверждение АСК для установки режима команд (SIM, DISC, RESET). UA также используется для уведомления об окончании состояния занятости станции.
FRMR (Frame Reject — Неприем кадра). Вторичная станция посылает этот кадр, когда она встречается с недействительным кадром. Это делается не в случае обнаружения ошибки, указываемой в поле контрольной последовательности, а в более необычных ситуациях. Причина указывается в информационном поле.
Кадр ответа FRMR используется при выполнении следующих условий (данный уровень детализации необходим для понимания отличий Х.25 от Х.75):
1. Прием недействительного управляющего поля команды или ответа.
2. Прием слишком длинного информационного поля.
3. Прием недействительного поля N(Пр).
4. Прием недопустимого информационного поля или супервизорного/ненумерованного кадра неправильной длины.
Протокол HDLC с помощью кадра FRMR обеспечивает значительный объем информации о состоянии (status). Информационное поле содержит следующее:
— управляющее поле отвергнутого кадра;
— текущее значение переменных состояния принимающей станции - посылки N(Пос) и приема N(Пр);
— отвергнутый кадр был командой или ответом;
— управляющее поле является недействительным;
— кадр был передан с недопустимым информационным полем;
— информационное поле является слишком длинным;
— порядковые номера являются недействительными.
RD (Request Disconnect—Запрос разъединения). Это запрос от вторичной станции на логическое разъединение и установление состояния логического разъединения.
XID (Exchange State Identification — Идентификация станции при коммутации). Эта команда запрашивает идентификацию вторичной станции. В системах с коммутацией эта команда используется для идентификации вызывающей станции.
UP (Unnumbered Polls—Ненумерованные опросы).
TEST (Тest—Проверка). Этот кадр используется для санкционирования тестовых ответов от вторичной станции.
SARM (Set Asynchronous Response Mode—Установить режим асинхронных ответов). Устанавливает режим, позволяющий вторичной станции вести передачу без опроса со стороны первичной станции. Он переводит вторичную станцию в состояние передачи информации (IS) режима ARM. Поскольку команда SARM устанавливает две несбалансированные станции, SARM должна выдаваться по обоим направлениям передачи:
ООД А посылает: В, DISC
ООД B посылает: В, UA A, DISC
ООД А посылает: A, UA
ООД B посылает: А, SARM
ООД А посылает: А, UA В, SARM
ООД B посылает: В, UA
Команды DISC посылаются, чтобы гарантировать полную реинициализацию канала.
SABM (Set Asynchronous Balanced Mode — Установить асинхронный сбалансированный режим). Устанавливает режим в ARM, в котором станции являются равноправными. Для передачи не требуется опроса, поскольку каждая станция является станцией комбинированного типа.
SNRME (Set Normal Response Mode Extended—Установить расширенный режим нормального ответа). Устанавливает SNRM с двумя дополнительными байтами в управляющем поле.
SABME (Set Asynchronous Balanced Mode Extended—установить расширенный асинхронный сбалансированный режим). Устанавливает SABM с двумя дополнительными байтами в управляющем поле.
UP (Unnumbered Poll—Ненумерованный опрос). Команда опрашивает станцию безотносительно к нумерации кадров и квитированию. Если бит опроса установлен в 0, ответ является необязательной возможностью, предоставляемой только для одного ответа.
RSET (Reset—Сброс переменных). Передающая станция сбрасывает свои N(Пос), а принимающая станция свой N(Пр). Эта команда используется для восстановления. Кадры, которые ранее не были квитированы, остаются таковыми.
HDLC, кроме того, использует тайм-аут (таймер Т1), который начинается с момента передачи каждого кадра. Т1 используется для инициирования повторной передачи, когда таймер переполняется. Кроме того, используется счетчик N2 для определения максимального числа повторных передач, которые будут выполнены до того, как переполнится таймер Т1. Переменные Т1 и N2 используются также командами/ответами установления звена, такими, как SABM и UA.