Янус (протокол) - Janus (protocol)

Янус
Протокол связи
Цельпротокол передачи файлов
Разработчики)Рик Хюбнер
ВведеноДекабрь 1987 г.; 33 года назад (1987 -12)
На основеZMODEM
Оборудованиемодемы

Янус это протокол передачи файлов для использования на системы досок объявлений (BBS). У него есть относительно редкая особенность, заключающаяся в том, что он полностью двунаправлен, что позволяет протоколу загружать и загружать файлы одновременно. Он был написан Риком Хюбнером в 1987 году; Хюбнер ранее написал ZMODEM модуль для Opus-CBBS система.[1]

Используя Janus, системы Opus BBS могут сэкономить время, обмениваясь такими файлами, как FidoNet пакеты сообщений в обоих направлениях одновременно, что Хюбнер описал как отправку более короткого файла бесплатно. В большинстве случаев данная система в сети Fido загружала больше сообщений, чем отправляла обратно, поэтому на практике в результате поток ответов был бесплатным.

Janus был полезен в условиях, когда восходящие и нисходящие каналы имели одинаковую производительность, что было справедливо в середине 1980-х годов, когда большинство высокоскоростных модемов работали на скорости 2400 бит / с в двух направлениях. Однако этот протокол был введен почти одновременно с быстрой популяризацией USRobotics Стандарт HST со скоростью загрузки 9600 бит / с и выгрузкой всего 300 бит / с, где Янус практически не давал преимуществ. Когда появились высокоскоростные двунаправленные модемы типа v.32bis Янус уже почти исчез.

подробности

Janus - это пакетно-ориентированный протокол, например XMODEM и подобные системы. В этих протоколах файл передается «пакетами» или «блоками», небольшими частями файла в целом. При получении каждого пакета он проверяется на наличие ошибок, и при обнаружении ошибки отправителю отправляется сообщение об ошибке. Затем отправитель отправляет пакет еще раз, пока он либо не завершится успешно, либо передача не будет отменена после определенного количества ошибок.[2]

Янус типичен для протоколов конца 1980-х, которые пытаются лучше использовать увеличение модем скорости. XMODEM передал только 128 байтов данных на пакет, а затем дождался ответа от получателя перед отправкой следующего пакета. Из-за задержки в телефонной сети минимально возможное время для получения этого подтверждения составляет значительную часть времени, необходимого для отправки следующего пакета, что приводит к относительно низкому использованию канала на более быстрых модемах.[2]

Решение этой проблемы, используемое в Janus, заключалось в том, чтобы позволить размеру пакета варьироваться от 0 до 2052 байта на пакет. При использовании пакетов большего размера задержка сети составляет гораздо меньшую часть времени, необходимого для отправки пакета. Кроме того, Янус не останавливался и не ждал, пока получатель подтвердит получение пакета, он просто предположил, что он был получен правильно, и немедленно начал отправлять следующий пакет. Если произошла ошибка, получатель сообщит об этом отправителю, и плохой пакет будет повторно отправлен, как только текущий пакет будет завершен.[2]

Базовая структура пакета Janus состояла из следующего шаблона:

   PKTSTRT, данные, PKTYPE, PKTEND, CRC

PKTSTRT и PKTEND были уникальными последовательностями символов, которые позволяли протоколу идентифицировать начало и конец раздела данных. Раздел данных содержал от 0 до 2052 байта данных, в зависимости от PKTYPE. CRC был 16-битным циклическая проверка избыточности то же самое применимо к XMODEM-CRC (и его вариациям). Было несколько различных PKTYPE, которые представляли пакеты данных, подтверждения, накш и другие детали передачи, а также FNAMEPKT, который отправлял метаданные файла (имя, размер и т. Д.), Которые другие протоколы обрабатывали в «нулевом пакете». В отличие от большинства других протоколов, Janus использовал 32-битное смещение в файле для идентификации пакетов, в отличие от протоколов, производных от XMODEM, которые использовали внутренний номер пакета, который обычно был монотонно увеличивающимся целым числом.[2]

Ошибка в Janus может привести к тому, что получатель отправит пакет BADPKT со смещением файла, который будет отправлен обратно, что позволит системе в любое время отправить любой пакет вне очереди. Большое количество ошибок можно исправить, отправив пакет RPOSPKT, который «перематывает» передачу на заданный 32-битный адрес. В отличие от других протоколов, у Janus не было предопределенных ограничений на количество отказов, которые могли бы привести к сбою передачи, передача завершалась только тогда, когда одна или другая сторона явно отправляла HALTPKT.[2]

Размер пакета в Janus выбирался динамически в зависимости от количества ошибок передачи и времени отправки пакета. Это был тот же алгоритм, который Хюбнер разработал для своей версии ZMODEM, используемой в системе Opus BBS. Этот алгоритм позже был перенесен в стандарт ZMODEM Чаком Форесбергом.[2]

использованная литература

Цитаты

  1. ^ "ZMODEM.ZIP".
  2. ^ а б c d е ж Хюбнер 1987.

Список используемой литературы

  • Хюбнер, Рик (16 декабря 1987 г.). Введение в полнодуплексный протокол передачи файлов Opus Janus (Технический отчет).CS1 maint: ref = harv (ссылка на сайт)