Как и в XMODEM передача прекращается при отсутствии
заголовка в течении времени ( обычн 1 мин ).
4.1 Стартовая секция.
В стартовой секции посылается имя файла и опции.
В начале посылающая программа может послать строку "rz",CR
переводя принимающую программу в командный режим.Это сообщение
может выдаваться на экран.
Затем может быть послан ZRQINIT.В ответ на что обычно
принимающая программа посылает ZRINIT без задержки или
ZCHALLENGE для проверки посылающей программы.
Если принимающая программа принимает ZRINIT,это индикация
того,что посылающая программа не активна.
Посылающая программа может послать опцию ZSINIT,чтобы
заставить принимающую программу определить Attn
последовательность.
Если ZSINIT заголовок содержит ESCCTL или ESC8,то
используется HEX заголовок и приемник активизирует ESC
моду,прежде чем читать следующие данные подпакета.
4.2 Передача файла.
Передатчик посылает ZFILE заголовок с опциями
преобразования,управления и передачи.Затем посылается ZCRCW
подпакет содержащий имя файла,длинну,модифицированную дату и
другую информацию идентичную с Ymodem.
Приемник может ответить ZSKIP заголовком,который заставит
передатчик перейти к следующему файлу.
ZRPOS заголовок от приемника активизирует передачу данных
файла с позиции заданной в ZRPOS.
Передатчик посылает ZDATA бинарный заголовок с позицией
файла.
Приемник сравнивает положение файла с указателем в ZDATA с
количеством успешно принятых байт.Если оно не совпадает то
посылается ZRPOS с правильным значением.
Данные подпакета завершаются ZCRCG и CRC за которыми
немедленно следует следующий пакет.
Если подпакет завершается ZCRCW то передатчик ждет ответа
прежде,чем посылать следующий фрейм,что позволяет приемнику
записать буфер,прежде чем следующие данные будут приняты.
Нулевая длинна файла может быть использована в качестве не
рабочего пакета для предупреждения приемника,что данные не
будут посланы немедленно.
При отсутствии фатальной ошибки,передатчик возможно
достигнет конца файла.Если обнаружен конец файла то фрейм
завершается ZCRCE заголовком,который не извлекается в случае
ошибки.
Передатчик посылает ZEOF заголовок с завершающим смещением в
файле равным количеству байт в файле.Приемник сравнивает это
число с количеством принятых байт.Если приемник принял все
байты он закрывает файл.Если файл закрыт успешно,то приемник
отвечает ZRINIT.Если приемник не принял все байты,то ZEOF
игнорируется.Если приемник не может закрыть файл,то посылается
ZFERR.
Если ZTSPARS опция используется,то приемник перемещается к
позиции в файле заданной ZDATA.
4.3 Заключительная секция.
Передатчик завершает секцию заголовком ZFIN.Приемник
подтверждает это своим ZFIN.
Когда передатчик принимает подтверждающий заголовок,он
посылает два символа "оо".Приемник ожидает "о" и затем выходит
независимо от того приняты они или нет.
4.4 Аварийная секция.
Если приемник принимает данные непрерывным потоком,то
сперва посылается Attn последовательность с требованием
прекратить передачу данных,а затем cancel
последовательность.Cancel последовательность состоит из восьми
CAN символов и десяти BS.Zmodem требует пять CAN,другие нужны
для уверенности.
{ 24,24,24,24,24,24,24,24,8,8,8,8,8,8,8,8,8,8 }
|