Открыть сервис

High-Level Data Link Control

High-Level Data Link Control (HDLC) — это протокол канального уровня модели OSI, предназначенный для организации надёжной передачи данных между узлами сети. Он определяет структуру кадра, процедуры управления потоком, обнаружения и исправления ошибок, а также методы адресации и управления соединением. HDLC является стандартизированным протоколом (ISO 13239, ITU-T Q.921) и лежит в основе многих других протоколов, таких как PPP, LAPB, LAPD, LAPF и Frame Relay.

История

Протокол HDLC был разработан в 1970-х годах Международной организацией по стандартизации (ISO) на основе более раннего протокола SDLC (Synchronous Data Link Control), созданного компанией IBM. SDLC был частью архитектуры SNA (Systems Network Architecture) и предназначался для синхронной передачи данных в сетях с главным и подчинёнными узлами. ISO, стремясь создать универсальный стандарт, расширила функциональность SDLC, добавив поддержку различных топологий и режимов работы, и в 1979 году опубликовала стандарт ISO 3309 (структура кадра) и ISO 4335 (процедуры).

В 1980-х и 1990-х годах HDLC получил широкое распространение в телекоммуникационных системах, особенно в сетях X.25, ISDN и Frame Relay. С развитием Ethernet и IP-сетей HDLC уступил место более гибким протоколам, но остаётся важным элементом для специализированных приложений, таких как спутниковая связь, промышленная автоматизация и системы управления. Модификации HDLC используются в протоколах PPP (Point-to-Point Protocol) и LAPB (Link Access Procedure, Balanced).

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

HDLC ориентирован на бит-ориентированную передачу, то есть данные передаются в виде непрерывного потока битов, а не байтов или символов. Это отличает его от байт-ориентированных протоколов, таких как BSC (Binary Synchronous Communication). Ключевые особенности HDLC:

  • Флаговая синхронизация: Каждый кадр начинается и заканчивается уникальной последовательностью битов — флагом 01111110 (0x7E). Чтобы избежать появления этой последовательности внутри данных, используется процедура бит-стаффинга (bit stuffing): после каждых пяти единичных битов вставляется нулевой бит. При приёме после пяти единиц подряд следующий нулевой бит удаляется.
  • Адресация: Поле адреса может иметь длину от 1 до 4 байт (в зависимости от реализации), что позволяет адресовать до 256 узлов в базовом варианте.
  • Управление потоком и ошибками: Используются механизмы скользящего окна, подтверждения приёма (ACK) и повторной передачи (ARQ). Размер окна может варьироваться от 1 до 127 кадров.
  • Проверка целостности: Каждый кадр содержит поле Frame Check Sequence (FCS), вычисляемое по алгоритму CRC (Cyclic Redundancy Check) длиной 16 или 32 бита.

Структура кадра

Кадр HDLC состоит из следующих полей:

ПолеДлина (байты)Описание
Флаг1Синхронизация: 01111110
Адрес1–4Идентификатор получателя (или отправителя)
Управление1–2Тип кадра и управляющая информация
Данные0–NПолезная нагрузка (переменная длина)
FCS2 или 4Контрольная сумма (CRC)
Флаг1Завершающий флаг

Поле управления определяет тип кадра и содержит информацию для управления соединением. В зависимости от типа кадра, поле управления может включать:

  • Номер кадра (N(S)): порядковый номер отправляемого кадра.
  • Номер ожидаемого кадра (N(R)): номер следующего кадра, который ожидается от противоположной стороны (используется для подтверждения).
  • Биты P/F (Poll/Final): бит опроса (P) в командах и бит завершения (F) в ответах.

Типы кадров

HDLC определяет три типа кадров, различающихся по назначению и содержанию поля управления:

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

Предназначены для передачи пользовательских данных. Содержат номера N(S) и N(R), что позволяет реализовать скользящее окно и подтверждение приёма. I-кадры могут передаваться только в установленном соединении.

Наблюдающие кадры (S-кадры)

Используются для управления потоком и подтверждения приёма без передачи данных. Основные типы S-кадров:

  • RR (Receive Ready): подтверждение приёма и готовность к приёму следующих кадров.
  • RNR (Receive Not Ready): подтверждение приёма, но временная неготовность к приёму (например, из-за переполнения буфера).
  • REJ (Reject): запрос на повторную передачу одного кадра (селективное повторение).
  • SREJ (Selective Reject): запрос на повторную передачу нескольких кадров (используется в некоторых модификациях).

Ненумерованные кадры (U-кадры)

Используются для управления соединением (установление, разрыв, сброс) и передачи служебной информации. Примеры:

  • SABM (Set Asynchronous Balanced Mode): установление соединения в асинхронном сбалансированном режиме.
  • DISC (Disconnect): разрыв соединения.
  • UA (Unnumbered Acknowledgment): подтверждение приёма ненумерованной команды.
  • DM (Disconnected Mode): сообщение о том, что узел находится в отключённом состоянии.
  • FRMR (Frame Reject): сообщение об ошибке в принятом кадре (например, неверный формат).

Режимы работы

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

Нормальный режим ответа (NRM — Normal Response Mode)

Используется в топологиях «главный-подчинённый». Главный узел инициирует передачу, отправляя команды. Подчинённый узел может передавать данные только в ответ на команду (с битом P=1). Этот режим характерен для сетей с централизованным управлением.

Асинхронный сбалансированный режим (ABM — Asynchronous Balanced Mode)

Наиболее распространённый режим, используемый в современных сетях (например, в PPP и LAPB). Оба узла равноправны и могут инициировать передачу в любой момент. Каждый узел выполняет функции как отправителя, так и получателя. Режим ABM поддерживает полнодуплексную связь.

Асинхронный режим ответа (ARM — Asynchronous Response Mode)

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

Применение

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

  • Сети X.25: Протокол LAPB (Link Access Procedure, Balanced) является подмножеством HDLC и используется на канальном уровне в сетях X.25.
  • ISDN: Протокол LAPD (Link Access Procedure on the D-channel) — модификация HDLC для D-канала ISDN, используется для сигнализации.
  • Frame Relay: Протокол LAPF (Link Access Procedure for Frame-mode Bearer Services) основан на HDLC и применяется в сетях Frame Relay.
  • PPP (Point-to-Point Protocol): Использует модифицированную версию HDLC для инкапсуляции пакетов IP при соединениях «точка-точка» (например, в DSL или последовательных интерфейсах).
  • Промышленная автоматизация: Протоколы PROFIBUS и некоторые реализации Modbus используют HDLC-подобные кадры для управления и передачи данных.
  • Спутниковая связь: HDLC применяется для организации надёжной передачи данных в условиях высоких задержек и помех.
  • Системы управления и телеметрии: В авиации, космической технике и военных системах HDLC используется для передачи команд и данных.

Сравнение с другими протоколами

ХарактеристикаHDLCPPPEthernet
Тип передачиБит-ориентированныйБайт-ориентированныйКадр-ориентированный
Адресация1–4 байта1 байт (в HDLC-подобном кадре)MAC-адреса (6 байт)
Управление потокомСкользящее окноСкользящее окно (опционально)CSMA/CD или CSMA/CA
Проверка ошибокCRCCRCCRC
Поддержка многоточечной связиДа (NRM)НетДа (с помощью коммутаторов)
СтандартизацияISO 13239RFC 1661IEEE 802.3

Интересные факты

  • HDLC является одним из первых протоколов, в котором была реализована процедура бит-стаффинга, что позволило передавать произвольные двоичные данные без ограничений.
  • Протокол SDLC, предшественник HDLC, использовался в системах IBM для управления терминалами и мэйнфреймами.
  • В сетях Frame Relay HDLC-кадры используются без поля управления, что упрощает обработку и повышает скорость передачи.
  • HDLC поддерживает до 8 уровней приоритета (через поле адреса), что позволяет реализовать качество обслуживания (QoS) в некоторых реализациях.

Источники

  • ISO 13239:2002 — Information technology — Telecommunications and information exchange between systems — High-level data link control (HDLC) procedures.
  • ITU-T Recommendation Q.921 — ISDN user-network interface — Data link layer specification.
  • William Stallings, «Data and Computer Communications», 10th Edition, Pearson, 2014.
  • Andrew S. Tanenbaum, «Computer Networks», 5th Edition, Pearson, 2010.
  • RFC 1661 — The Point-to-Point Protocol (PPP).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →