Фаза передачи файла


Передатчик посылает кадр ZFILE с параметрами протокола ZModem, за которыми следует пакет данных ZCRCW, содержащий имя, длину и дату модификации файла, а также другую информацию, аналогичную используемой в протоколе YModem.

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

Если в приемном компьютере имеется файл с тем же именем и той же длины, приемная программа может ответить кадром ZCRC, который требует от передатчика вычислить 32-разрядную проверочную комбинацию для данного файла и передать приемнику ее дополнение в кадре ZACK. Приемник использует эту информацию для принятия решения о приеме или пропуске данного файла.

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

Пакет данных завершается последовательностью ZCRCG. Проверки по коду не вызывают формирование ответа до тех пор, пока не будет обнаружена ошибка. Последовательно может быть передано большое число пакетов. При отсутствии ошибок на каждый переданный пакет ZCRCQ ожидается ответ ZACK (подтверждение) с указанием смещения в файле приемника. В противном случае передается ответ ZRPOS со смещением, соответствующим последнему принятому без ошибок пакету. Другие пакеты данных передаются непрерывно. Пакеты ZCRCQ не используются, если приемник не указал на возможность полного дуплекса битом CANFDX.

В случае временного отсутствия данных у передатчика для предотвращения тайм-аута приемника передатчик передает кадры нулевой длины.

В конце файла при отсутствии ошибки передатчик посылает сигнал об окончании файла. Если файл заканчивается внутри кадра, то кадр завершается пакетом ZCRCE, который не требует подтверждения за исключением случаев обнаружения ошибки.

Передатчик посылает кадр ZEOF, содержащий конечное значение смещения, равное числу знаков в файле. В приемнике производится сравнение этого числа с числом принятых знаков. Если принят весь файл, приемник закрывает файл. При удачном закрытии файла приемник отвечает кадром ZRINIT. Если принят не весь файл (продолжается поступление новых кадров ZDATA), приемник игнорирует кадр ZEOF. При невозможности правильного закрытия файла приемником посылается заголовок ZFERR.



Дата добавления: 2016-05-30; просмотров: 1776;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.