Binary Synchronous Communication
Binary Synchronous Communication (BSC, двоичная синхронная связь) — это протокол канального уровня передачи данных, разработанный корпорацией IBM в конце 1960-х годов. BSC (также известный как Bisync) предназначен для синхронной передачи двоичных данных между двумя устройствами, обычно компьютером и периферийным оборудованием (например, принтером, терминалом или другим компьютером). Протокол использует синхронизацию по времени, а не по стартовым и стоповым битам, что позволяет достигать более высокой скорости передачи по сравнению с асинхронными протоколами того времени.
История
Разработка BSC началась в IBM в 1966 году как ответ на потребность в стандартизированном протоколе для связи с терминалами и периферийными устройствами в рамках систем IBM System/360. До этого IBM использовала проприетарные, часто несовместимые протоколы для разных устройств. BSC был впервые представлен в 1968 году и стал одним из первых широко распространённых протоколов синхронной передачи данных.
Протокол был разработан для работы по выделенным и коммутируемым линиям связи, включая телефонные линии, и поддерживал полудуплексный режим (передача данных в одном направлении за раз). BSC активно использовался в 1970-х и 1980-х годах в системах IBM, таких как мейнфреймы System/370, и в сетях с архитектурой SNA (Systems Network Architecture). Однако с появлением более эффективных протоколов, таких как HDLC (High-Level Data Link Control) и SDLC (Synchronous Data Link Control), а также с развитием пакетной коммутации и сетей Ethernet, использование BSC постепенно сократилось. К началу 1990-х годов он был в значительной степени вытеснен, хотя в некоторых устаревших системах продолжал использоваться вплоть до 2000-х годов.
Принцип работы
BSC работает на канальном уровне модели OSI (уровень 2) и обеспечивает синхронизацию, обнаружение ошибок и управление потоком данных. Основные особенности протокола:
- Синхронизация: Передача данных осуществляется синхронно — биты передаются с фиксированной частотой, задаваемой тактовым генератором. Для синхронизации приёмника и передатчика используются специальные синхросимволы (SYN), которые передаются в начале каждого кадра.
- Кадрирование: Данные группируются в блоки (кадры) фиксированной или переменной длины. Каждый кадр начинается с одного или нескольких синхросимволов (SYN), за которыми следует заголовок, поле данных и контрольная последовательность кадра (FCS).
- Обнаружение ошибок: Для обнаружения ошибок используется циклический избыточный код (CRC) — обычно 16-битный полином CRC-16. Если приёмник обнаруживает ошибку, он отправляет запрос на повторную передачу (NAK).
- Управление потоком: BSC использует полудуплексный режим — устройства поочерёдно передают и принимают данные. Для управления потоком применяются символы подтверждения (ACK) и отрицательного подтверждения (NAK).
- Кодирование: Данные передаются в двоичном виде, но протокол поддерживает несколько кодировок, включая EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standard Code for Information Interchange).
Структура кадра BSC
Кадр BSC состоит из следующих полей:
- Синхросимволы (SYN): Один или два байта (16 бит) для синхронизации. Обычно используется значение 0x16 (в EBCDIC) или 0x32 (в ASCII).
- Заголовок: Содержит управляющую информацию, такую как адрес получателя, тип кадра (данные, управление) и номер последовательности.
- Поле данных: Переменной длины (от 0 до нескольких тысяч байт). Максимальный размер поля данных обычно ограничен 256 или 512 байтами, но может быть увеличен до 4096 байт в некоторых реализациях.
- Контрольная последовательность кадра (FCS): 16-битный CRC, вычисляемый по заголовку и полю данных.
- Завершающий символ: Обычно символ ETX (End of Text) или ETB (End of Transmission Block) для обозначения конца кадра.
Классификация и режимы работы
BSC поддерживает несколько режимов работы, которые определяются типом передаваемых данных и используемыми управляющими символами:
- Прозрачный режим (Transparent Mode): Используется для передачи двоичных данных (например, файлов или изображений), которые могут содержать символы, совпадающие с управляющими символами протокола. В этом режиме перед каждым байтом данных, который может быть ошибочно интерпретирован как управляющий, вставляется специальный символ DLE (Data Link Escape).
- Непрозрачный режим (Non-Transparent Mode): Используется для передачи текстовых данных (например, в кодировке EBCDIC или ASCII), где управляющие символы не встречаются в данных. Этот режим проще, но менее надёжен для двоичных данных.
- Режим с контролем по блокам (Block Check Mode): Включает вычисление и проверку CRC для каждого блока данных. Ошибки обнаруживаются и исправляются путём повторной передачи.
- Режим без контроля (No Check Mode): Используется редко, так как не обеспечивает обнаружения ошибок.
Применение
BSC в основном применялся в системах IBM для связи с удалёнными терминалами, принтерами, кассовыми аппаратами и другими периферийными устройствами. Основные области применения:
- Терминальные системы: BSC использовался для подключения терминалов IBM 3270 к мейнфреймам. Терминалы работали в режиме «блок-режим», когда данные передавались блоками после заполнения экрана.
- Передача файлов: Протокол применялся для передачи файлов между компьютерами, особенно в системах с архитектурой SNA. Например, в программе IND$FILE (IBM Network Data Mover) для передачи файлов между мейнфреймами и ПК.
- Связь с периферией: BSC использовался для подключения принтеров (например, IBM 1403), считывателей перфокарт и других устройств, где требовалась синхронная передача данных.
- Банковские системы: В 1970-х и 1980-х годах BSC применялся в банковских терминалах и системах электронных платежей, таких как IBM 3600 Finance Communication System.
Преимущества и недостатки
Преимущества
- Скорость: BSC обеспечивал более высокую скорость передачи (до 9600 бит/с и выше) по сравнению с асинхронными протоколами, такими как RS-232, которые были ограничены скоростями до 1200 бит/с.
- Надёжность: Использование CRC и механизма повторной передачи (ACK/NAK) обеспечивало высокую надёжность передачи данных.
- Стандартизация: BSC был одним из первых стандартизированных протоколов IBM, что упрощало интеграцию различных устройств.
Недостатки
- Полудуплексный режим: BSC работал только в полудуплексном режиме, что снижало эффективность использования канала связи по сравнению с полнодуплексными протоколами.
- Сложность реализации: Протокол требовал точной синхронизации и поддержки специальных управляющих символов, что усложняло реализацию в программном обеспечении.
- Ограничения по размеру кадра: Максимальный размер поля данных был ограничен, что приводило к фрагментации больших файлов и увеличению накладных расходов.
- Отсутствие адресации: BSC не поддерживал адресацию множества устройств на одной линии, что ограничивало его применение в сетях с несколькими узлами.
Влияние и наследие
BSC оказал значительное влияние на развитие протоколов канального уровня. Его принципы — синхронизация, кадрирование, обнаружение ошибок с помощью CRC и управление потоком — были заимствованы и усовершенствованы в более поздних протоколах, таких как SDLC (Synchronous Data Link Control) и HDLC. SDLC, разработанный IBM в 1974 году, стал основой для архитектуры SNA и заменил BSC в большинстве приложений.
Несмотря на то, что BSC считается устаревшим, он остаётся важной частью истории вычислительной техники. В некоторых устаревших системах, особенно в промышленности и банковском секторе, BSC продолжал использоваться до 2010-х годов, пока не был полностью заменён современными протоколами, такими как TCP/IP и Ethernet.
Источники
- IBM Corporation. IBM Binary Synchronous Communication (BSC) Reference Manual. IBM, 1972.
- Tanenbaum, Andrew S. Computer Networks. 5th ed., Prentice Hall, 2010.
- Stallings, William. Data and Computer Communications. 10th ed., Pearson, 2013.
- «Binary Synchronous Communication». IBM Knowledge Center, IBM, 2020.
- «BSC (Binary Synchronous Communication)». Techopedia, 2019.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →