• EBCDIC-файлы. Альтернативный способ передачи текстовых файлов, когда на обоих концах системы EBCDIC.
• Бинарные файлы. Данные между FTP-сервером и клиентом передаются как непрерывный поток битов.
• Локальный тип файлов. Способ передачи бинарных файлов между компьютерами, которые имеют различный размер байта. Количество битов в байте определяется отправителем. Обычно не используется.
Управление форматом
Применяется только для передачи ASCII– и EBCDIC-файлов.
• Nonprint. Файл не содержит информацию вертикального форматирования.
• Telnet format control. Файл содержит управляющие символы вертикального форматирования telnet, которые интерпретируются принтером.
• Fortran carriage control. Первый символ каждой строки это Fortran-символ управления форматированием.
Структура
Способы передачи структуры данных приведены ниже.
• Структура файла. Пересылаемый файл воспринимается в виде непрерывного потока байтов.
• Структура записи. Эта структура используется только в случае текстовых файлов.
• Структура страницы. Каждая страница передается с номером страницы (не рекомендуется использовать эту структуру).
Режим передачи
Определяет способ передачи файла по соединению данных.
• Потоковый режим. Передача файла осуществляется как поток байтов.
• Блочный режим. Передача файла осуществляется как последовательность блоков. Блок имеет управляющий заголовок и собственно пересылаемые данные.
• Режим сжатия. При передаче осуществляется замена неоднократно встречающихся повторяющихся байтов на байт и число его повторений.
Как видите, протокол FTP поддерживает большое количество представлений данных. Однако в реальной жизни большинством программного обеспечения наиболее часто используется нижеприведенное ограниченное подмножество представлений:
• тип файла – ASCII или двоичный;
• управление форматом – только nonprint;
• структура – только структура файла;
• режим передачи – только потоковый режим.
Управляющие команды FTP
Управляющие команды и ответы передаются по управляющему соединению между клиентом и сервером в формате NVT ASCII. В конце каждой строки присутствует пара символов «возврат каретки/перевод строки» (CR/LF).
В полном наборе команд насчитывается более 30-ти. В табл. 20.1 приведены наиболее часто используемые команды. Полный список команд можно посмотреть в соответствующем RFC.
Таблица 20.1. Управляющие команды протокола FTP
Ответы на управляющие FTP-команды
Ответы на управляющие FTP-команды состоят из трехзначного числа в формате ASCII и необязательного текстового сообщения, которое следует за числом.
Каждая из трех цифр в коде ответа имеет собственное значение. Расшифровка первой и второй цифр кода приведена в табл. 20.2.
Таблица 20.2. Значения первой и второй цифр в коде ответа на управляющие команды
Третья цифра дает уточняющее определение сообщению об ошибке. В табл. 20.3 приведены соответствующие коды и пояснения.
Таблица 20.3. Значения третьей цифры в коде ответа на управляющие команды
Обычно каждая FTP-команда генерирует однострочный ответ. Если необходим ответ, состоящий из нескольких строк, то первая строка содержит дефис вместо пробела после трехзначного кода отклика, а последняя строка содержит тот же самый трехзначный код отклика, за которым следует пробел.
Управление соединением
Использовать соединение данных можно тремя способами:
1. Отправка файлов от клиента к серверу.
2. Отправка файлов от сервера к клиенту.
3. Отправка списка файлов или каталогов от сервера к клиенту.
Третий способ необходимо пояснить. FTP-сервер посылает список файлов по соединению данных – при таком использовании канала данных появляется возможность избежать любых ограничений в строках, накладывающихся на размер списка каталога, и несколько упрощает обмен информацией.
Управляющее соединение остается в активизированном состоянии все время, пока установлено соединение клиент-сервер, но соединение данных может устанавливаться и отключаться по необходимости. Рассмотрим, как выбираются номера портов для соединения данных, и кто осуществляет активное открытие, а кто пассивное.
Основной режим передачи – потоковый режим. В этом режиме конец файла обозначает закрытие соединения данных. Из этого вытекает, что для передачи каждого файла требуется новое соединение данных. Обычная процедура выглядит следующим образом:
Читать дальше
Конец ознакомительного отрывка
Купить книгу