Кратко
- Kermit появился в Columbia в 1981 году, чтобы студенты и сотрудники могли обмениваться файлами между центральными компьютерами и новыми микрокомпьютерами.
- Его небольшой протокол подтверждаемых пакетов работал поверх последовательных линий, а правила символов, записей и согласуемых возможностей учитывали различия, которые сама связь не устраняла.
В первой демонстрации Kermit две программы Kermit-20 обменялись файлом через нуль-модемный кабель между последовательными портами одной DECSYSTEM-20. Позже проект Kermit назвал это проверкой концепции: скопировать файл на одном компьютере было проще. Настоящий межмашинный тест состоялся через несколько недель. На одном конце стоял DEC-20 под TOPS-20, на другом — Intertec Superbrain под CP/M-80. У машин различались процессоры, операционные системы и представление файлов. Проблема заключалась не только в отправке байтов.
В Columbia менялся круг пользователей вычислительных систем. Микрокомпьютеры появлялись в лабораториях, подразделениях, домах и общежитиях, тогда как нужные файлы и службы оставались на центральных системах с разделением времени. В статье, подготовленной в 1983 году, Frank da Cruz и Bill Catchings объясняли, что студенческие учётные записи выдавались на курс или семестр и не обеспечивали длительное хранение на диске. Маленький компьютер с дискетой позволял сохранить работу локально — при условии надёжной передачи между микрокомпьютером и центральной машиной.
Это свидетельство о потребности одного учреждения, а не измерение ситуации во всех университетах.
Обычная асинхронная последовательная линия мало защищала от помех, потери символов, переполнения буферов или кратковременного пропадания несущей. Kermit разделял передачу на пакеты и превращал каждый из них в часть диалога. Отправитель начинал с пакета Send-Init и объявлял параметры; получатель отвечал своими. Заголовок называл файл, пакеты данных переносили его части, а отдельные пакеты отмечали конец файла и завершение передачи. Подтверждение позволяло идти дальше; отрицательный ответ или тайм-аут приводили к повторной отправке.
Базовый механизм намеренно оставался небольшим. Номер пакета увеличивался по модулю 64, чтобы обе программы знали, какой блок подтверждён, и могли заметить пропуск или повтор в текущем обмене. Обязательная однобайтовая арифметическая проверка помогала обнаружить изменённый пакет. Это не современная криптографическая контрольная сумма и не удостоверение личности человека на другом конце. Механизм позволял обнаружить часть ошибок передачи и попробовать снова. Надёжность обеспечивало взаимодействие отправителя и получателя, а не сама линия.
Более сложная проблема совместимости находилась выше канала. Две машины могли передавать ASCII и всё равно по-разному понимать файл. Среды DEC-20 и CP/M различались, а мейнфреймы IBM добавляли другие ограничения. Файл мог быть набором записей, а не простым потоком байтов; отличались текстовые кодировки. Терминал центрального компьютера мог повторять ввод, переносить строки, менять регистр или перехватывать управляющие символы. Если считать соединение прозрачным каналом, содержимое могло измениться до записи на диск получателя.
Kermit ввёл общее представление для передачи и явные преобразования на обоих концах. Базовый формат пакетов использовал печатные символы; управляющие символы в данных можно было кодировать печатными последовательностями. Затем каждая программа переводила обмен в локальный формат файлов. Руководство узко определяло общее предположение: ASCII поверх обычной асинхронной последовательной линии. Оно не делало компьютеры одинаковыми, а давало им ограниченный язык обмена несмотря на различия хранения, кодировки и поведения терминала.
Нужно было соединять и программы с разными возможностями. В руководстве ноября 1983 года сказано, что разработка была распределённой и неорганизованной, поэтому навязать разработчикам одну фиксированную версию было невозможно. Документ определял базовые функции и дополнительные возможности; начальный обмен позволял объявить параметры обеих сторон. Заявленная цель состояла в том, чтобы простая реализация могла работать с более развитой. Это намерение разработчиков, а не доказательство совместимости любой пары программ Kermit.
Малое ядро не заморозило протокол. Позднее появились длинные пакеты, более сильные проверки и полнодуплексные скользящие окна. Руководство относит разработку оконного режима к группе The Source Telecomputing в 1985–1986 годах. Он решал другую задачу производительности: ожидание подтверждения после каждого пакета могло терять время на канале с заметной задержкой. Опцию нужно было согласовать; неподдерживающий её получатель мог остаться на базовом режиме. Эту позднюю функцию нельзя переносить на первую передачу 1981 года.
Хронология проекта указывает, что в 1984 году появились FTP-сайт Kermit и список рассылки Info-Kermit в ARPANET. Сеть упростила распространение программы и обсуждение, но исходная потребность была конкретной: перенести файл с одного типа компьютера на другой. Kermit не был интернет-стандартом и не заменял сетевые протоколы. Он решал другую задачу — обеспечивал передачу файлов между системами, соединёнными последовательной линией, а позднее и сетевой службой.
Эта история показывает, что связь и совместимость не тождественны. Несущая соединяет терминалы, но не согласует файлы; проверка пакета обнаруживает часть повреждений, но не удостоверяет отправителя; общая спецификация позволяет обмен, но не гарантирует, что каждая реализация принимает все опции. Kermit сделал эти стыки явными и пригодными для реализации.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
