Формат кадра HDLC
ПРОТОКОЛ HDLC.
Проблемы, связанные с BSC
В нашем рассмотрении BSC было отмечено несколько недостатков этого протокола. Коротко говоря, полудуплексные, кодозависимые, многоформатные и многоканальные режимы BSC представляют серьезные проблемы. Поэтому этот протокол вытесняется другими протоколами.
HDLC (высокоуровневое управление каналом передачи данных) является стандартом, опубликованным МОС, который получил во всем мире широкое распространение. Стандарт обеспечивает многие функции и охватывает большой диапазон применений. Он рассматривается в качестве базового множества для нескольких других протоколов, как было показано на рис. 1. Он удовлетворяет определению протокола непрерывного ARQ (скользящее окно). HDLC имеет несколько необязательных возможностей (опций), которые придают некоторым частям протокола характер гибрида равнорангового метода и метода первичный/вторичный в их чистом виде, потому что эти возможности уменьшают необходимость использования команд опроса и делают ненужными команды выбора. Эти возможности будут рассмотрены ниже.
Настоящий раздел посвящен обсуждению многих функций базового множества (superset) HDLC. В нем рассматриваются также наиболее важные подмножества этого протокола, такие, как SDLC, LAP, LAPB, LAPD.
Для реализации протокола HDLC предусмотрен ряд необязательных возможностей. Он поддерживает полудуплексную и полнодуплексную передачу, одноточечную и многоточечную конфигурацию.
Логические станции могут состоять из первичных, вторичных или комбинированных станций. Функционирование станций может зависеть от одного из трех состояний: состояния логического разъединения, состояния инициализации и состояния передачи информации; они работают в одном из трех режимов: нормальный режим ответа, асинхронный режим ответа и асинхронный сбалансированный режим.
Наконец, возможны три типа конфигураций канала HDLC: несбалансированная конфигурация, симметричная конфигурация и сбалансированная конфигурация. В англоязычной литературе эти конфигурации часто обозначают соответственно UN, UA и BA.
В протоколе HDLC используется термин кадр для обозначения независимого объекта данных, передаваемого по каналу от одной станции к другой (см. рис. 5, а).
Кадры могут быть трех типов:
— Кадр информационного формата используется для передачи данных конечных пользователей между двумя устройствами.
— Кадр супервизорного формата выполняет управляющие функции, такие, как подтверждение (квитирование) кадров, запрос на повторную передачу кадров и запрос на временную задержку передачи кадров. Фактическое использование супервизорного кадра зависит от режима работы звена (режим нормального ответа, асинхронный сбалансированный режим, асинхронный режим ответа).
— Кадр ненумерованного формата также используется для целей управления. Кадр используется для инициализации или разъединения звена, а также других функций управления звеном. Кадр содержит пять двоичных разрядов, что позволяет определить до 32 команд и 32 ответов. Конкретный тип команды и ответа зависит от класса процедуры HDLC. (Команды и ответы будут вкратце рассмотрены ниже.)
Рис. 5. Формат кадра HDLC (а) и правила адресации (б).
Кадр состоит из пяти или шести полей. Все кадры должны начинаться и заканчиваться полями флага. Необходимо, чтобы станции, подключенные к звену данных, постоянно контролировали двоичную последовательность флага. Последовательность флага состоит из 01111110. Флаги могут постоянно передаваться по каналу между кадрами HDLC. Для индикации исключительной ситуации в канале могут быть посланы семь подряд идущих единиц. Пятнадцать или большее число единиц поддерживают канал в состоянии покоя. Если принимающая станция обнаружит последовательность битов, не являющихся флагом, она тем самым уведомляется о начале кадра, об исключительной (с аварийным завершением) ситуации или ситуации покоя канала. При обнаружении следующей флаговой последовательности станция будет знать, что поступил полный кадр. Флаг выполняет функции, аналогичные знаку SYN в протоколе BSC.
Адресное поле определяет первичную или вторичную станции, участвующие в передаче конкретного кадра. Каждой станции присваивается уникальный адрес. В несбалансированной системе адресные поля в командах и ответах содержат адрес вторичной станции. В сбалансированных конфигурациях командный кадр содержит адрес получателя, а кадр ответа содержит адрес передающей станции (см. рис. 5, б).
Управляющее поле содержит команду и ответы, а также порядковые номера, используемые для отчетности о прохождении данных в канале между первичной и вторичной станциями. Формат и содержание управляющего поля могут варьироваться в зависимости от использования кадра HDLC. Рассмотрим (коротко) реальное содержание управляющего поля.
Информационное поле содержит действительные данные пользователя. Информационное поле имеется только в кадре информационного формата. Его нет в кадре супервизорного или ненумерованного формата.
Поле контрольной последовательности кадра (КПК) используется для обнаружения ошибок передачи между двумя станциями звена данных. Оно аналогично по функции знаку ВСС в BSC. Передающая станция осуществляет вычисления над потоком данных пользователя, и результат этого вычисления включается в кадр в качестве поля КПК. В свою очередь, принимающая станция производит аналогичные вычисления и сравнивает полученный результат с полем КПК. Если имеет место совпадение, велика вероятность того, что передача произошла без ошибок. В случае несовпадения, возможно, имела место ошибка передачи, и принимающая станция посылает NAK, означающий, что необходимо повторить передачу кадра. Вычисление КПК называется циклическим контролем по избыточности и использует производящий полином Х16+ Х12+Х5+1 в соответствии с рекомендацией МККТТ V.41.
Вычисление и использование кода CRC производятся в соответствии со следующими правилами:
• К содержимому кадра добавляется набор нулей, количество которых равно длине поля КПК.
• Образованное таким образом число делится на производящий полином, который содержит на один разряд больше, чем КПК, и который в качестве старшего и младшего разрядов имеет единицы. (Фактически эти данные обрабатываются на сдвиговом регистре со схемой «исключающее ИЛИ».)
• Остаток от деления помещается в поле КПК и передается в приемник.
• Приемник выполняет деление содержимого кадра и поля КПК на полином.
• Если результат равен некоторому определенному числу (нулю или, в некоторых системах, другому числу), считается, что передача выполнена без ошибок.
Метод CRC позволяет обнаруживать всевозможные кортежи ошибок длиной не более 16 разрядов, вызываемые одиночной ошибкой, а также 99,9984% всевозможных более длинных кортежей ошибок.