Янус (протокол)
Протокол связи | |
Цель | протокол передачи файлов |
---|---|
Разработчик(и) | Рик Хюбнер |
Введение | декабрь 1987 г |
На основе | Я БУДУ |
Аппаратное обеспечение | модемы |
Janus — это протокол передачи файлов для использования в системах досок объявлений (BBS). У него есть относительно редкая особенность: он полностью двунаправленный, что позволяет протоколу одновременно загружать и скачивать файлы. Он был написан Риком Хюбнером в 1987 году; Ранее Хюбнер написал модуль ZMODEM для системы Opus-CBBS . [ 1 ]
Используя Janus, системы Opus BBS могли бы сэкономить время, обмениваясь файлами, такими как пакеты сообщений FidoNet, в обоих направлениях одновременно, что Хюбнер описал как бесплатную отправку более короткого файла. В большинстве случаев определенная система в сети Fido загружала больше сообщений, чем отправляла обратно, поэтому на практике поток ответов был бесплатным.
Янус был полезен в ситуациях, когда восходящие и нисходящие каналы имели одинаковую производительность, что было верно в середине 1980-х годов, когда большинство высокоскоростных модемов работали со скоростью 2400 бит/с в двунаправленном режиме. Однако протокол был представлен почти одновременно с быстрой популяризацией стандарта USRobotics HST со скоростью загрузки 9600 бит/с и скоростью загрузки только 300 бит/с, где Янус не предлагал никаких преимуществ. Когда появились более скоростные двунаправленные модемы, такие как v.32bis , Янус уже практически исчез.
Подробности
[ редактировать ]Janus — это пакетно-ориентированный протокол, такой как XMODEM и подобные системы. В этих протоколах файл передается «пакетами» или «блоками», небольшими частями файла целиком. При получении каждого пакета он проверяется на наличие ошибок, и если ошибка обнаруживается, сообщение об ошибке отправляется обратно отправителю. Затем отправитель отправляет пакет снова, пока он не будет успешным или передача не будет отменена после определенного количества ошибок. [ 2 ]
Янус типичен для протоколов конца 1980-х годов, которые пытаются лучше использовать возрастающую скорость модема . XMODEM передавал только 128 байт данных за пакет, а затем ждал ответа от получателя перед отправкой следующего пакета. Из-за задержки в телефонной сети минимально возможное время для получения этого подтверждения составляло значительный процент времени, необходимого для отправки следующего пакета, что приводило к относительно низкому использованию канала на более быстрых модемах. [ 2 ]
Решение этой проблемы, использованное в Janus, заключалось в том, чтобы разрешить изменение размера пакета от 0 до 2052 байт на пакет. При использовании пакетов большего размера задержка сети составляет гораздо меньшую часть времени, необходимого для отправки пакета. Кроме того, Janus не остановился и не стал ждать, пока получатель подтвердит получение пакета, он просто предположил, что пакет получен правильно, и немедленно начал отправку следующего пакета. Если произошла ошибка, получатель сообщит об этом отправителю, и плохой пакет будет отправлен повторно, как только текущий пакет будет завершен. [ 2 ]
Базовая структура пакета Janus состояла из следующего шаблона:
PKTSTRT, data, PKTYPE, PKTEND, CRC
PKTSTRT и PKTEND представляли собой уникальные последовательности символов, которые позволяли протоколу идентифицировать начало и конец раздела данных. Секция данных содержала от 0 до 2052 байтов данных, в зависимости от PKTYPE. CRC представлял собой 16-битную циклическую избыточную проверку , то же самое применимо к XMODEM-CRC (и его вариациям). Существовало несколько различных PKTYPE, которые представляли пакеты данных, подтверждения, naks и другие детали передачи, а также FNAMEPKT, который отправлял метаданные файла (имя, размер и т. д.), которые другие протоколы обрабатывали в «нулевом пакете». В отличие от большинства других протоколов, Janus использовал 32-битное смещение в файле для идентификации пакетов, в отличие от протоколов, производных от XMODEM, которые использовали внутренний номер пакета, который обычно представлял собой монотонно возрастающее целое число. [ 2 ]
Ошибка в Janus приведет к тому, что получатель отправит пакет BADPKT со смещением файла для отправки обратно, что позволит системе в любое время отправить любой пакет вне очереди. Большое количество ошибок можно было устранить, отправив пакет RPOSPKT, который «перематывал» передачу на заданный 32-битный адрес. В отличие от других протоколов, в Janus не было заранее определенных ограничений на количество сбоев, которые могли бы привести к сбою передачи, передача заканчивалась только тогда, когда одна или другая сторона явно отправляла HALTPKT. [ 2 ]
Размер пакета в Янусе выбирался динамически, исходя из количества ошибок передачи и времени отправки пакета. Это был тот же алгоритм, который Хюбнер разработал для своей версии ZMODEM, используемой в системе Opus BBS. Позднее этот алгоритм был перенесен в стандарт ZMODEM Чаком Форесбергом. [ 2 ]
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ "ZMODEM.ZIP" .
- ^ Jump up to: а б с д и ж Хюбнер 1987 .
Библиография
[ редактировать ]- Хюбнер, Рик (16 декабря 1987 г.). Введение в полнодуплексный протокол передачи файлов Opus Janus (Технический отчет).