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

Kermit

Kermit — это семейство программных протоколов и утилит для передачи файлов и управления терминалом, разработанное в 1981 году в Колумбийском университете (США). Название происходит от имени лягушонка Кермита из телепрограммы «Маппет-шоу». Kermit представляет собой протокол, ориентированный на надёжную передачу данных через последовательные каналы связи (RS-232, модемы) и компьютерные сети, включая TCP/IP. Основное назначение — обеспечение файлового обмена между разнородными системами (мейнфреймы, миникомпьютеры, персональные компьютеры) в условиях, когда другие протоколы (например, XMODEM, YMODEM) были менее эффективны или не поддерживались.

История

Протокол Kermit был создан Фрэнком да Крусом и Биллом Катпитом в Колумбийском университете. Первоначальная версия (1981 год) предназначалась для передачи файлов между мейнфреймами IBM и персональными компьютерами под управлением CP/M. В 1983 году вышла версия для MS-DOS, а затем — для Unix, VMS, Mac OS и других платформ. К 1985 году Kermit стал стандартом де-факто для академических и исследовательских учреждений, особенно в среде UNIX и VAX/VMS.

В 1990-е годы, с распространением TCP/IP и протоколов FTP, HTTP, а также появлением более скоростных модемов (V.34, V.90), использование Kermit сократилось. Однако он оставался востребованным в специализированных областях: встроенные системы, промышленные контроллеры, спутниковая связь и военные приложения, где требовалась высокая надёжность при низкой скорости и плохом качестве канала.

Архитектура и принципы работы

Протокол передачи

Kermit использует асинхронную последовательную передачу с переменной длиной пакета (от 20 до 1024 байт). Каждый пакет содержит стартовый байт, номер пакета, поле данных, контрольную сумму (CRC-16 или CRC-32) и завершающий байт. В отличие от XMODEM, Kermit допускает передачу произвольных двоичных данных (без потери управляющих символов) за счёт кодирования — каждый байт, который может быть воспринят как управляющий, удваивается или заменяется последовательностью.

Управление потоком и коррекция ошибок

Протокол поддерживает скользящее окно (до 32 пакетов), что позволяет повысить эффективность на каналах с задержкой (например, спутниковые линии). При обнаружении ошибки (несовпадение контрольной суммы) отправитель повторяет пакет. Kermit также поддерживает сжатие данных (алгоритм сжатия на основе LZW) и шифрование (DES, 3DES) в расширенных версиях.

Терминальный режим

Помимо файлового обмена, Kermit включает эмуляцию терминала (VT100, VT220, ANSI) и возможность выполнения команд на удалённой системе (remote execution). Это позволяло использовать Kermit как универсальный инструмент для администрирования Unix-систем через последовательный порт.

Реализации

C-Kermit

Наиболее известная реализация — C-Kermit, написанная на языке C. Она поддерживает большинство операционных систем (Unix, Linux, macOS, Windows, VMS, MVS). C-Kermit включает встроенный скриптовый язык (Kermit Script), позволяющий автоматизировать передачу файлов, выполнение команд и настройку соединений. Версия 9.0 (2004 год) добавила поддержку IPv6, SSL/TLS и SSH.

Kermit 95

Коммерческая версия для Windows и OS/2, выпущенная в 1995 году. Включала графический интерфейс, поддержку модемов (V.90, V.92) и улучшенную эмуляцию терминала. Распространялась по лицензии shareware.

Embedded Kermit

Урезанная версия для встраиваемых систем (микроконтроллеры, ПЛИС). Используется в промышленных контроллерах, медицинском оборудовании и телекоммуникационных устройствах.

Применение

Научные и академические сети

В 1980–1990-е годы Kermit был основным средством передачи данных между университетами и исследовательскими центрами, особенно в сетях BITNET и DECnet. Он позволял обмениваться файлами между системами с разными кодировками (ASCII, EBCDIC) и операционными системами.

Военные и правительственные системы

Kermit применялся в системах управления и связи Министерства обороны США, НАТО и других государств. Его надёжность и устойчивость к помехам делали его пригодным для спутниковых и радиорелейных каналов.

Встраиваемые системы и промышленность

Вплоть до 2010-х годов Kermit использовался для загрузки прошивок в микроконтроллеры, программируемые логические контроллеры (ПЛК) и системы управления технологическими процессами (SCADA). В России и странах СНГ Kermit применялся на предприятиях оборонной и атомной промышленности для обновления ПО на оборудовании с последовательными интерфейсами.

Ретро-вычисления и эмуляция

Среди энтузиастов ретро-вычислений Kermit остаётся популярным для передачи файлов между старыми компьютерами (Apple II, Commodore 64, IBM PC/XT) и современными системами через эмуляторы последовательных портов (например, с помощью USB-адаптеров FTDI).

Критика и ограничения

Основные недостатки Kermit:

  • Низкая скорость по сравнению с более современными протоколами (FTP, SCP, rsync). Максимальная скорость передачи по последовательному порту ограничена 115 200 бит/с (реально — 38 400–57 600 бит/с).
  • Сложность настройки для неопытных пользователей: требуется знание параметров порта (скорость, чётность, стоп-биты) и типов кодирования.
  • Отсутствие шифрования в базовой версии (добавлено только в C-Kermit 9.0).
  • Зависимость от последовательного порта — для использования в современных сетях требуется эмуляция COM-порта через USB или TCP/IP.

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

  • Название «Kermit» было выбрано как шутка: авторы хотели, чтобы протокол ассоциировался с лягушонком, который «прыгает» между системами.
  • В 1989 году Kermit был включён в состав операционной системы IBM AIX.
  • Существует версия Kermit для мейнфреймов IBM под управлением MVS (z/OS), которая до сих пор используется в некоторых банковских системах.
  • В 2005 году Колумбийский университет прекратил активную поддержку Kermit, передав разработку сообществу open-source.

Источники

  • Frank da Cruz, Bill Catchings. «Kermit: A File Transfer Protocol for Diverse Environments». Columbia University, 1981.
  • «C-Kermit User Manual». Columbia University, 2004.
  • «Kermit 95 Reference Guide». Columbia University, 1995.
  • «Embedded Kermit: A Lightweight Protocol for Microcontrollers». Embedded Systems Programming, 2002.
  • «Kermit Protocol Specification». IETF RFC 2840, 2000.

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

На главную BFOmetr →