Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Двоичный заголовок с проверочной комбинацией CRC-16



В двоичном заголовке кодирование ZDLE обеспечивает управление потоком по методу XON/XOFF. Двоичный заголовок начинается последовательностью ZPAD, ZDLE, ZBIN. Затем следует байт типа кадра, 4 байта позиции флага, 2 байта проверочной комбинации, кодированные с помощью ZDLE. В зависимости от типа кадра за заголовком могут следовать блоки пакетов данных, охваченные проверкой CRC-16:

ZDLE 1 А TYPE F3/PO F2/P1 F1/P3 FO/P3 CRC-16


Двоичный заголовок с проверочной комбинацией CRC-32

Такой двоичный заголовок аналогичен заголовку с 16-разрядной проверочной комбинацией, за исключением того, что ZDLE (А) заменен на ZDLE (С) и передаются 4 знака (байта) проверочной комбинации:

ZDLE С TYPE ¦ F3/PO F2/P1 F1/P3 FO/P3 CRC-32


Шестнадцатиричный заголовок

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

16-ричный заголовок начинается последовательностью ZPAD, ZPAD, ZDLE, ZHEX. Дополнительный знак ZPAD позволяет передающей программе обнаруживать асинхронный заголовок и затем вызвать соответствующую подпрограмму для приема заголовка.

Тип кадра, байты флагов и CRC-16 передаются в 16-ричном формате с использованием набора знаков 0—9, а—Г. Не допускается передача знаков в верхнем регистре, так как они неправильно воспринимаются протоколами XModem и YModem. Знаки возврата каретки (CR) и перевода строки (LF) передаются с 16-ричными заголовками. Программой приема ожидается, по крайней мере, один из этих знаков или оба, если первый знак CR. При передаче знака CR/LF отпадает необходимость редактирования принятого файла при выводе на печать и исключаются проблемы, связанные с этими знаками в некоторых операционных системах.

Знак XON добавляется ко всем 16-рйчным комбинациям, за исключением ZACK и ZFIN. Это позволяет защититься от знака XOFF, в который могут случайно перейти другие знаки под воздействием ошибок в канале связи. Для защиты управления потоком при использовании метода непрерывной (потоковой) передачи знак XON не передается после заголовков ZACK. Для разрешения прекращения сеанса связи после заголовков ZFIN знак XON также не передается.

В зависимости от типа кадра за заголовком могут передаваться пакеты данных:


Пакеты двоичных данны

При передаче пакетов двоичных данных заполнение пробелов (padding) не используется. Байты данных кодируются методом ZDLE и затем передаются. Далее передается знак ZDLE и окончание кадра, за которым следуют 2 или 4 кодированных ZDLE проверочных байта (CRC-16 или CRC-32). Циклическая кодовая проверка охватывает байты данных и окончание кадра.

Пакеты данных в коде ASCII

В настоящее время пакеты данных в коде ASCII не определены. Эти пакеты могут использоваться для команд серверов или для основных передач в системах с 7-разрядным форматом.

Типы кадров ZModem

ZRQINIT

Посылается передающей программой для инициализации передачи заголовка ZRINIT программой приема. Позволяет устранить стартовые задержки, свойственные протоколам XModem и Kermit. Передающая программа может повторить приглашение приема (включая ZRQINIT), если ответ не получен после первой передачи данного кадра.

ZRINIT

Передается программой приема. Байты ZFO и ZF1 содержат распределение битов или флаги, указывающие на возможности приемника (дешифрирование, передача и прием в дуплексном режиме, прием данных во время чтения-записи на диск, передач сигнала разрыва, декомпрессия, использование проверочной комбинации CRC-32, ожидание перехода управляющих знаков или 8-го бита).

Байты ZPO и ZP1 содержат размер буфера приемника в байтах или "О", если разрешен прием без остановки ввода-вывода.

ZSINIT

Передатчик посылает флаги с следующим за ними пакетом двоичных данных, завершаемым ZCRCW. Пакет данных содержит последовательность ATTN, состоящую максимум из 32 байт, включая завершающий "О".

ZACK

Подтверждение кадра ZSINIT, заголовка ZCHALLENGE, пакетов данных ZCRCQ или ZCRCW. Байты от ZPO до ZP3 содержат величину смещения в файле. Ответ на заголовок ZCHALLENGE содержит также 32 байта, как и принятый заголовок.

ZFILE

Обозначает начало передачи файла. Байты ZFO, ZF1 и ZF2 могут принимать различные значения, определяющие варианты преобразования, управления, передачи и др.

ZSKIP

Передается приемником в ответ на ZFILE и заставляет передатчик перейти к передаче следующего файла.

ZNAK

Указывает на искажение последнего заголовка.

ZABORT

Передается приемником для прекращения групповой передачи файлов по запросу пользователя. Передатчик отвечает при этом кадром ZFIN.

ZFIN

Посылается передающей программой для завершения сеанса протокола ZModem. Приемник отвечает на этот кадр собственным кадром ZFIN.

ZRPOS

Передается приемником для форсирования возобновления передачи файла с позиции смещения в файле, указанной в байтах ZPO—ZP3.

ZDATA

Байты ZPO—ZP3 содержат значение смещения в файле. За ними следует 1 или более пакетов данных.

ZEOF

Сообщение передатчика о завершении передачи файла. В байтах ZPO—ZP3 содержится конечное значение смещения в файле.

ZFERR

Свидетельствует об ошибке при чтении или записи файлов, протокольный эквивалент кадру ZABORT.

ZCRC

Запрос приемником и ответ передатчиком проверочной комбинации (полинома) файла. Проверочная комбинация содержится в байтах ZPO—ZP3.

ZCHALLENGE

Запрос эхо-возврата передатчиком случайного числа в байтах ZPO—ZP3 кадра ZACK. Посылается программой приема передающей программе для проверки соединения и его достоверности (осуществлено ли соединение под воздействием канальных ошибок или сообщения типа "Троянский конь").

ZCOMPL

Сообщает, что запрос в данный момент завершен.

ZCAN

Тип псевдокадра, возвращаемый программой в ответ на последовательность "Прекращения сеанса" (session abort sequence).

ZFREECNT

Запрос передающей программой кадра ZACK с байтами ZPO—ZP3, содержащими объем свободного дискового пространства в текущей файловой системе. Значение 0 соответствует неопределенному объему свободной памяти.

ZCOMMAND

Кадр ZCOMMAND передается в двоичном кадре. В байте ZFO содержится "О" или ZCACK1.

За пакетом данных ZCRCW следует строка текста в коде ASCII, завершающаяся знаком NUL. Если команда предназначена для выполнения ее операционной системой, в которой работает протокол (например, при выходе в операционную систему по команде "shell escape" или "DOS shell"), первым знаком должен быть знак "!". В других случаях подразумевается, что команда должна выполняться прикладной программой. Если приемник обнаруживает недопустимую или неправильно сформированную команду, то он сразу же отвечает заголовком ZCOMPL с кодом ошибки, содержащимся в ZPO—ZP3. Если в ZFO содержится ZCACK1, приемник отвечает заголовком ZCOMPL с состоянием "О". В других случаях приемник отвечает заголовком ZCOMPL после завершения выполнения команды. Код "Состояния выхода" (exit) выполненной команды хранится в ZPO—ZP3. Если код "Состояние выхода" равен "О", то это соответствует нормальному завершению выполнению команды.

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

Если программа приема не может выполнить принятую команду, она отображает ее в стандартном сообщении об ошибке и затем возвращает заголовок ZCOMPL.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.