Кодонезависимость протоколов с исправлением ошибок

Протоколы с исправлением ошибок, как правило, являются кодонезависимыми. В первую очередь, это касается HDLC-подобных протоколов. Кодонезависимость протокола означает, что протокол способен передавать данные, представленные в виде практически любой известной кодировки, например ASCII (IA5) или EBCDIC. Это ценное свойство протокола достигается в основном за счет использования уникальной флаговой последовательности <01111110>. Однако ничто не мешает прикладному процессу (или пользователю) помещать в поток передаваемых данных последовательность <01 111 110>, совпадающую с флагом. Для того, чтобы предотвратить вставку в поток данных пользователя флаговой комбинации, передающее DCE помещает "О" после пяти идущих подряд единиц, встретившихся в любом месте между начальным и конечным флагами кадра. Такая вставка дополнительного "О" может производится в управляющее и информационное поля, а также в поле FCS. Описанный метод называется битс-таффингом (bit stuffing). Процесс битстаффинга поясняется рис. 7.1.

Кроме уникальной флаговой комбинации HDLC-подобными протоколами используются еще два сигнала. Сигнал аварийного завершения состоит из последовательности единиц, число которых больше шести, но меньше пятнадцати. Сигнал покоя канала представляет собой последовательность из пятнадцати или большего числа единиц. Передающее DCE помещает сигнал аварийного

Битстаффинг в HDLC-подобных протокола
Рис. Л. Битстаффинг в HDLC-подобных протоколах
Процедура анализа принимаемого потока данных
Рис. 7.2. Процедура анализа принимаемого потока данных

завершения в конце кадра и посылает его, когда возникает исключительная ситуация. Сигнал покоя канала находит применение в полудуплексном режиме передачи. При обнаружении этого сигнала производится изменение направления передачи на противоположное.

Фактическое время между передачами кадров по каналу сопровождается передачей непрерывной последовательности флагов. Это называется межкад-ровым временным заполнением. Флаги могут быть восьмибитовыми или может иметь место совмещение последнего "О" предыдущего флага с первым "О" еле-' дующего флага.

Приемное DCE непрерывно контролирует поток битов в соответствии с алгоритмом, приведенном на рис. 7.2. После того как DCE получит комбинацию <011111>, оно анализирует следующий, бит. Если это "О", он удаляется. Если седьмой бит является единицей, то анализируется восьмой бит. Если восьмой бит — "О", считается, что получена флаговая комбинация <01111110>. Если "1", то получен сигнал покоя или аварийного завершения, и DCE выполняет соответствующие действия.

Таким образом обеспечивается кодовая прозрачность. Протоколу безразлично, какие кодовые комбинации находятся в потоке данных. Единственное, что требуется, так это поддержание уникальности флагов.