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

Synchronous Data Link Control

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

История

Протокол SDLC был разработан корпорацией IBM в 1975 году как часть архитектуры SNA, предназначенной для объединения мэйнфреймов и удалённых терминалов в единую вычислительную сеть. До появления SDLC в сетях IBM использовались байт-ориентированные протоколы (например, BSCBinary Synchronous Communication), которые были менее эффективны и не поддерживали сложные топологии. SDLC решил эти проблемы, предложив бит-ориентированный механизм синхронизации и гибкую структуру кадра.

В 1979 году Международная организация по стандартизации (ISO) на основе SDLC разработала стандарт HDLC (High-Level Data Link Control), который стал международным протоколом канального уровня. Позднее на базе HDLC были созданы протоколы LAPB (для X.25) и PPP (для соединений точка-точка). Несмотря на появление более современных протоколов, SDLC остаётся в эксплуатации в устаревших системах IBM, особенно в банковской сфере и на промышленных предприятиях, где используется оборудование, работающее под управлением операционных систем z/OS и OS/400.

Классификация и место в модели OSI

SDLC относится к канальному уровню (уровень 2) модели OSI. Он обеспечивает надёжную передачу данных между двумя узлами, управление потоком и обнаружение ошибок. В отличие от более поздних протоколов, SDLC жёстко привязан к архитектуре SNA и не поддерживает работу поверх других сетевых протоколов (например, IP). В современном контексте SDLC часто рассматривается как устаревший протокол, используемый только в специализированных системах.

Архитектура и топология

SDLC поддерживает несколько типов топологии сети, определяемых архитектурой SNA:

  • Точка-точка (point-to-point) — прямое соединение между двумя устройствами.
  • Многоточечная (multipoint) — одно первичное устройство (primary) управляет несколькими вторичными (secondary) на одной линии.
  • Кольцевая (loop) — вторичные устройства соединены последовательно, образуя кольцо, где каждое устройство ретранслирует данные.
  • Hub-go-ahead — вариант многоточечной топологии, где первичное устройство опрашивает вторичные в определённом порядке.

В любой топологии одно устройство назначается первичным (primary), а остальные — вторичными (secondary). Первичное устройство инициирует передачу, управляет опросом и контролирует поток данных. Вторичные устройства могут передавать данные только после получения разрешения от первичного. Такая модель называется «ведущий-ведомый» (master-slave).

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

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

ПолеРазмер (бит)Описание
Флаг8Последовательность 01111110 (0x7E), обозначающая начало и конец кадра.
Адрес8 или 16Адрес вторичного устройства (для команд — адрес получателя, для ответов — адрес отправителя).
Управляющее поле8 или 16Определяет тип кадра (информационный, управляющий, ненумерованный) и содержит номера последовательностей.
ДанныепеременноеПоле данных (информационное поле), может отсутствовать в управляющих кадрах.
FCS16Контрольная сумма (Frame Check Sequence) для обнаружения ошибок, вычисляется по алгоритму CRC-16.
Флаг8Завершающий флаг 01111110.

Для обеспечения прозрачности данных (чтобы последовательность 01111110 не встречалась внутри кадра) используется процедура битстаффинга (bit stuffing): после каждых пяти единиц подряд вставляется ноль. При приёме лишние нули удаляются.

Типы кадров

Управляющее поле (Control field) определяет три типа кадров:

  • Информационные (I-кадры) — передают данные пользователя и содержат номера последовательностей N(S) и N(R) для подтверждения приёма. Используются для надёжной передачи с подтверждением.
  • Управляющие (S-кадры) — обеспечивают управление потоком и подтверждение приёма без передачи данных. Включают команды RR (Receiver Ready), RNR (Receiver Not Ready) и REJ (Reject).
  • Ненумерованные (U-кадры) — используются для установления и разрыва соединения, а также для передачи команд управления (например, SNRM — Set Normal Response Mode, DISC — Disconnect, UA — Unnumbered Acknowledgment).

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

SDLC поддерживает три режима работы:

  • Normal Response Mode (NRM) — вторичное устройство может передавать данные только после получения разрешения (poll) от первичного. Используется в многоточечных топологиях.
  • Asynchronous Response Mode (ARM) — вторичное устройство может инициировать передачу без опроса, но только в рамках установленного соединения. Режим редко используется на практике.
  • Asynchronous Balanced Mode (ABM) — оба устройства равноправны и могут инициировать передачу. Этот режим лёг в основу протокола HDLC и используется в современных соединениях точка-точка.

В архитектуре SNA наиболее распространён режим NRM, так как он соответствует модели «ведущий-ведомый».

Применение

SDLC применялся и применяется в следующих областях:

  • Системы IBM SNA — основной протокол для связи мэйнфреймов IBM (System/370, System/390, zSeries) с терминалами (IBM 3270, 5250) и контроллерами.
  • Банковские системы — многие банкоматы и терминалы, работающие под управлением IBM OS/2 или AIX, используют SDLC для связи с центральным хостом.
  • Промышленная автоматизация — в устаревших системах управления производством (например, на заводах с оборудованием IBM Series/1).
  • Сети с коммутацией пакетов — SDLC использовался в ранних реализациях X.25, но позже был вытеснен LAPB.

В современных сетях SDLC практически не встречается, за исключением legacy-систем, где его замена на более современные протоколы (TCP/IP, Ethernet) требует значительных затрат.

Сравнение с HDLC

SDLC является предшественником HDLC, и многие механизмы были заимствованы. Основные отличия:

  • Топология: SDLC поддерживает многоточечные и кольцевые топологии, HDLC — только точка-точка.
  • Режимы: SDLC ориентирован на режим NRM, HDLC — на ABM.
  • Адресация: в SDLC адрес всегда указывает на вторичное устройство, в HDLC адрес может быть как отправителя, так и получателя.
  • Команды: SDLC включает команды, специфичные для SNA (например, SNRM, TEST), которые отсутствуют в HDLC.

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

Критика

SDLC критикуется за жёсткую привязку к архитектуре SNA и отсутствие поддержки современных сетевых технологий. Протокол не поддерживает адресацию на основе IP, не работает поверх Ethernet и требует специализированного оборудования (например, синхронных модемов и контроллеров IBM 37xx). Кроме того, режим NRM создаёт задержки из-за необходимости опроса вторичных устройств, что снижает эффективность в сетях с большим количеством узлов. В современных условиях SDLC считается устаревшим и поддерживается только в целях обратной совместимости.

Источники

  • IBM Corporation. Synchronous Data Link Control: General Information. IBM Systems Reference Library, 1975.
  • ISO 3309:1979. Data communication — High-level data link control procedures — Frame structure.
  • William Stallings. Data and Computer Communications. 10th edition, Pearson, 2013.
  • Andrew S. Tanenbaum. Computer Networks. 5th edition, Pearson, 2010.
  • Fred Halsall. Data Communications, Computer Networks and Open Systems. 4th edition, Addison-Wesley, 1996.

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

На главную BFOmetr →