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