Символьно -ориентированные и бит-ориентированные синхронные протоколы

В синхронных протоколах байты не отделены друг от друга служебными сигналами. В задачи приемника входит распознавание границ байтов, а затем – кадров и отдельных полей внутри кадров.

В зависимости от способов выделения начала и конца кадра синхронные протоколы делятся на:

  • Символьно-ориентированные, в которых для выделения начала и конца кадров используются символы из таблиц ASCII или EBCDIC
  • Бит-ориентированные, в которых для этого используются специальные последовательности битов, называемые флагами или ограничителями

Поскольку бит-ориентированные протоколы сканируют данные побитово для обнаружения стартового и стопового флагов, то длина кадра в битах не обязательно должна быть кратной 8 (как в символьно -ориентированных протоколах).

Бито-ориентированные протоколы более рационально расходуют поле данных кадра, так как для исключения из него значения, совпадающего с флагом, добавляют в совпадающую последовательность битов только один новый бит, а не целый символ, как в символьно -ориентированных протоколах. Эта операция называется стаффингом (stuffing).

…1111111 110110011111011011111000…11 111…
  Открывающий флаг Поле данных Закрывающий флаг  

Жирным шрифтом выделены нули, добавленные для стаффинга.

Теперь приведем пример стаффинга в символьно - ориентированном протоколе SLIP:

СО Данные СО
Открывающий флаг   Закрывающий флаг

Если в поле данных встречается символ СО, то он заменяется на комбинацию DB+DC, a, если встречается символ DB, то он заменяется на комбинацию DB+DD.

Чтобы избежать операций стаффинга, в составе открывающих и закрывающих флагов можно использовать сочетания битов или сигналы, запрещенные для использования в данных. Например, при использовании манчестерского кодирования открывающий флаг может иметь вид JK0JK000, закрывающий флаг – JK1JK100, где J и K – запрещенные сигналы (не 0 и не 1).

Кадры большинства протоколов состоят из служебных полей фиксированного размера и полей данных, длина которых может изменяться. В этом случае конец кадра не определяется по появлению закрывающего флага, а вычисляется по содержимому поля длины данных, которое имеет фиксированный размер. Есть протоколы, кадры которых состоят из переменного числа полей, каждое из которых может иметь переменную длину. Тогда каждое такое поле предваряется двумя фиксированными полями – длины и типа, а конец кадра определяется либо по полю «общей длины», либо по закрывающему флагу.

Определение длины кадра по значению поля длины данных позволяет отказаться от использования закрывающего флага и связанных с ним проблем, но требует включения в кадр дополнительного поля. Кадр при этом может выглядеть примерно так:

101010…10 Фиксированный заголовок Поле длины поля данных Поле данных Фиксированное завершение кадра
Преамбула Стартовый ограничитель  

Если при передаче данных признаком свободного канала является периодическая посылка передатчиком особых байтов (например, 11111111), то приемник всегда находится в побитовой синхронизации с передатчиком и кадр данных начинается с открывающего флага. А если признаком свободной среды является полное отсутствие передачи, то для введения приемника в синхронизацию с передатчиком передающая станция перед открывающим флагом посылает настроечную последовательность битов – преамбулу. В символьно -ориентированных протоколах вместо преамбулы посылается несколько символов с несимметричным кодом (например, 00101100). Когда достигается побитовая синхронизация, и приемник уже может различать байты этих кодов, передатчик посылает символ начала кадра.