Наиболее существенными характеристиками метода передачи, а значит, и реализующего его протокола являются следующие:
· асинхронный/синхронный;
· с предварительным установлением соединения/дейтаграммный;
· с обнаружением искаженных данных/без обнаружения;
· с обнаружением потерянных данных/без обнаружения;
· с восстановлением искаженных и потерянных данных/без восстановления;
· с поддержкой динамической компрессии данных/без поддержки.
Асинхронные протоколы представляют собой наиболее старый способ связи. В асинхронных протоколах единицей передаваемых данных являются не кадры, а отдельные символы. Эти протоколы применялись и применяются сейчас для связи телетайпов, разного рода клавиатур и дисплеев с компьютерами. В асинхронных протоколах используются стандартные наборы символов, чаще всего ASCII или EDBCDIC.
Т.к. первые 32 или 27 кодов в этих наборах символов являются специальными кодами, которые не отображаются на экране или принтере, то они использовались асинхронными протоколами для управления режимом обмена данными. В самих пользовательских данных, которые представляли собой буквы, цифры и различные знаки ($, #, & и др.) специальные коды никогда не встречались, так что проблемы для их отделения от пользовательских данных не существовало.
Начало и конец символа в канале связи помечались старт- и стоп-битами. Синхронизация отправителя и получателя производилась один раз по фронту старт-бита, последующие биты символа передавались без синхронизации.
Постепенно асинхронные протоколы усложнялись и стали наряду с отдельными символами использовать для передачи целые блоки данных, т.е. кадры, но все они обладают способностью передавать отдельные символы, сопровождаемые старт- и стоп-битами.
В синхронных протоколах нет стартовых и стоповых сигналов, поэтому отдельные символы в этих протоколах передавать нельзя. Все обмены данными осуществляются кадрами, которые в общем случае имеют заголовок, поле данных и концевик. Все биты кадра передаются непрерывным синхронным потоком, что значительно ускоряет передачу данных.
Т.к. байты в этих протоколах не отделяются друг от друга служебными сигналами, то одной из важнейших задач приемника является распознавание границ байт. Кроме того, приемник должен найти начало и конец кадра, а также определить границы каждого поля кадра: адреса назначения, адреса источника, других служебных полей заголовка, поля данных и контрольной суммы, если она имеется.
Большинство протоколов допускают использование в кадре поля данных произвольной длины. Иногда и заголовок может иметь переменную длину. Существуют также синхронные протоколы с кадрами фиксированной длины, например, в протоколе ATM кадры имеют фиксированный размер в 53 байта, включая и служебную информацию. Для таких протоколов достаточно решить только первую задачу – распознать начало кадра.
Синхронные протоколы бывают двух типов: символьно - ориентированные (байт-ориентированные) и бит-ориентированные. Для обоих типов протоколов характерны одни и те же методы синхронизации бит. Главное различие между ними заключается в методе синхронизации символов и кадров.
Символьно-ориентированные протоколы
Символьно-ориентированные протоколы используются в основном для передачи блоков отображаемых символов, например, текстовых файлов. Т.к. при синхронной передаче нет стартовых и стоповых битов, для синхронизации символов необходим другой метод. Синхронизация достигается за счет того, что передатчик добавляет один и более управляющих символов SYN (называемых синхросимволами) перед каждым блоком символов. Например, в коде ASCII символ SYN имеет двоичное значение 00010110. Это несимметричное относительно начала символа значение позволяет легко разграничивать отдельные символы SYN при их последовательном приеме.
Символы SYN выполняют две функции:
· обеспечивают приемнику начальную побитную синхронизацию;
· как только побитовая синхронизация достигается, они позволяют приемнику начать распознавание границ символов SYN. После того как приемник начал отделять один символ от другого, можно задать границы начала кадра с помощью другого специального символа, например STX (Start of Text, ASCII 02h). Другой символ отмечает конец кадра – ETX (End of Text, ASCII 03h).
Однако такой простой способ отделения начала и конца кадра работает только в том случае, если внутри кадра нет символов STX и ETX. При подключении к компьютеру алфавитно-цифровых терминалов эта проблема действительно не возникала. Однако символьно-ориентированные протоколы впоследствии стали применять и для связи компьютеров друг с другом, а в этом случае данные внутри кадра могут быть любыми.
Наиболее популярным протоколом такого типа был протокол BSC фирмы IBM. Он работал в двух режимах: непрозрачном, когда некоторые специальные символы внутри кадра запрещались, и прозрачном, разрешавшем передачу внутри кадра любых символов, в том числе и ETX. Прозрачность достигалась за счет того, что перед управляющими символами STX и ETX всегда вставлялся символ DLE (Data Link Escape, ASCII 10h). Такая процедура называется стаффингом символов. Если же в поле данных встречалась последовательность символов DLE ETX, то передатчик удваивал символ DLE, т.е. генерировал последовательность DLE DLE ETX.
Потребность в паре символов в начале и в конце каждого кадра вместе с дополнительными символами DLE означает, что символьно-ориентированная передача неэффективна для передачи двоичных данных, т.к. в поле данных приходится добавлять достаточно много избыточной информации.
Чтобы преодолеть эти проблемы, в настоящее время почти всегда используется более универсальный метод, называемый бит-ориентированной передачей. Этот метод сейчас применяется для передачи как двоичных, так и символьных данных.
Существуют три различные схемы бит-ориентированной передачи.
В первой схеме начало и конец каждого кадра отмечается одной и той же однобитовой последовательностью – 01111110, называемой флагом. Термин "бит-ориентированный" используется потому, что принимаемый поток бит сканируется приемником на побитовой основе для обнаружения стартового флага, а затем во время приема кадра - для обнаружения стопового флага. По этой причине длина кадра в бит-ориентированной передаче не обязательно должна быть кратной 8 бит.
Чтобы обеспечить синхронизацию приемника, передатчик посылает последовательность байтов простоя 11111111, предшествующую стартовому флагу.
Для достижения прозрачности в этой схеме необходимо, чтобы флаг не присутствовал в поле данных кадра. Это достигается с помощью приема, известного как бит-стаффинг – вставка бита 0. Схема вставки бита работает только во время передачи поля данных кадра. Если эта схема обнаруживает, что было передано пять единиц подряд, она автоматически вставляет дополнительный 0 (даже если после этих пяти единиц будет передаваться 0). Поэтому последовательность 01111110 никогда не появится в поле данных кадра. Аналогичная схема, выполняющая обратную функцию, используется в приемнике. Бит-стаффинг значительно более эффективен, чем байт-стаффинг, т.к. вместо лишнего байта вставляется всего один бит.
Во второй схеме для обозначения начала кадра используется только стартовый флаг, а для определения конца кадра применяется служебное поле длины кадра в его заголовке.
Третья схема использует для обозначения начала и конца кадра флаги, которые включают запрещенные для данного кода сигналы. Например, в сети Token Ring, использующей манчестерский код, начало кадра отмечается последовательностью JK0JK000, а конец – JK1JK100 (см. ниже). Этот способ очень экономичен, т.к. не требует ни бит-стаффинга, ни поля длины, но он зависит от способа физического кодирования.
При использовании избыточных кодов роль сигналов J и K играют запрещенные символы, например, в коде 4B/5B этими символами являются коды 11000 и 10001.
Передача с установлением соединения и без установления соединения
При передаче кадров данных используются как дейтаграммные процедуры, работающие без установления соединения, так и процедуры с предварительным установлением логического соединения.
При дейтаграммной передаче кадр посылается в сеть "без предупреждения", и никакой ответственности за его утерю протокол передачи не несет. Предполагается, что сеть всегда готова принять кадр от конечного узла. Дейтаграммный метод работает быстро, т.к. никаких предварительных действий перед отправкой данных не выполняется. Однако при таком методе в рамках протокола трудно организовать отслеживание факта доставки кадра узлу назначения. Этот метод не гарантирует доставку пакета адресату.
Передача с установлением соединения более надежна, но требует больше времени для передачи данных и вычислительных затрат от конечных узлов. В этом случае узлу назначения сначала посылается служебный кадр специального формата с предложением установить соединение. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный кадр, подтверждающий установление соединения и предлагающий для него некоторые параметры, например, идентификатор соединения, максимальное значение поля данных в кадрах и т.п. Узел-инициатор соединения может завершить процесс установления соединения отправкой третьего служебного пакета, в котором сообщит, что предложенные параметры ему подходят.