Протокол Kermit – это протокол передачи данных, разработанный в конце 1970-х годов для обмена файлами между компьютерами. Он предназначен для надежной передачи файлов по ненадежным каналам связи, таким как модемные соединения.
Протокол Kermit использует последовательный порт RS-232 и модем для передачи данных и включает в себя механизмы контроля целостности данных, такие как проверка циклического избыточного кода (CRC) и повторная передача данных в случае ошибок.
Одной из особенностей протокола Kermit является его способность передавать файлы в двух направлениях (по запросу как отправителя, так и получателя), а также поддержка сжатия файлов для уменьшения объема передаваемых данных.
Протокол Kermit широко использовался в 1980-х и 1990-х годах для обмена файлами между компьютерами, особенно в мире Unix. В настоящее время его использование стало снижаться в связи с развитием более современных протоколов передачи данных, таких как FTP и HTTP.
Протокол Kermit поддерживает передачу бинарных данных и текста, используя полу- и полнодуплексное 8- и 7-битное последовательное соединение в системо- и платформо-независимой форме, и реализован на сотнях разных аппаратных и операционных систем. При полнодуплексном соединении используется протокол скользящего окна, обеспечивающий отличную производительность и коррекцию ошибок. На 7-битных соединениях locking shifts обеспечивает эффективную передачу 8-битных данных. При правильной (качественной) реализации, как в Columbia University Kermit Software collection, группа разработчиков Kermit Колумбийского университета заявляет о производительности, равной или превосходящей такие протоколы как ZMODEM, YMODEM, и XMODEM, особенно при использовании некачественных линий передачи данных. При подключении через RS-232 Statistical Multiplexers, где некоторые управляющие (служебные) символы не передаются, Kermit возможно сконфигурировать для правильной работы в отличие от таких протоколов как XMODEM, которые требуют передачи всех 256 байт.
Kermit может использоваться в качестве загрузчика ОС. К примеру компьютеры с операционной системой CP/M использовали очень много самых разных форматов гибких дисков, что означало что одна машина не могла читать диски записанные на другой, и Kermit использовался как часть процесса по перемещению приложений и данных между машинами с разными версиями ОС. PIP c очень низкой скоростью передачи данных (из-за отсутствия коррекции ошибок) мог использоваться для передачи маленькой базовой версии Kermit. После успешного запуска базовой версии она загружала полнофункциональную версию, которая могла использоваться для передачи любых данных и приложений CP/M.
В течение 1980-х годов протокол Kermit эволюционировал в стандарт де-факто для передачи файлом между разнородными компьютерными системами. Программное обеспечение Kermit использовалось для различных задач, начиная с простых студенческих задач до решения проблем совместимости оборудования на борту МКС. Он был портирован на огромный перечень мейнфреймов, мини-компьютеров и микрокомпьютерных систем. Большинство версий имеют пользовательский интерфейс основанный на оригинальном Kermit для TOPS-20. Версия для MS-DOS была разработана в 1983. Поздние версии Kermit также поддерживают сетевые соединения, в частности TCP/IP.
В настоящее время поддерживаются такие реализации как C-Kermit (для UNIX и OpenVMS) и Kermit 95 (для Windows версий 95 и более поздних, а также OS/2).
Изначально Kermit был разработан и бесплатно распространялся Колумбийским университетом.
Преимущества протокола Kermit:
1. Надежность передачи данных – Kermit включает в себя механизмы проверки целостности и повторной передачи данных, что обеспечивает надежную передачу информации.
2. Поддержка различных типов файлов – Kermit способен передавать различные типы файлов, включая текстовые, изображения, архивы и другие.
3. Кроссплатформенность – Kermit может использоваться на различных операционных системах, таких как Windows, Unix, Linux и другие.
Недостатки протокола Kermit:
1. Низкая скорость передачи данных – Kermit обеспечивает более низкую скорость передачи данных по сравнению с некоторыми современными протоколами.
2. Ограниченная поддержка – Kermit не всегда имеет широкую поддержку и может не работать с некоторыми устройствами и программным обеспечением.
3. Сложность настройки – Настройка Kermit может потребовать определенных знаний и усилий, особенно для новичков.
Особенности протокола Kermit:
1. Поддержка управления ошибками – Kermit включает механизмы обнаружения и исправления ошибок передачи данных, что обеспечивает целостность информации.
2. Возможность установки параметров передачи данных – Kermit позволяет настраивать параметры передачи данных, такие как скорость передачи, формат и другие.
3. Поддержка сжатия данных – Kermit имеет возможность сжатия данных перед их передачей, что помогает уменьшить объем передаваемой информации и ускорить процесс передачи данных.
В целом, протокол Kermit является надежным и универсальным инструментом для передачи данных, но может иметь некоторые ограничения и требовать определенных навыков для работы с ним.