ZMODEM

редактировать
ZMODEM
Протокол связи
Цельпротокол передачи файлов
Разработчик (и)Чак Форсберг
Представлен1986; 34 года назад (1986)
Порт (а) Нет
Аппаратныемодемы

ZMODEM - это протокол передачи файлов, разработанный Чаком Форсбергом в 1986 году в рамках проекта , финансируемого Telenet с целью улучшения передачи файлов в их сети X.25. Помимо значительного повышения производительности по сравнению со старыми протоколами, ZMODEM предлагал перезапускаемые передачи, автоматический запуск отправителем, расширенный 32-битный CRC и цитирование контрольных символов с поддержкой 8-битный чистый передает, что позволяет использовать его в сетях, которые не будут передавать управляющие символы.

В отличие от большинства протоколов передачи, разработанных для систем досок объявлений (BBS), ZMODEM не был напрямую основан на оригинальном XMODEM и не был совместим с ним. Многие варианты XMODEM были разработаны для устранения одного или нескольких его недостатков, и большинство из них оставалось обратно совместимым и успешно завершало передачу с «классическими» реализациями XMODEM. Этот список включает собственный YMODEM.

Форсберга, ZMODEM отказался от обратной совместимости в пользу создания радикально улучшенного протокола. Он работал так же или лучше, чем любая из высокопроизводительных разновидностей XMODEM, работал над ссылками, которые раньше вообще не работали, например X.25, или имели низкую производительность, как модемы Telebit, и включены полезные функции, которые можно найти в нескольких других протоколах или вообще не найти. ZMODEM стал чрезвычайно популярным в системах досок объявлений (BBS) в начале 1990-х годов, став таким же широко распространенным стандартом, как и XMODEM до него.

Содержание
  • 1 Улучшения
    • 1.1 Потоковая передача
    • 1.2 Перезапуск
    • 1.3 Автозапуск
  • 2 Варианта
  • 3 Ограничения
  • 4 Ссылки
  • 5 Внешние ссылки
Улучшения

Потоковая передача

Как правило, протоколы передачи файлов разбивают файл на серию пакетов, а затем отправляют их получателю по одному. Основная часть пакета, полезная нагрузка, - это определенное количество байтов из отправляемого файла. После полезной нагрузки идет контрольная сумма или проверка циклическим избыточным кодом (CRC), которые могут использоваться для определения того, правильно ли была получена полезная нагрузка. Если пакет принят правильно, получатель отправляет сообщение ACK, а отправитель затем начинает отправку следующего пакета.

Телефонная система вводит небольшую задержку, известную как задержка, которая мешает этому процессу. Даже если получатель немедленно отправляет ACK, задержка в телефонных линиях означает, что всегда будет некоторое время, прежде чем отправитель получит его и отправит следующий пакет. По мере увеличения скорости модема эта задержка представляет все большее и большее количество пакетов, которые могли быть отправлены во время задержки, что снижает эффективность канала ..

XMODEM использовал 128-байтовые полезные данные с трехкратным байтовый заголовок и однобайтовая контрольная сумма, всего 132 байта на пакет. В эпоху модемов со скоростью 300 бит / с для отправки пакета требовалось около четырех секунд, а типичные задержки составляли порядка ⁄ 10 секунды, поэтому накладные расходы на производительность были незначительными. По мере увеличения скорости проблема становится все более проблематичной; на скорости 2400 бит / с для отправки пакета требуется около ⁄ 2, поэтому около ⁄ 5 доступной полосы пропускания тратится впустую на ожидание ACKс. На скорости 9600 бит / с пакету требуется всего 0,13 секунды для отправки, поэтому примерно ⁄ 2 полосы пропускания тратится.

Одним из решений этой проблемы является использование скользящего окна. Эти протоколы устраняют задержку, позволяя отправителю продолжать отправлять несколько пакетов, не дожидаясь ACK. Число пакетов, которое он позволяет продолжить, является «окном», которое обычно составляло от двух до шестнадцати пакетов в большинстве реализаций. Ряд новых версий XMODEM с поддержкой скользящего окна появился в начале 1980-х годов.

Скользящие окна полезны для задержек порядка нескольких длин пакетов, что характерно для XMODEM на обычных телефонных линиях. Однако этого недостаточно для устранения более длительных задержек, обнаруживаемых при международных телефонных звонках или службах X.25, таких как PC Pursuit, где задержки составляют порядка секунды или больше. В других случаях, когда обратный канал был намного медленнее, чем отправляющий, как это было в случае модемов Telebit или US Robotics, даже небольшое количество ACKs может привести к перегрузке обратного канала и приостановке передачи.

ZMODEM решила эти проблемы, полностью исключив необходимость в ACK, позволяя отправителю отправлять данные непрерывно, пока получатель не обнаружил ошибок. Только NAKдолжны были быть отправлены, если и только если возникла проблема. Поскольку ZMODEM часто использовался для ссылок со встроенным исправлением ошибок, таких как X.25, получатель часто не отправлял отправителю ни одного сообщения. В результате система будет отправлять весь файл в непрерывном потоке, а ZMODEM называл себя «потоковым протоколом».

Производительность ZMODEM была настолько улучшена по сравнению с предыдущими распространенными протоколами, что он обычно заменял даже специальные протоколы, такие как YMODEM-g, которые вообще не включали исправление ошибок и вместо этого полагались на поддерживаемые безошибочные ссылки модемами. Хотя YMODEM-g был быстрее, отсутствие других функций, таких как перезапускаемые передачи, делало его менее привлекательным.

Restart

XMODEM и большинство протоколов, основанных на нем, управляли порядком пакетов, добавляя к данным префикс номера пакета от 1 до 255. Оконные версии использовали этот номер пакета, чтобы указать, какие пакеты были получил недвижимость, или укажите то, что не получил. Поскольку пакеты имели длину 128 байт, это означало, что максимальный объем данных, который мог быть передан до того, как номера пакетов были перенесены, составлял 32 кБ.

ZMODEM заменил номер пакета на фактическое местоположение в файле, обозначенное 32-битным числом. Это позволяло отправлять сообщения NAK, которые возобновляли передачу до точки сбоя, независимо от того, как долго мог быть файл. Эта же функция также использовалась для перезапуска передач, если они были неудачными или были намеренно прерваны. В этом случае получатель посмотрит, сколько данных было получено ранее, а затем отправит NAKс этим местоположением, автоматически инициируя отправителя, чтобы начать с этой точки.

Автозапуск

Автозапуск упрощает управление, позволяя отправляющему аппарату начать передачу. Раньше пользователю приходилось сначала запрашивать файл у отправителя, переводя его в состояние «ожидания», затем возвращаться в свою локальную программу и вызывать команду для начала передачи. При автоматической передаче они просто запрашивали файл, а отправитель автоматически запускал передачу в программе пользователя.

Варианты

Появился ряд модифицированных версий ZMODEM. ZedZap был вариантом ZMODEM с блоками 8 кбайт для лучшей производительности на высокоскоростных модемах. LeechZmodem был озорным вариантом ZMODEM (среди аналогичных производных XMODEM и YMODEM), который обманул BBS квоты загрузки. Обратно совместимое расширение ZMODEM с длиной блока 32 кбайт и 64 кбайт было создано ADONTEC в 2002 и 2007 годах для повышения производительности высокоскоростных безошибочных соединений, таких как сети ISDN или TCP / IP.

Наиболее известные реализации ZMODEM были от Omen Technology, Inc. Чака Форсберга. Они включали DSZ (DOS Send ZMODEM), GSZ (Graphical Send ZMODEM) и вездесущий (l) rzsz для вариантов Unix.

В настоящее время разработчики Synchronet создали современную реализацию X / Y / ZMODEM под названием SEXYZ, основанную на пакете zmtx / zmrx, который изначально работает в Windows и Unix. варианты, поддерживает длинные имена файлов и более быструю и надежную передачу данных. Реализация ZMODEM от SEXYZ также была включена в проект SyncTERM. Synchronet, SEXYZ и SyncTERM - это кроссплатформенные проекты с открытым исходным кодом, ориентированные на BBS.

Сам Форсберг собрал ряд улучшений в ЗМОДЕМ-90. Первым из них является MobyTurbo, в котором было удалено контрольное квотирование для дальнейшего повышения производительности примерно на 15%. Даже в сетях, которые «поедают» управляющие символы, ZMODEM-90 может быть настроен так, чтобы цитировать только те символы, которые сеть фактически ест, а не все возможные. Подобное улучшение позволяет ZMODEM-90 работать в 7-битных сетях, тогда как более ранние протоколы (за заметным исключением Kermit ) в той или иной степени требовали 8-битных. Наконец, ZMODEM-90 включает в себя базовую систему сжатия кодирования длин серий для дальнейшего повышения производительности с несжатыми файлами.

Ограничения
  • Некоторые из пакетов ZMODEM (например, ZACK, ZRPOS) включают смещение байта в переданный файл как 32-битное целое число без знака. Этот дизайн ограничивает возможность ZMODEM надежно передавать только файлы размером менее 4 ГБ.
  • Даже если протокол может это разрешать, реализация reference (l) rzsz не может кодировать произвольные неконтролирующие символы (например, ' ~ '), которые часто используются программами подключения TCP / IP, такими как telnet и ssh, в качестве "escape-символов терминала" на стороне клиента. Пользователи должны отключить функцию выхода из терминала, чтобы обеспечить надежную передачу по таким ссылкам, например ssh -e none user @ hostname.
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-23 05:17:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте