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 использовались байт-ориентированные протоколы (например, BSC — Binary 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 | Определяет тип кадра (информационный, управляющий, ненумерованный) и содержит номера последовательностей. |
| Данные | переменное | Поле данных (информационное поле), может отсутствовать в управляющих кадрах. |
| FCS | 16 | Контрольная сумма (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 →