TN3270
TN3270 — это протокол эмуляции терминала, позволяющий клиентскому программному обеспечению (эмулятору терминала) устанавливать соединение с мейнфреймом IBM (сервером) по протоколу TCP/IP, используя протокол Telnet для передачи данных в формате, совместимом с терминалом IBM 3270. Является расширением стандартного протокола Telnet, адаптированным для работы с системами, использующими архитектуру «главный компьютер — терминал» (mainframe — terminal), где в качестве терминала выступает устройство или программа, эмулирующая работу дисплейной станции IBM 3270.
История
Протокол TN3270 был разработан в середине 1980-х годов, когда началось активное внедрение сетей TCP/IP в корпоративных средах, где доминировали мейнфреймы IBM. До этого момента доступ к мейнфреймам осуществлялся исключительно через специализированные терминалы IBM 3270, подключённые по коаксиальному кабелю к контроллеру (IBM 3274 или 3174), который, в свою очередь, соединялся с мейнфреймом по каналу (channel). С ростом популярности локальных вычислительных сетей (LAN) и протокола TCP/IP возникла необходимость в удалённом доступе к мейнфреймам без использования дорогостоящего и сложного в развёртывании коаксиального оборудования.
Первоначально для эмуляции терминала 3270 через TCP/IP использовался стандартный протокол Telnet, но он не поддерживал специфические функции терминала 3270, такие как работа с полями, атрибутами, цветами и блочный режим передачи данных. В результате были разработаны расширения Telnet, которые впоследствии были стандартизированы.
В 1993 году была опубликована спецификация RFC 1576 «TN3270 Current Practices», которая описывала существующие реализации, но не являлась официальным стандартом. В 1995 году вышла RFC 1647 «TN3270 Enhancements», которая определила расширенный протокол, известный как TN3270E (Enhanced). TN3270E добавил поддержку таких функций, как:
- Передача данных в блочном режиме (block mode) с использованием команд SNA (Systems Network Architecture) и LU (Logical Unit) типов 2 и 3.
- Поддержка нескольких сессий (Sessions) через одно TCP-соединение.
- Передача атрибутов экрана (цвет, интенсивность, подчёркивание, мигание).
- Поддержка принтеров, эмулирующих работу с мейнфреймом.
В 2006 году была опубликована RFC 4777 «IBM’s 3270 Emulation: TN3270 Enhancements», которая уточнила и дополнила предыдущие спецификации. На сегодняшний день TN3270 (включая TN3270E) является стандартным протоколом для эмуляции терминала 3270 в сетях TCP/IP.
Архитектура и принцип работы
Протокол TN3270 работает по модели «клиент-сервер». Клиент — это программа-эмулятор терминала, запущенная на персональном компьютере, рабочей станции или мобильном устройстве. Сервер — это мейнфрейм IBM, на котором работает операционная система (например, z/OS, z/VSE, z/TPF) и сетевое программное обеспечение, поддерживающее TN3270 (например, IBM Communications Server, TCP/IP for MVS, или сторонние решения).
Установка соединения
- Инициализация: Клиент (эмулятор) устанавливает TCP-соединение с сервером по порту 23 (стандартный порт Telnet) или по другому порту, настроенному администратором.
- Переговоры (Negotiation): После установления TCP-соединения клиент и сервер обмениваются Telnet-командами, чтобы согласовать параметры соединения. В рамках TN3270E используются специальные Telnet-опции (Option Negotiation), такие как:
TERMINAL-TYPE— для указания типа эмулируемого терминала (например, IBM-3278-2, IBM-3279-2).TN3270E— для включения расширенного режима.BINARY— для передачи данных в двоичном формате.SEND-LOCATION— для передачи информации о местоположении клиента.
- Открытие сессии: После успешных переговоров сервер открывает логическую сессию (LU) для клиента. Клиент получает доступ к приложениям мейнфрейма, таким как CICS, IMS, TSO, или ISPF.
Формат данных
Данные в TN3270 передаются в виде блоков, называемых «буферами данных» (data buffers). В отличие от протокола Telnet, который передаёт данные посимвольно, TN3270 передаёт целые экраны (или их части) в виде структурированных блоков, содержащих:
- Команды управления (Orders): Указывают, как отображать данные на экране (например,
Start Field,Set Buffer Address,Erase/Write). - Атрибуты (Attributes): Определяют свойства полей (цвет, защита от ввода, интенсивность, подчёркивание, мигание).
- Текстовые данные: Символы, отображаемые на экране.
Блочный режим
Ключевой особенностью TN3270 является блочный режим передачи данных. В отличие от посимвольного режима Telnet, где каждое нажатие клавиши отправляется на сервер, в TN3270 пользователь вводит данные в поля на экране, а затем нажимает клавишу Enter или функциональную клавишу (например, F1, F2, PF1-PF24). Только после этого весь блок данных (все поля, в которые был введён текст) отправляется на сервер. Это снижает нагрузку на сеть и сервер, а также позволяет реализовать сложную логику проверки вводимых данных на стороне клиента.
Классификация и виды
Протокол TN3270 существует в двух основных вариантах:
TN3270 (базовый)
Базовый протокол, определённый в RFC 1576. Поддерживает основные функции эмуляции терминала 3270, но не включает расширенные возможности, такие как поддержка нескольких сессий, передача атрибутов и работа с принтерами. В настоящее время практически не используется, так как уступает по функциональности TN3270E.
TN3270E (Enhanced)
Расширенный протокол, определённый в RFC 1647 и RFC 4777. Является современным стандартом. Включает все функции базового TN3270, а также:
- Поддержка нескольких сессий: Клиент может открыть несколько логических сессий (LU) через одно TCP-соединение.
- Передача атрибутов: Поддерживается передача цвета, интенсивности, подчёркивания, мигания и других атрибутов экрана.
- Поддержка принтеров: Позволяет эмулировать работу принтера, подключённого к мейнфрейму.
- Управление буфером: Более эффективное управление буфером данных.
- Поддержка SNA: Позволяет передавать данные в формате SNA (Systems Network Architecture), что необходимо для работы с некоторыми приложениями мейнфрейма.
Применение
TN3270 широко используется в корпоративных средах, где эксплуатируются мейнфреймы IBM. Основные области применения:
- Доступ к бизнес-приложениям: Эмуляторы TN3270 используются для доступа к приложениям, работающим на мейнфреймах, таким как:
- CICS (Customer Information Control System) — система обработки транзакций в реальном времени.
- IMS (Information Management System) — система управления базами данных и транзакциями.
- TSO (Time Sharing Option) — интерактивная среда для разработки и администрирования.
- ISPF (Interactive System Productivity Facility) — интерфейс для управления файлами и утилитами.
- Администрирование мейнфреймов: Системные администраторы используют TN3270 для управления операционной системой, настройки параметров, мониторинга производительности и выполнения команд.
- Разработка и тестирование: Разработчики используют TN3270 для отладки и тестирования приложений, работающих на мейнфреймах.
- Интеграция с современными системами: TN3270 может использоваться для интеграции мейнфреймов с современными веб-приложениями, мобильными приложениями и системами автоматизации бизнес-процессов (BPM). Для этого часто используются шлюзы (gateways), которые преобразуют TN3270-трафик в HTTP/HTTPS или другие протоколы.
Эмуляторы TN3270
Существует множество программных эмуляторов терминала, поддерживающих TN3270. Наиболее известные:
- IBM Personal Communications (PCOMM) — коммерческий эмулятор от IBM.
- Micro Focus Rumba — коммерческий эмулятор.
- Attachmate Extra! — коммерческий эмулятор (ныне часть Micro Focus).
- Reflection — коммерческий эмулятор от Attachmate (ныне Micro Focus).
- TN3270 Plus — коммерческий эмулятор.
- x3270 — свободный эмулятор с открытым исходным кодом для Unix-подобных систем.
- c3270 — консольная версия x3270.
- wc3270 — версия x3270 для Windows.
- QWS3270 — свободный эмулятор для Windows.
- TN3270 для Android/iOS — мобильные эмуляторы.
Критика и ограничения
Несмотря на широкое распространение, TN3270 имеет ряд недостатков:
- Сложность настройки: Для подключения к мейнфрейму требуется знание таких параметров, как IP-адрес, порт, тип терминала, имя LU, имя APPC (Advanced Program-to-Program Communication) и другие. Это может быть сложно для неподготовленных пользователей.
- Отсутствие шифрования: Базовый протокол TN3270 не предусматривает шифрования передаваемых данных. Это делает его уязвимым для перехвата трафика. Для обеспечения безопасности рекомендуется использовать TN3270 поверх TLS (TN3270S) или использовать VPN. В RFC 4777 описана поддержка шифрования через TLS.
- Зависимость от мейнфрейма: TN3270 является узкоспециализированным протоколом, предназначенным только для работы с мейнфреймами IBM. Он несовместим с другими типами серверов.
- Устаревшая архитектура: Блочный режим и работа с полями, характерные для терминала 3270, могут быть неудобны для пользователей, привыкших к современным графическим интерфейсам.
Источники
- RFC 1576: TN3270 Current Practices
- RFC 1647: TN3270 Enhancements
- RFC 4777: IBM's 3270 Emulation: TN3270 Enhancements
- IBM Redbooks: TCP/IP for z/OS: Implementation and Configuration
- IBM Redbooks: TN3270 and TN3270E: A Guide to Implementation and Use
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →