HDLC является кодопрозрачным протоколом . Он не зависит
от конкретного кода (ASCII/IA5 или EBCDIC) при выполнении функции управления
каналом. Восьмибитовая комбинация флага 01111110 помещается в начале и в конце
кадра, чтобы дать возможность приемнику распознать начало и конец кадра.
Возможны случаи, когда прикладной процесс помещает в данных пользователя
последовательность 01111110, совпадающую с флагом. В этом случае передающая
станция в поток выходных данных помещает 0 после 5 подряд идущих единиц,
встретившихся в любом месте между начальным и конечным флагами кадра. Такая
вставка производится в адресное, управляющее, информационное поля и поле CRC.
Этот метод называется вставкой битов(bit staffing) ; такую же функцию
выполняет знак DLE в протоколе BSC. После того как завершается вставка битов в
кадр и по концам кадра помещаются флаги, кадр передается приемнику по каналу.
Приемник постоянно контролирует поток битов. При получении нуля
с пятью далее идущими подряд единицами (011111) анализирует следующий (седьмой)
бит. Если это нуль, он удаляет этот бит. Однако если седьмой бит является
единицей (0111111), приемник анализирует восьмой бит. Если это нуль (01111110),
он считает, что получена флаговая комбинация. Если это единица, выполняется
анализ последующих бит. Возможна ситуация приема либо сигнала покоя, либо
сигнала аварийного завершения, на которые станция реагирует соответствующим
образом. Таким образом, в протоколе HDLC обеспечиваются кодовая прозрачность по
данным. Протоколу безразлично, какие кодовые комбинации находятся в потоке
данных. Единственное, что требуется, - это поддерживать уникальность флагов.
HDLC используется также два других сигнала: сигнал
аварийного завершения (АЗ) состоит из последовательности единиц, число
которых не меньше семи и не больше четырнадцати; состояние покоя
представляется последовательностью пятнадцати или большего числа единиц.
Сигнал аварийного завершения (abort) помещается в конце
кадра. Передающая станция посылает этот сигнал, когда возникает исключительная
ситуация, требующая восстановления. Вслед за сообщением об аварийном завершении
могут посылаться флаги для того, чтобы поддерживать канал в активном состоянии,
и передача могла продолжаться.
Сигнал покоя означает, что канал находится в состоянии
покоя. Одно из применений состояния покоя находит в полудуплексном сеансе, когда
при обнаружении сигнала покоя производится изменение направление передачи на
противоположное.
Межкадровое временное заполнение сопровождается передачей
между кадрами непрерывной последовательности флагов. Флаги могут быть
восьмибитовыми комбинациями, или же может иметь место совмещение последнего 0
предыдущего флага с первым 0 следующего флага. Например,
01111110011111100111111001111110: или 011111101111111011111110:
|