Работа протокола ZModem
Так же как в протоколе XModem, в протоколе ZModem синхронизация задается приемником. Тайм-аут передатчика вообще не задается, за исключением функции прерывания работы программы при отсутствии приема заголовка кадров в течение длительного периода времени, например, одной минуты.
Фаза начала сеанса
Для начала сеанса передачи файла с использованием протокола ZModem осуществляется вызов передающей программы с указанием имени требуемого файла (файлов) и варианта работы. Перед передачей послается соответствующая строка ("rz" с последующим возвратом каретки) приемной программе для запуска ее. Указанная строка активизирует приемную программу протокола. Затем передающая программа выводит сообщение для пользователя (например, список файлов для передачи).
Далее передатчик передает заголовок ZRQINIT, который заставляет предварительно запущенную программу приема без задержки послать заголовок ZRINIT, команду приема данных или внешнюю команду. В интерактивном режиме или режиме "переговоров" приемная прикладная программа контролирует поток данных на наличие ZDLE. Следующие за ними знаки могут быть командами управления приемом файла или данных.
Передающая программа ожидает команды начала передачи файлов от программы приема. Прием символов "с", "g" или знака NAK указывает на передачу файла в соответствии с протоколами XModem или Ymodem. В этом случае передача файла ведется с использованием протокола YModem.
В случае искажения данных передающая программа повторяет приглашение приема несколько раз, пока сеанс не начнется.
При старте программы протокола ZModem передается кадр ZRINIT для начала передачи файла или кадр ZCHALLENGE для верификации передающей программы. Программа приема повторяет передачу кадра с интервалом 10 с (по умолчанию) и в течение 40 с.
При обнаружении кадра ZRQINIT программа приема повторно передает кадр ZRINIT. Передающая программа, приняв кадр ZCHALLENGE, помещает данные в байты ZPO—ZP3 ответного заголовка ZACK.
Получение программой приема кадра ZRINIT, являющегося эхо-возвратом означает, что программа передачи не функционирует. При приеме программой передачи кадра ZRINIT передатчик послает необязательный кадр ZSINIT для определения служебной последовательности "Внимание" (ATTN) программы приема или для задания полного варианта замены управляющих знаков. Если в кадре ZSINIT помещены знаки ESCCTL или ESC8, прежде чем считывать последующий пакет данных приемник активирует требуемые режимы использования управляющих знаков ESC.
В ответ приемник посылает заголовок ZACK, который может содержать номер программы приема, присвоенный изготовителем, или 0.
Дата добавления: 2016-05-30; просмотров: 2103;