Байт-ориентированные протоколы

Обеспечивают управление передачей данных, представляемых байтами, например, при использовании таких первичных кодов как стандартного международного кода МТК-5, расширенного 8-битного двоичного кода EBCDIC и соответствующим им кодам КОИ-7 (ГОСТ 13052-74), КОИ-8 (ГОСТ 19768-74), ДКОИ. Для управления используются специальные служебные комбинации указанных кодов. Передача данных в рамках одного кадра может осуществляться синхронно или асинхронно (с использованием старта и стопа).

Формат кадра байт-ориентированного протокола с синхронной передачей сигналов:

Синхронизация достигается за счет того, что передатчик добавляет два или более управляющих символа, называемых символами SYN, перед каждым блоком символов. В коде ASCII символ SYN имеет двоичное значение 0010110, это несимметричное относительно начала символа значение позволяет легко разграничивать отдельные символы SYN при их последовательном приеме. Символы SYN выполняют две функции: во-первых, они обеспечивают приемнику побитную синхронизацию, во-вторых, как только битовая синхронизация достигается, они позволяют приемнику начать распознавание границ символов SYN, т.е. обеспечивают байтовую синхронизацию. После того, как приемник начал отделять один символ от другого, можно задавать границы начала кадра с помощью другого специального символа. Обычно в символьных протоколах для этих целей используется символ начала текста ? STX (Start of TeXt, ASCII 0000010). Другой символ отмечает окончание кадра – ЕТХ (End of TeXt, ASCII 0000011).

Однако такой простой способ выделения начала и конца кадра хорошо работает только в том случае, если внутри кадра нет символов STX и ЕТХ. При подключении к компьютеру алфавитно-цифровых терминалов такая проблема действительно не возникает. Но когда синхронные байт-ориентированные протоколы стали использовать и для связи компьютера с компьютером, то в этом случае данные внутри кадра могут быть любые, например, если между компьютерами передается программа. Для таких передач были разработаны «прозрачные» протоколы.

Наиболее популярным протоколом такого типа был протокол BSC (BinarySynchronousCommunication) компании IBM. Он работал в двух режимах – непрозрачном, в котором некоторые специальные символы внутри кадра запрещались, и прозрачном, в котором разрешалась передачи внутри кадра любых символов, в том числе ЕТХ и STX. Прозрачность достигалась за счет того, что перед управляющими символами STX и ЕТХ всегда вставлялся символ DLE (Data Link Escape). Такая процедура называется байт-стаффингом (stuff - вставка, заполнитель). А если в поле данных кадра встречалась последовательность DLE ЕТХ, то передатчик удваивал символ DLE, то есть порождал последовательность DLE DLE ЕТХ. Приемник, встретив подряд два символа DLE DLE, всегда удалял первый, но оставшийся DLE уже не рассматривал как начало управляющей последовательности, то есть оставшиеся символы DLE ЕТХ считал просто пользовательскими данными.

В случае асинхронной передачи с использованием кода MTK-5 каждая комбинация начинается стартовым, а заканчивается стоповым сигналом. При этом комбинация SYN в начале кадра не передается. Начало кадра будет определено по служебной комбинации SOH.

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

Таким образом, повышение достоверности обеспечивается применением корректирующего кода и решающей обратной связи с ожиданием (РОС-ОЖ).

Отличительными чертами протокола BSC являются следующие:
• возможность представления информации 8-битным расширенным двоичным кодом EBCDIC;
• применение для обнаружения ошибок помехоустойчивого циклического кода с контрольной последовательностью CRC-16;
• обеспечение прозрачности по коду.