
Раздел 5. Глобальные сети связи
381
Коммуникационные программы, в которых не реализованы все пере-
численные функции, несовместимы с протоколом Ymodem. Выполнение
этих минимальных требований, однако, не гарантирует надежной передачи
файлов в условиях сильных помех. Протокол Ymodem устраняет некоторые
недостатки протокола Xmodem, в основном сохраняя его простоту.
Как и в случае передачи одного файла, приемник инициирует группо-
вую передачу путем посылки знака ”с”. Передатчик открывает файл и пере-
дает номер 0. Для групповой передачи требуются только имена файлов. С
целью обеспечения совместимости “снизу вверх” все неиспользуемые байты
блока 0 должны иметь нулевое значение.
Имя файлов передается как строка кодов ASCII, завершаемая знаком
NUL. Этот формат имени файла используется в функциях, ориентированных
на операционные системы типа MS-DOS, и в функции fopen библиотеки Си.
В имя файла не включены пробелы. Обычно передается только само имя без
префикса, имя диска источника не передается. Если передатчик не поддер-
живает передачу знаков в обоих регистрах, имя передается в строчном реги-
стре. Если в имя файла включен каталог, его название должно ограничивать-
ся знаком “/”.
Обозначения длины файла и каждого последующего поля произволь-
ны. Длина файла представляется в блоке как десятичная строка, задающая
количество байтов в файле. В нее не должны входить знаки EOF или другие
символы, используемые для заполнения последнего блока. Если передавае-
мый файл увеличивается во время передачи, то параметр ”длина файла”
должен иметь значение, соответствующее максимально ожидаемому размеру
или не передаваться вовсе.
Дата модификации файла является необязательным параметром, имя и
длина файла могут передаваться без передачи даты модификации. Протокол
Ymodem допускает возможность введения других полей заголовка без нару-
шения совместимости со своими прежними версиями. Оставшаяся часть
блока устанавливается в 0. Это важно для сохранения совместимости ”снизу
вверх”.
Если блок имени файла принят с ошибкой, необходим запрос на по-
вторную передачу. По умолчанию приемник использует процедуру исправ-
ления ошибок с решающей обратной связью (РОС) и циклическим кодом
CRC-16. Прием блока с именем файла, успешно открытого для записи, под-
тверждается знаком АСK. Если файл не может быть открыт для записи, то
приемник прерывает передачу с помощью знака отмены CAN (CANcel).
Далее приемник инициирует передачу содержимого файлов в соответ-
ствии с протоколом Xмodem-CRC. После того как содержимое файла полу-
чено, приемник запрашивает имя следующего файла. Передача источником
нулевого имени файла может означать, что групповая передача завершена, и