stringtranslate.com

Высокоуровневое управление каналом передачи данных

High-Level Data Link Control (HDLC) — это протокол связи , используемый для передачи данных между устройствами в телекоммуникациях и сетях . Разработанный Международной организацией по стандартизации (ISO), он определен в стандарте ISO/IEC 13239:2002.

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

Первоначально HDLC использовался в сетях с несколькими устройствами, где одно устройство выступало в качестве главного, а другие — в качестве подчиненных, в таких режимах, как режим нормального ответа (NRM) и режим асинхронного ответа (ARM). Сейчас эти режимы используются редко. В настоящее время HDLC в основном используется в соединениях точка-точка , например, между маршрутизаторами или сетевыми интерфейсами , с использованием режима, называемого асинхронным сбалансированным режимом (ABM).

История

HDLC основан на протоколе SDLC IBM , который является протоколом уровня 2 для архитектуры системных сетей IBM (SNA). Он был расширен и стандартизирован МСЭ как LAP (процедура доступа к каналу), в то время как ANSI назвал свою по сути идентичную версию ADCCP .

Спецификация HDLC не определяет полную семантику полей кадра. Это позволяет выводить из нее другие полностью совместимые стандарты, и с тех пор производные появились в бесчисленном количестве стандартов. Она была принята в стек протоколов X.25 как LAPB , в протокол V.42 как LAPM , в стек протоколов Frame Relay как LAPF и в стек протоколов ISDN как LAPD.

Первоначальные стандарты ISO для HDLC следующие:

Действующий стандарт ISO/IEC 13239:2002 заменил все эти спецификации.

HDLC послужил источником вдохновения для протокола IEEE 802.2 LLC и является основой для механизма кадрирования, используемого с PPP на синхронных линиях, который применяется многими серверами для подключения к глобальной сети (WAN) , чаще всего к Интернету .

Аналогичная версия используется в качестве канала управления для многоканальных телефонных линий E-carrier (E1) и SONET . Cisco HDLC использует низкоуровневые методы кадрирования HDLC, но добавляет поле протокола к стандартному заголовку HDLC.

Обрамление

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

Как в синхронных, так и в асинхронных соединениях последовательность флагов представляет собой двоичное значение «01111110» или шестнадцатеричное значение 0x7E, но детали существенно различаются.

Синхронное кадрирование

Поскольку последовательность флага состоит из шести последовательных 1-битов, другие данные кодируются так, чтобы гарантировать, что они никогда не содержат более пяти 1-битов подряд. Это делается путем бит-стаффинга : всякий раз, когда в передаваемых данных появляются пять последовательных 1-битов, данные приостанавливаются и передается 0-бит.

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

Эта битовая подстановка служит второй цели — обеспечению достаточного количества переходов сигнала. В синхронных соединениях данные кодируются NRZI , так что 0-бит передается как изменение сигнала на линии, а 1-бит передается как отсутствие изменений. Таким образом, каждый 0-бит дает возможность принимающему модему синхронизировать свои часы с помощью фазовой автоподстройки частоты . Если в строке слишком много 1-битов, приемник может сбиться со счета. Битовая подстановка обеспечивает минимум один переход на шесть битовых времен во время передачи данных и один переход на семь битовых времен во время передачи флага.

Когда по симплексному или полнодуплексному синхронному каналу не передаются кадры, по каналу непрерывно передается разделитель кадров. Это создает одну из двух непрерывных форм волны в зависимости от начального состояния:

Спецификация HDLC позволяет использовать 0-бит в конце разделителя кадра совместно с началом следующего разделителя кадра, т.е. "011111101111110". Некоторое оборудование не поддерживает это.

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

HDLC передает байты данных, начиная с наименее значимым битом (не путать с порядком «от младшего к младшему» , который относится к порядку байтов в многобайтовом поле).

Асинхронное кадрирование

При использовании асинхронной последовательной связи, такой как стандартные последовательные порты RS-232 , синхронная битовая подстановка нецелесообразна по нескольким причинам:

Вместо этого асинхронное кадрирование использует «прозрачность контрольного октета», также называемую « заполнением байтов » или «заполнением октетов». Октет границы кадра — 01111110 (0x7E в шестнадцатеричной системе счисления). «Управляющий октет escape » имеет значение 0x7D (последовательность бит «10111110», поскольку RS-232 первым передает наименее значимый бит). Если любой из этих двух октетов появляется в передаваемых данных, отправляется октет escape, за которым следует исходный октет данных с инвертированным битом 5. Например, байт 0x7E будет передан как 0x7D 0x5E («10111110 01111010»). Другие зарезервированные значения октета (такие как XON или XOFF ) могут быть экранированы таким же образом, если это необходимо.

"Последовательность прерывания" 0x7D 0x7E завершает пакет неполной последовательностью байтов, заставляя получателя обнаружить ошибку. Это можно использовать для прерывания передачи пакета без каких-либо шансов, что получатель сочтет частичный пакет допустимым.

Структура

Содержимое кадра HDLC показано в следующей таблице:

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

Данные обычно отправляются кратными 8 битам, но только некоторые варианты требуют этого; другие теоретически допускают выравнивание данных по границам, отличным от 8 бит.

Последовательность проверки кадра (FCS) представляет собой 16-битный CRC-CCITT или 32-битный CRC-32, вычисляемый по полям Адрес, Управление и Информация. Он предоставляет средства, с помощью которых приемник может обнаружить ошибки, которые могли возникнуть во время передачи кадра, такие как потерянные биты, перевернутые биты и посторонние биты. Однако, учитывая, что алгоритмы, используемые для расчета FCS, таковы, что вероятность того, что некоторые типы ошибок передачи останутся необнаруженными, увеличивается с длиной проверяемых на наличие ошибок данных, FCS может неявно ограничивать практический размер кадра.

Если расчет FCS получателем не совпадает с расчетом отправителя, что указывает на то, что кадр содержит ошибки, получатель может либо отправить отправителю пакет с отрицательным подтверждением , либо не отправлять ничего. После получения пакета с отрицательным подтверждением или истечения времени ожидания пакета с положительным подтверждением отправитель может повторно передать неудавшийся кадр.

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

Типы станций (компьютеров) и режимы передачи данных

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

Режим нормального ответа позволяет без конкуренции использовать канал вторичный-первичный , поскольку первичный разрешает вторичным передавать по одному. Он также позволяет работать по полудуплексным каналам связи, пока первичный знает, что он не может передавать, когда он разрешил это делать вторичному.

Режим асинхронного ответа — это дополнение HDLC [1] для использования в полнодуплексных соединениях. Сохраняя различие первичного/вторичного, он позволяет вторичному передавать в любое время. Таким образом, должен быть какой-то другой механизм, гарантирующий, что несколько вторичных устройств не попытаются передавать одновременно (или только одно вторичное устройство).

Асинхронный сбалансированный режим добавляет концепцию комбинированного терминала , который может действовать как первичный и вторичный. К сожалению, этот режим работы имеет некоторые тонкости реализации. В то время как наиболее распространенные отправляемые кадры не заботятся о том, находятся ли они в кадре команды или ответа, некоторые важные кадры заботятся (особенно большинство ненумерованных кадров и любой кадр с установленным битом P/F), и поле адреса полученного кадра должно быть проверено, чтобы определить, содержит ли он команду (полученный адрес наш) или ответ (полученный адрес принадлежит другому терминалу).

Это означает, что поле адреса не является необязательным, даже в соединениях точка-точка, где оно не требуется для устранения неоднозначности пир, с которым ведется разговор. Некоторые варианты HDLC расширяют поле адреса, включая как исходный, так и целевой адреса или явный бит команды/ответа.

Операции HDLC и типы кадров

Можно выделить три основных типа кадров HDLC:

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

Общий формат поля управления:

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

P/F бит

Poll/Final — это один бит с двумя названиями. Он называется Poll, когда является частью команды (устанавливается первичной станцией для получения ответа от вторичной станции), и Final, когда является частью ответа (устанавливается вторичной станцией для указания ответа или окончания передачи). Во всех остальных случаях бит сброшен.

Бит используется как токен , который передается туда и обратно между станциями. В каждый момент времени должен существовать только один токен. Вторичный узел отправляет Final только после получения Poll от первичного узла. Первичный узел отправляет Poll только после получения Final от вторичного узла или после тайм-аута, указывающего на потерю бита.

При работе в качестве комбинированной станции важно сохранять различие между битами P и F, поскольку одновременно могут работать два цикла контрольных точек. Бит AP, поступающий в команде с удаленной станции, не является ответом на наш бит P; только бит F, поступающий в ответе, является ответом.

N(R), номер последовательности приема

Оба кадра I и S содержат номер последовательности приема N(R). N(R) обеспечивает положительное подтверждение приема I-кадров с другой стороны канала. Его значение всегда равно первому кадру, который еще не получен; он подтверждает, что все кадры со значениями N(S) до N(R)−1 (по модулю 8 или по модулю 128) были получены, и указывает N(S) следующего кадра, который он ожидает получить.

N(R) работает одинаково, независимо от того, является ли он частью команды или ответа. Комбинированная станция имеет только одно пространство порядкового номера.

N(S), порядковый номер отправленного кадра

Это значение увеличивается для последующих I-кадров по модулю 8 или по модулю 128. В зависимости от количества бит в порядковом номере в любой момент времени может ожидаться подтверждение до 7 или 127 I-кадров.

I-Frames (пользовательские данные)

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

Наименее значимый бит (передаваемый первым) определяет тип кадра. 0 означает I-кадр. За исключением интерпретации поля P/F, нет никакой разницы между командным I-кадром и ответным I-кадром; когда P/F равен 0, эти две формы полностью эквивалентны.

S-рамы (контроль)

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

Поле управления S-кадром включает начальную цифру «10», указывающую, что это S-кадр. За ней следует 2-битный тип, бит опроса/финала и 3-битный порядковый номер. (Или 4-битное поле заполнения, за которым следует 7-битный порядковый номер.)

Первые (наименее значимые) 2 бита означают, что это S-кадр. Все S-кадры включают бит P/F и порядковый номер приема, как описано выше. За исключением интерпретации поля P/F, нет никакой разницы между командным S-кадром и ответным S-кадром; когда P/F равен 0, эти две формы полностью эквивалентны.

Прием готов (RR)

Прием не готов (RNR)

Отклонить (REJ)

Выборочное отклонение (SREJ)

U-образные рамы

Ненумерованные кадры, или U-кадры , в основном используются для управления связью, хотя некоторые используются для передачи пользовательских данных. Они обмениваются информацией об управлении сеансом и управлении между подключенными устройствами, а некоторые U-кадры содержат информационное поле, используемое для информации об управлении системой или пользовательских данных. Первые 2 бита (11) означают, что это U-кадр. Пять битов типа (2 перед битом P/F и 3 бита после бита P/F) могут создавать 32 различных типа U-кадра. В некоторых случаях одно и то же кодирование используется для разных вещей, таких как команда и ответ.

Настройка режима

Различные режимы описаны в § Конфигурации связей. Вкратце, существует два нерабочих режима (режим инициализации и отключенный режим) и три рабочих режима (нормальный ответ, асинхронный ответ и асинхронный сбалансированный режим) с 3-битными или 7-битными (расширенными) порядковыми номерами.

Ответ в режиме отключения (DM)
Когда вторичный отключается (состояние по умолчанию при включении питания), он отправляет этот общий ответ на любой опрос (командный кадр с установленным флагом опроса), за исключением приемлемой команды установки режима. Он может также дать ответ FRMR на неприемлемую команду установки режима.
Ненумерованный ответ подтверждения (UA)
Это ответ вторичного устройства на приемлемую команду установки режима, указывающий, что теперь оно находится в запрошенном режиме.
Команда «Установить ... режим» (SNRM, SARM, SABM)
Поместите вторичный в указанный режим с 3-битными порядковыми номерами (1-байтовое поле управления). Вторичный подтверждает с помощью UA. Если вторичный не реализует режим, он отвечает с помощью DM или FRMR.
Установить ... режим расширенной команды (SNRME, SARME, SABME)
Переведите вторичный преобразователь в указанный режим с 7-битными порядковыми номерами (2-байтовое поле управления).
Команда установки режима (SM)
Универсальный набор режимов, новый в ISO/IEC 13239, использующий информационное поле для выбора параметров. ISO/IEC 13239 добавил много дополнительных опций в HDLC, включая 15- и 31-битные порядковые номера, которые можно выбрать только с помощью этой команды.
Команда «Отключить» (DISC)
Эта команда заставляет вторичный узел подтвердить с помощью UA и отключиться (перейти в режим отключения). Любые неподтвержденные кадры теряются.
Запрос на отключение (RD) ответ
Этот ответ запрашивает у первичного узла отправку команды DISC. Первичный узел должен сделать это быстро, но может задержаться достаточно долго, чтобы убедиться, что все ожидающие кадры подтверждены.
Команда установки режима инициализации (SIM)
Эта редко реализуемая команда используется для выполнения некоторой вторичной специфической инициализации, такой как загрузка прошивки . То, что происходит в режиме инициализации, не указано иным образом в стандарте HDLC.
Ответ на запрос режима инициализации (RIM)
Это запрашивает первичный узел для отправки SIM и инициализации вторичного узла. Он отправляется вместо DM, если вторичный узел требует инициализации.

Передача информации

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

Ненумерованная информация (UI)
Этот кадр (команда или ответ) передает пользовательские данные, но без подтверждения или повторной передачи в случае ошибки.
Пользовательский интерфейс с проверкой заголовка (UIH)
Этот фрейм (команда или ответ), дополнение ISO/IEC 13239 и редко используемый, похож на UI, но также исключает защиту CRC. Только префикс настраиваемой длины («заголовок») фрейма покрывается полиномом CRC; ошибки в остальной части фрейма не обнаруживаются.
Команда опроса без номера (UP)
Эта команда запрашивает ответ от вторичного устройства. С установленным битом опроса он действует как любой другой кадр опроса, без подтверждения, которое должно быть включено в кадр I или S. С очищенным битом опроса он имеет особое значение в нормальном режиме ответа: вторичное устройство может ответить, даже если оно не получило бит опроса. Это редко используется в HDLC, но использовалось в оригинальном IBM SDLC в качестве замены отсутствия асинхронного режима ответа; когда канал связи мог обрабатывать одновременные ответы, первичный периодически отправлял UP на широковещательный адрес, чтобы собрать любые ожидающие ответы.

Восстановление после ошибки

Ответ на отклонение кадра (FRMR)
Ответ FRMR содержит описание неприемлемого кадра в стандартизированном формате. Первые 1 или 2 байта являются копией отклоненного поля управления, следующие 1 или 2 содержат текущие номера последовательности отправки и получения вторичного устройства (и флаг, указывающий, что кадр был ответом, применимый только в сбалансированном режиме), а следующие 4 или 5 битов являются флагами ошибок, указывающими причину отклонения. Вторичное устройство повторяет тот же ответ FRMR на каждый опрос, пока ошибка не будет устранена командой установки режима или RSET. Флаги ошибок следующие:
  • W: тип кадра (поле управления) не понят или не реализован.
  • X: тип фрейма не распознан при наличии непустого информационного поля, хотя оно присутствовало.
  • Y: кадр включал информационное поле, размер которого больше, чем может принять вторичный преобразователь.
  • Z: кадр включал недопустимый порядковый номер приема N(R), который не находится между ранее полученным значением и наивысшим переданным порядковым номером. (Эта ошибка не может быть устранена путем получения RSET, но может быть устранена путем отправки RSET.)
  • V: кадр включал недопустимый номер последовательности отправки N(S), больший, чем последний подтвержденный номер плюс размер окна передачи. Эта ошибка возможна только в том случае, если был согласован размер окна передачи, меньший максимального.
  • Флаги ошибок обычно дополняются нулевыми битами до 8-битной границы, но HDLC допускает кадры, длина которых не кратна байту.
Команда сброса (RSET)
Команда RSET заставляет вторичный узел сбросить свой номер последовательности приема, поэтому следующим ожидаемым кадром будет номер последовательности 0. Это возможная альтернатива отправке новой команды установки режима, которая сбрасывает оба номера последовательности. Она подтверждается с помощью UA, как и команда установки режима.

Открытие сверстников

Идентификация обмена (XID)
Команда XID включает информационное поле, определяющее возможности первичного устройства; вторичное устройство отвечает ответом XID, определяющим его возможности. Обычно это делается перед отправкой команды установки режима. Системная сетевая архитектура определила один формат для информационного поля, в котором старший бит первого байта очищен (0), но реализации HDLC обычно реализуют вариант, определенный в ISO 8885, в котором старший бит первого байта установлен (1).
ТЕСТ
Команда TEST — это просто команда ping для отладки. Полезная нагрузка команды TEST возвращается в ответе TEST.

Определено в других стандартах

Существует несколько U-кадров, которые не являются частью HDLC, но определены в других связанных стандартах.

Незарезервировано (NR0, NR1, NR2, NR3)
Стандарт HDLC гарантирует, что «незарезервированные» команды и ответы будут доступны для других целей.
Подтверждение без установления соединения (AC0, AC1)
Они определены в стандарте управления логическим каналом IEEE 802.2 .
Конфигурация (CFGR)
Эта команда была определена в SDLC для отладки. Она имела 1-байтовую полезную нагрузку, которая указывала нестандартный тестовый режим для вторичного устройства. Четные числа отключали режим, а нечетные включали его. Полезная нагрузка 0 отключала все тестовые режимы. Вторичное устройство обычно подтверждало команду конфигурации, повторяя ее в ответе.
Ответ маяка (BCN)
Этот ответ был определен в SDLC для указания на сбой связи. Вторичный, который долгое время не получал кадров, начинал отправлять поток ответов маяков, что позволяло локализовать однонаправленный сбой. Обратите внимание, что ISO/IEC 13239 назначает UIH ту же кодировку, что и BCN.

Конфигурации ссылок

Конфигурации ссылок можно разделить на следующие категории:

Три конфигурации связи:

Дополнительная конфигурация связи — режим Disconnected . Это режим, в котором находится вторичная станция до того, как она будет инициализирована первичной станцией или когда она явно отключена. В этом режиме вторичная станция отвечает почти на каждый кадр, кроме команды установки режима, ответом «Disconnected mode». Цель этого режима — позволить первичной станции надежно обнаруживать отключение вторичной станции или ее сброс.

Репертуар команд и ответов HDLC

Минимальный набор, необходимый для работы:

Основные операции

Модуль HDLC на другом конце передает кадр (UA) при принятии запроса. Если запрос отклонен, он отправляет кадр режима отключения (DM).

Функциональные расширения (опции)

Репертуар команд и ответов HDLC

Ненумерованные кадры

Ненумерованные кадры идентифицируются двумя младшими битами, равными 1. С флагом P/F, это оставляет 5 бит в качестве типа кадра. Несмотря на то, что используется менее 32 значений, некоторые типы имеют разные значения в зависимости от направления, в котором они отправляются: как команда или как ответ. Связь между командой DISC (отключение) и ответом RD (запрос на отключение) кажется достаточно ясной, но причина, по которой команда SARM численно равна ответу DM, неясна.

* ^ ^ Дополнение к ISO/IEC 13239
^ ^ ^ Не является частью HDLC

Кадры UI, UIH, XID, TEST содержат полезную нагрузку и могут использоваться как команды, так и ответы. Команда SM и ответ FRMR также содержат полезную нагрузку.

Смотрите также

Примечания

  1. ^ (Френд и др., 1988, стр. 191)
  2. ^ "Типы рам X.25 - Мартин Бейкер".
  3. ^ "Типы рам X.25 - Мартин Бейкер".
  4. ^ "Типы рам X.25 - Мартин Бейкер".

Ссылки

Внешние ссылки