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

Широкое применение при передаче данных на канальном уровне находят также бит-ориентированные протоколы. Базовым протоколом этого класса является разработанный в 1973 г. Международной организацией стандартов (МОС) стандарт HDLC, который является высокоуровневым протоколом управления звеном данных. На основе стандарта HDLC разработано множество протоколов другими органами стандартизации для решения конкретных задач по передаче данных в различных сетях и службах ПД. Для сетей ПД Х.25 МСЭ-Т утвердил протоколы канального уровня LAP и LAPB. Комитет IEEE 802 разработал протокол управления логическим каналом LLC для локальных сетей. Фирма IBM разработала бит-ориентированный протокол синхронного управления звеном данных SDLC. На базе стандарта HDLC разработан протокол канального уровня для сетей с ретрансляцией кадров FrameRelay. Передача IP-пакетов часто производится по протоколу PPP с помощью кадров, которые также сформированы на основе стандарта HDLC.

Службы факсимильной связи обеспечивают услуги по передаче факсов с использованием стандарта HDLC.

Наконец, можно привести ряд интерфейсов физического уровня, где применяется протокол HDLC. К ним можно отнести рассмотренные выше интерфейс USB и инфракрасный интерфейс IrDA.

Приведенный выше обзор свидетельствует об очень широком применении бит-ориентированных протоколов, основанных на стандарте МОС HDLC.

Отметим наиболее важные особенности протокола HDLC.

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

тип I - кадр для передачи данных (информационный кадр);

тип S - кадр для организации обратной связи (супервизорный управляющий кадр);

тип U - управляющий кадр для установления соединения, режимов обмена и других служебных целей (ненумерованный кадр).

Общий формат информационного I-кадра имеет вид:

Флаг служит для распознавания начала и конца кадра.

Адресное поле определяет адрес одной или другой станции звена данных.

Поле управления определяет тип кадра (I,S или U), а также служит для контроля за процессом передачи данных между двумя рабочими станциями и организации запросов обратной связи при дуплексном обмене.

Контрольная последовательность CRC-16 формируется на основе циклического систематического кода с образующим многочленом 16-ой степени и служит для обнаружения ошибок в принятом кадре.

В случае передачи данных только в одном направлении контроль за передачей и организация обратной связи (РОС) осуществляется с помощью S-кадров.

С помощью U-кадров устанавливается соединение, происходит разъединение, а также выбирается один из трех режимов обмена: режим нормальных ответов, режим асинхронных ответов или сбалансированный режим. Указанные режимы определяют тот или иной статус оконечных станций звена данных.

Поле данных в бит-ориентированных протоколах может быть произвольным (n бит), но ограниченной длины.

Прозрачность по коду в бит-ориентированных протоколах обеспечивается путем применения процедуры бит-стаффинга, которая состоит в том, при появлении среди данных комбинации 011111 к ней справа добавляется 0, который на приеме, после получения комбинации 0111110, удаляется еще до того, как будут обработаны поля кадра. Это исключает появление среди принятых данных ложного флага. Истинные флаги, определяющие начало и конец кадра, передаются без изменения. На рис. 2.8 показаны 3 различные схемы бит-ориентированной передачи. Они отличаются способом обозначения начала и конца каждого кадра.


Рис. 2.8. Способы выделения начало и конца кадра при синхронной передаче

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

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

Для достижения прозрачности данных в этой схеме необходимо, чтобы флаг не присутствовал в поле данных кадра. Это достигается с помощью приема, известного как вставка нуля (“0”) или бит-стаффинг. Бит-стаффинг гораздо более экономичен, чем байт-стаффинг, так как вместо лишнего байта вставляется один бит, следовательно, скорость передачи пользовательских данных в этом случае замедляется в меньшей степени.

Во второй схеме (рис. 2.8, б) для обозначения начала кадра имеется только стартовый флаг, а для определения конца кадра используется поле длины кадра, которое при фиксированных размерах заголовка и концевика чаще всего имеет смысл длины поля данных кадра. Эта схема наиболее применима в локальных сетях. В этих сетях для обозначения факта незанятости среды в исходном состоянии по среде вообще не передается никаких символов. Чтобы все остальные станции вошли в битовую синхронизацию, посылающая станция предваряет содержимое кадра последовательностью бит, известной как преамбула, которая состоит из чередования единиц и нулей 101010... Войдя в битовую синхронизацию, приемник исследует входной поток на побитовой основе, пока не обнаружит байт начала кадра 10101011, который играет роль символа STX. За этим байтом следует заголовок кадра, в котором в определенном месте находится поле длины поля данных. Таким образом, в этой схеме приемник просто отсчитывает заданное количество байт, чтобы определить окончание кадра.

Третья схема (рис. 2.8, в) использует для обозначения начала и конца кадра флаги, которые включают запрещенные для данного кода сигналы (code violations, V). Например, при манчестерском кодировании вместо обязательного изменения полярности сигнала в середине тактового интервала уровень сигнала остается неизменным и низким (запрещенный сигнал J) или неизменным и высоким (запрещенный сигнал К). Начало кадра отмечается последовательностью JK0JK000, а конец – последовательностью JK1JK100. Этот способ очень экономичен, так как не требует ни бит-стаффинга, ни поля длины, но его недостаток заключается в зависимости от принятого метода физического кодирования. При использовании избыточных кодов роль сигналов J и К играют запрещенные символы, например, в коде 4В/5В этими символами являются коды 11000 и 10001.

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

Протоколы с гибким форматом кадра

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

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