МЕГАлинк
Протокол связи | |
Цель | протокол передачи файлов |
---|---|
Разработчик(и) | Пол Майнерс |
Введение | 1987 год |
На основе | ХМОДЕМ |
Аппаратное обеспечение | модемы |
MEGAlink — это протокол передачи файлов для модемами , оснащенных микрокомпьютеров , написанный Полом Майнерсом в 1987 году. Как и многие протоколы того времени, MEGAlink представляет собой расширенную версию оригинального XMODEM . Хотя это была относительно простая и высокопроизводительная система, она оставалась относительно малоизвестной, поскольку ее затмила ZMODEM , выпущенная годом ранее и получившая быстрое распространение.
История
[ редактировать ]XMODEM был представлен в 1977 году как то, что его автор назвал «быстрым хаком». У него был ряд довольно очевидных проблем, которые стали еще более раздражать по мере увеличения скорости модемов в начале 1980-х годов. За этот период появился ряд новых протоколов передачи файлов для пользователей BBS, призванных решить проблемы исходного XMODEM. Многие из них имели собственные незначительные проблемы или были ограничены определенными приложениями, что ограничивало их использование. XMODEM оставался чрезвычайно популярным на протяжении всего этого периода, поскольку это был один из немногих протоколов, который поддерживался повсеместно.
В 1986 году Чак Форсберг выпустил ZMODEM , радикально улучшенный протокол передачи файлов, который предлагал множество новых функций, высокую производительность и работал на сервисах, которые нарушали передачу XMODEM. [ а ] Единственным недостатком ZMODEM было то, что он был очень сложным, что затрудняло или делало невозможным его внедрение на некоторых машинах, особенно на большой базе установленных систем, таких как Commodore 64 .
MEGAlink был представлен как часть GT PowerComm эмулятора терминала компании Meiners для решения этой проблемы. Он предлагал высокую производительность, аналогичную ZMODEM, но при этом был намного проще в реализации. Несмотря на это привлекательное сочетание функций, MEGAlink так и не стал популярным, и, похоже, лишь немногие другие эмуляторы терминала добавили поддержку. [ 1 ] - в обзорной статье 1988 года показаны только PowerComm и еще одна поддерживающая его программа. [ 2 ]
Переход от 8-битных к 16-битным компьютерам происходил одновременно с появлением MEGAlink, и к концу 1980-х годов обсуждались любые преимущества с точки зрения простоты. ZMODEM стал почти универсальным.
Описание
[ редактировать ]ХМОДЕМ
[ редактировать ]XMODEM — простой протокол, и это основная причина его популярности. [ 3 ]
Отправляемый файл разбивается на фрагменты по 128 байт, которые формируют полезные данные его пакетов . 3-байтовый заголовок, состоящий из SOH Перед данными добавляется символ и два 8-битных целых числа, а 1-байтовая контрольная сумма в конце — , в результате чего общая длина пакета составляет 132 байта. Протокол запускается получателем, который отправляет NAK символ для начала передачи, ждет ответного пакета, а затем отправляет ACK если пакет был получен правильно, или NAK если бы это было не так. [ 4 ]
Поскольку телефонная система имеет определенную задержку , для ACK или NAK чтобы пройти обратно по линиям и инициировать отправку следующего пакета. При скорости 300 бит/с это короткое время по сравнению со временем, необходимым для отправки пакета данных, поэтому его можно игнорировать. При скорости 2400 бит/с обычные задержки означают, что до 50 % доступного времени тратится впустую на ожидание ответов. [ 4 ]
Для решения этой проблемы предлагалось множество решений. Один из них — увеличить размер пакета, чтобы задержка составляла меньшую долю времени, необходимого для отправки пакета. Это использовалось в ряде протоколов, особенно в YMODEM . [ 4 ] Другое решение — использовать скользящее окно , позволяющее отправлять несколько пакетов без необходимости ACK для каждого, как это используется в WXMODEM и других.
МЕГАлинк
[ редактировать ]MEGAlink, по сути, представляет собой комбинацию функций предыдущих попыток улучшить производительность XMODEM. Самым основным изменением было увеличение размера пакета со 128 байт до 512. Это не только уменьшает относительные последствия задержки, но и увеличивает объем данных по сравнению с сторонней информацией, такой как байты заголовка и нижнего колонтитула, повышая эффективность канала . [ 5 ]
MEGAlink намеренно избегал решения со скользящим окном, устраняя необходимость отправлять ACK совсем. Отправитель просто будет продолжать отправлять пакеты до тех пор, пока, если вообще когда-нибудь, NAK был получен. NAK было отправлено с двумя следующими байтами, первый из которых содержал номер пакета, в котором произошла ошибка, а второй как дополнение до двух этого номера. Затем отправитель возобновит передачу с этого момента. [ 5 ]
Чтобы быстро повторно отправить данные, когда это необходимо, отправителю приходилось поддерживать буфер данных файла, чтобы можно было быстро перемотать назад к этой точке. Машины той эпохи имели небольшой объем памяти, 64 КБ не были редкостью, поэтому большие буферы организовать было непросто. Чтобы устранить тот факт, что отправителю может не хватить памяти для отправки очень длинных потоков, MEGAlink разрешил отправителю запрашивать ACK в любой момент, что позволит ему очистить буфер при необходимости. [ 5 ]
Для этого отправитель отправил ASCII-код. RS (Разделитель записей). Если получатель видит RS вместо ожидаемого SOH в начале следующего пакета он немедленно отправляет ответ, состоящий из ACK и номер пакета и обратное, как в случае с NAK. Затем отправитель может удалить из своего буфера любые данные, предшествующие этому пакету. Например, GT PowerComm использовал буфер, достаточно большой для 32 пакетов, и отправлял RSs запрашивает каждые 16 пакетов или около того. [ 5 ]
Другие изменения в протоколе менее значительны. Чтобы разрешить работу в некоторых сетях, например PC Pursuit , XON и XOFF символы были экранированы с помощью DLE а затем выполнил XOR с 64. Для этого потребовались любые DLE в исходных данных, которые необходимо экранировать таким же образом. [ 5 ]
32-битная контрольная сумма
[ редактировать ]В исходной версии MEGAlink использовалась 16-битная циклическая избыточная кодировка (CRC), как и во многих других ответвлениях XMODEM. Как и в этих версиях, получатель указал, что способен принимать CRC, отправив начальное сообщение. C вместо NAK чтобы начать передачу. Позднее MEGAlink был модифицирован для поддержки 32-битных CRC, для чего пакеты начинались с EM вместо SOH. «Нулевой пакет», содержащий информацию о файле, всегда отправлялся со стандартным SOH и 16-битный CRC, только следующие пакеты данных использовали EM формат. [ 5 ]
Примечания
[ редактировать ]- ^ XMODEM требует 8-битных чистых ссылок, которые не всегда поддерживаются основными онлайн-сервисами.
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Бигли и Тапамила 1987 , с. 63.
- ^ Обзор 1988 года .
- ^ Кристенсен 1982 .
- ^ Jump up to: а б с Форсберг 1985 .
- ^ Jump up to: а б с д и ж Майнерс 1987 .
Библиография
[ редактировать ]- Бигли, Том; Тапамила, Глен (7 декабря 1987 г.). «Карманный справочник по протоколам передачи файлов» . Инфомир .
- Кристенсен, Уорд (1 января 1982 г.). Обзор протокола XMODEM (Технический отчет).
- Форсберг, Чак (10 октября 1985 г.). Справочник по протоколу XMODEM / YMODEM Чака Форсберга (технический отчет).
- Майнерс, Пол (9 августа 1987 г.). MEGAlink: протокол передачи файлов (технический отчет).
- «Лучшие коммуникационные программы Shareware» . Обзор Информационного центра . Апрель 1988 г. с. 1326.