logo
Лекции Сети ЭВМ

Протокол hdlc (High Data Link Connection).

Кадр HDLC состоит из трех частей: трехбайтового (в особых случаях четырехбайтового) заголовка, основы, размером от 0 до N байт и трехбайтового концевика. Любой кадр начинается и кончается флагом – 8 битовым управляющим символом, отделяющим кадры друг от друга. Флаг-код 01111110.

Рис. 14. Формат кадра HDLC.

Протокол HDLC предусматривает использование трех типов кадров, определяющих 3 фазы работы двух взаимодействующих машин:

1) Ненумерованный (U - кадр) предназначен для выполнения функций фазы установления и прекращения связи пары машин (запрос и согласие на установление связи, сообщение об ошибках в формате кадра, запрос разъединения и т.п.).

2) Супервизорный (S - кадр) – обеспечивает выполнение фазы управления передачей кадров (сообщает о готовности либо неготовности к приему, ошибки в содержимом кадра, запрос повтора передачи кадра). Здесь кадры такие: готовность к приему, неготовность к приему, отказ, селективный отказ(повтор передачи определенного по номеру кадра, кадры с большим номером не отвергаются).

3) Информационный (I - кадр).

Формат поля управления следующий:

Рис. 15. Форматы полей кадра HDLC.

Чтобы в передаваемой последовательности бит не было ни одного символа, совпадающего с флагом, перед посылкой делается операция, которая называется битстаффингом: после 5 единиц подряд вставляется 0. При приеме производится обратная операция при просмотре основы кадра.

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

Версия МОС HDLC предусматривает ассиметричные информационные каналы. Здесь программа управления информационным каналом, выполняющая первичные функции, располагается в одной из машин, которой присвоен статус «первичной». Ей поручается управление всеми сеансами, выполняемыми информационным каналом. Программа управления реализацией вторичных функций находится во второй машине, которая определяет статус вторичной. Во всех сеансах она выполняет роль управляемой машины.

В версии МОС первичная машина обеспечивает выполнение двух способов управления информационным каналом. Если источником информации является первичная машина, то взаимодействие со вторичной осуществляется с помощью команд селекции (выбора необходимых вторичных машин). Если же источником информации становится вторичная машина, то для взаимодействия с ней первичная использует команды опроса. Что касается вторичных машин, то время МОС предусматривает 2 режима ее работы: нормальный (NRM) и асинхронный (ARM). В нормальном режиме вторичная машина может начать передачу кадров только после получения разрешения от первичной, после чего вторичная машина передает первичной 1 или несколько кадров.

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

В версии МККТТ протокола HDLC предусматривается создание симметричного канала. Здесь любой из машин выполняет как первичные, так и вторичные функции. В версии МККТТ нормальный режим (NRM) не используется, а использется только асинхронный режим (ARM). Поэтому здесь нет подобности в передаче вторичной функцией информационных кадров (это делает первичная функция, так как в каждой машине имеются обе эти функции).

Тип кадра указывается в байте управления, информационный – значением 0 в бите 1, супервизорный – значением битов 1-4, ненумерованный – значением битов 1-4 и 6-8. В байте управления указываются номера N(S)=0, 1, … , 7 и N(R)=0, 1, … , 7 передаваемого и принимаемого (ожидаемого) кадров. В супервизорных кадрах указывается только номер N(R) принимаемого кадра. Бит 5 поля управления называется битом запроса в командах и битом окончания в ответах. Супервизорные кадры используются для восстановления кадров, потерянных из-за искажения информации, а также для управления потоками кадров.

Используется 2 режима нумерации кадров: нормальный – с нумерацией кадров до 8 и расширенный – с нумерацией до 128. Во втором случае поле управления состоит из 2 байт.

В любой машине устанавливается по два счетчика. Один подсчитывает информационные кадры, переданные в канал V(S), а другой считает кадры, полученные из этого канала V(R). Непосредственно перед отправкой информационного кадра в него записываются N(S) и N(R) – номера передаваемого и ожидаемого (при приеме) кадра соответственно, эти номера определяются показателями счетчиков. Если процедура передачи кадра прошла без ошибок, то номер передаваемого кадра, присвоенной машиной II, должен совпасть с показателями счетчика принятых кадров в машине II. Если это условие нарушено, то принятый кадр выбрасывается, а машина I посылает требование повтора передачи этого кадра (селективный отказ). Значение счетчика V(R) в этом случае не изменяется. Если же номера совпали и кадр передан без ошибок, то он принимается машиной I и значение счетчика V(R) увеличивается на 1. Поэтому в кадре c N(R)=V(R)+1 придя в машину II значением N(R) сообщает, что информация кадра с номерами до N(R) – 1 переданы правильно и приняты машиной I. Супервизорным кадрам также присваивается номер, но только N ожидаемого при приеме кадра N(R). Передача ненумерованных кадров не связана с работой счетчиков и последовательность их не считают.

Рис. 16. Обмен кадрами в HDLC.

Список команд и ответов, используемых в HDLC приведен в таблице 1.

Любой из ненумерованных и супервизорных кадров передает команду либо ответ, что обеспечивает управление информационным каналом. Любой из ненумерованных кадров несет в себе одну из 5 команд либо один из двух ответов.

Таблица 3

Тип кадра

Команда

Ответ

Ненумерованный

SNRM – установить связь в нормальном режиме

SNRME – установить связь в нормальном режиме с расширенным полем управления

SARM – установить связь в асинхронном режиме

SARME – установить связь в асинхронном режиме с расширенным полем управления

DISC – прекратить связь.

UA – подтверждение

CMDR – отказ от выполнения команды

Супервизорный

RR – готов к приему

RNR – не готов к приему

REJ – отказ от кадров

SREJ – селективный отказ от кадров

RR – готов к приему

RNR – не готов к приему

REJ – отказ от кадров

SREJ – селективный отказ от кадров

Информационный

I - информация

I – информация

Ответ UA используется для посылки информации о принятой к выполнению команде. Ответ CMDR посылается в тех случаях, когда принятая команда не может быть выполнена: прием ложной либо неиспользуемой команды, прием кадра с пакетом больше стандартного, прием кадра, номер которого имеет недопустимое значение (появление номера уже принятого и подтвержденного или внеочередного номера). Супервизорный кадр передает одну из 4 команд либо 1 из 4 ответов. В управляющем поле информационного кадра (кадра I) нет команд, так как код самого кадра одновременно является и командой, сообщающей, что в кадре – информация.

Процедура управления

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

Передачей 15 и более единиц подряд информационный канал из активного состояния переводится в пассивное. Пассивное состояние канала означает, что передающая машина закончила сеанс связи. В пассивном состоянии через информационный канал можно передать только управляющий кадр, содержащий одну из команд SNRM, SARM, SNRME либо SARME. Посылка одной из этих команд и получение ответа UA вновь переводят канал в активное состояние.

Взаимодействие двух машин характеризуется 3 фазами: установление, поддержание и прекращение связи. До установления связи информационный канал находится в пассивном состоянии и счетчики кадров – в нуле. Первичная машина, желающая установить связь, посылает вторичной машине управляющий кадр, содержащий одну из команд SNRM, SARM, SNRME, SARME, предполагающую начать сеанс связи в соответствующем режиме. После посылки кадра станция (машина) запускает тайм-аут, по истечении которого команда будет повторена, если не поступит ответ от вторичной машины.

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

Фаза поддержания связи характеризуется передачей по информационному каналу в обе стороны информационных кадров, направлением подтверждений о их правильном получении либо посылкой запросов на повторную передачу информационных кадров в случае появления в них ошибки. До получения подтверждения можно передать группу, включающую от одного до 8 или 128 (в зависимости от величины поля управления) информационных кадров. Протокол HDLC обеспечивает 4 способа восстановления информационных кадров. Основной способ – использование тайм-аутов, когда супервизорные кадры подтверждают прием информационных кадров, таймер перезагружается на величину тайм-аута. Номер N(R), полученный первичной машиной подтверждает прием всех кадров с номерами меньшими N(R). Если тайм-аут закончился, то первичная машина начинает повторную передачу кадров, прием которых не подтвержден. Для повышения эффективности использования канала предусмотрена посылка отрицательных квитанций – супервизорных кадров «отказ» и «Селективный отказ». Если принятый кадр искажен из-за ошибки (обнаружен с помощью циклического суммирования), вторичная машина не дожидаясь окончания тайм-аута, посылает отрицательную квитанцию «отказ», содержащую номер ожидаемого кадра N(R) и ждет кадра с этим номером.

При этом все поступающие кадры с большими номерами игнорируются принимающей машиной. Эффективность использования канала еще более повышается за счет селективной браковки. В этом случае станция, ожидающая кадр N(R) и получившая кадр N(R)+1, принимает его и последующие кадры, извещая передающую станцию супервизорным кадром «селективный отказ» о потере кадра N(R). В ответ передающая станция повторно передает потерянный кадр. Отрицательная квитанция «отказ» или «Селективный отказ» не исключают необходимость в тайм-ауте, поскольку квитанции могут быть потеряны в канале.

Для прекращения сеанса связи первичная машина посылает команду DISC. В ответ вторичная направляет подтверждение UA. При желании вторичной машины прекратить связь последняя перестает посылать в информационный канал последовательность флагов. Канал из активного состояния переходит в пассивное и фаза прекращения связи заканчивается.

Контрольные вопросы:

  1. Х.21 – это последовательный или параллельный интерфейс?

  2. Что такое байт и бит-стаффинги?

  3. Для чего нужны флаги в протоколе HDLC?

  4. Какова функция S-кадров в HDLC?

  5. Какова функция U-кадров в HDLC?

  6. Каковы особенности интерфейса Х.21бис.

  7. BSC – это байт или бит-ориентированный протокол?

  8. Какие режимы существуют в HDLC?

Лекция 7.