Кодирование последовательностей перехода
Протокол ZModem обеспечивает прозрачность передачи данных путем расширения набора 8-разрядных знаков (256 возможных знаков). Это осуществляется с помощью ESC-последовательностей перехода на основе знака ZDLE. Это позволяет передавать кадры данных переменной длины с помощью заголовков, содержащих одинаковое количество байтов. Это также позволяет обнаруживать начало кадров.
Применение последовательностей перехода приводит к увеличению служебного заголовка. В худшем случае, в файле, содержащем только знаки перехода, служебный заголовок составляет 50% размера кадра.
Знак ZDLE представляет последовательность определенного вида. Если этот знак появляется в двоичных данных, ему предшествует еще один знак ZDLE, a за ним передается знак ZDLEE. Знаку ZDLE соответствует шестнадцатеричное число 8h (знак CAN кода ASCII). Это частное значение знака выбрано для того, чтобы путем передачи 5 последовательных знаков CAN обеспечивать процедуру прекращения сеанса протокола ZModem, совместимого с протоколом YModem. Так как знак CAN не используется в обычных терминальных операциях, интерактивные службы и связные программы могут контролировать наличие знака ZDLE в потоке данных для обнаружения заголовка кадра ZRQINIT — приглашения для автоматического приема команд или файлов.
Прием 5 последовательных знаков CAN вызывает прекращение сеанса протокола ZModem. Для этого передается 8 знаков CAN. Принимающая программа декодирует любую последовательность, состоящую из знака ZDLE и байта, следующего за ним, в котором бит 6 установлен в "I", а бит 5 сброшен в "О". Декодирование таких последовательностей в управляющий знак осуществляется путем инвертирования бита 6. Это позволяет передатчику изменять любой управляющий знак, который не может быть передан через используемую систему передачи данных.
Заголовок кадра
Все кадры протокола ZModem начинаются с заголовка кадра, который может передаваться в двоичной или восьмеричной форме. В протоколе используется процедура определения формата заголовка. В заголовке содержится одна и та же информация, не зависимо от формата:
> тип кадра;
> 4 байта флагов индикации данных и (или) числовые величины, зависящие от типа кадра.
Формат заголовка имеет следующий вид:
TYPE | F3 | F2 | F1 | FO |
TYPE | РО | Р1 | Р2 | РЗ |
где TYPE — тип кадра; FO — младший байт флага; РО — младший байт позиции файла; РЗ — старший байт позиции файла.
Дата добавления: 2016-05-30; просмотров: 2111;