Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 13:

Протоколы передачи файлов (FTP и TFTP)

Аннотация: Рассматривается протокол передачи файлов (File Transfer Protocol – FTP) – это стандартный механизм для копирования файла от одного хоста другим

Протокол FTP

Протокол передачи файлов (File Transfer ProtocolFTP) – это стандартный механизм для копирования файла от одного хоста другим [19]. Передача файлов от одного компьютера к другому – это одна из большого числа общих задач, выполнение которой ожидается от организованной сети и взаимодействия между сетями.

Хотя передача файлов от одной системы к другой кажется простой и прямолинейной задачей, вначале должны быть решены некоторые проблемы. Например, две системы могут использовать различные соглашения об именах файлов. Две системы могут иметь различные пути для представления текстов и данных. Две системы могут иметь различные структуры директорий. Все эти проблемы решает FTP очень простым и элегантным методом.

FTP отличается от других приложений типа клиент-сервер тем, что он устанавливает два соединения между хостами. Одно соединение применяется для передачи данных, другое — для управления информацией (команды и отклики). Разделение команд и передачи управляющих данных делает FTP более эффективным. Управление соединением использует очень простые правила для связи. Нам нужна для передачи только линия команд или линия откликов. С другой стороны, соединение для данных нуждается в более сложных правилах из-за разнообразия типов данных.

FTP использует два заданных порта: порт 21 для управления и порт 20 для передачи данных.

Рисунок 13.1 показывает базовую модель FTP. Клиент имеет три компоненты: пользовательский интерфейс, процесс управления клиентом и процесс передачи клиентских данных. Соединение для передачи сигналов управления происходит между процессами управления. Соединение для передачи данных делается для процессов обмена данными.

FTP

Рис. 13.1. FTP

Соединение передачи сигналов управления остается открытым в течение всей интерактивной сессии FTP. Соединение передачи данных каждый раз открывается командой, чтобы вызвать передаваемый файл, и затем закрывается, когда файл передан. Другими словами, когда пользователь начинает FTP-сессию, соединение для передачи сигналов управления открывается. Пока оно открывается, соединение для передачи данных может быть открыто и закрыто много раз, если передается несколько файлов.

Соединения

Два FTP-соединения – для передачи команд управления и передачи данных — используют различные стратегии и различные номера портов.

Соединение для передачи команд управления

Соединение для передачи команд управления создается тем же самым методом, что и другие соединения, рассмотренные далее. Имеется два шага:

  1. сервер пассивно открывается, подключается к заданному порту и ждет клиента;
  2. клиент использует временный порт, и сессия активно открывается.

Соединение для передачи команд управления остается открытым в течение всего процесса. Тип услуги, используемый в соответствии с IP-протоколом, – это минимизация задержки, потому что это диалоговая связь между пользователем (человеком) и сервером. Пользователи различного типа посылают команды и ожидают получение откликов без существенной задержки. Рис. 13.2 показывает начальное соединение между сервером и клиентом. Конечно, после начального соединения процесс сервера порождает "дочерние" процессы и назначает свободное обслуживание клиента "дочерним" процессом, использующим кратковременный порт.

Открытие управляющего соединения

Рис. 13.2. Открытие управляющего соединения

Соединение для передачи данных

Соединение для передачи данных использует заданный порт 20. Однако создание соединения для передачи данных отличается от предыдущего. FTP создает соединение для передачи данных следующим образом:

  1. Клиент (не сервер) вызывает пассивное открытие кратковременного порта. Это может быть сделано клиентом, потому что клиент вызывает команды для передачи файлов.
  2. Клиент посылает номер этого порта серверу, используя команду PORT (ниже эта команда будет рассмотрена).
  3. Сервер получает номер порта, вызывает активное открытие заданного порта 20 и получает номер временного порта.

Шаги для создания начального соединения для передачи данных показаны на рис. 13.3. Позднее мы увидим, что эти шаги меняются, если используется команда PASV.

Создание соединения для передачи данных

Рис. 13.3. Создание соединения для передачи данных

Установление соединения

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

FTP обладает двумя различными подходами для управления соединением: одним для соединения для передачи команд управления и одним для передачи данных. Рассмотрим отдельно каждый метод.

Связь по каналу (соединению) для передачи команд управления

FTP применяет те же самые методы, что TELNET или SMTP, для коммутации по установлению соединения для команд управления. Он использует набор символов NVT ASCII ( Рисунок 13.4). Связь устанавливается с помощью команд и откликов. Посылается одна команда (отклик) в один момент времени. Каждая команда или отклик – это только короткая строка, так что мы можем не беспокоиться о формате файла или структуре файла. Каждая строка заканчивается двумя символами, обозначающими конец строки (возврат каретки и перевод строки).

Использование соединения управления

Рис. 13.4. Использование соединения управления

Связь по каналу (соединению) передачи данных

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

Использование соединения для передачи данных

Рис. 13.5. Использование соединения для передачи данных

Тип файла

FTP может передавать через соединение для передачи данных следующие типы файлов:

  • ASCII-файл. Это формат, используемый по умолчанию для трансляции текстовых файлов. Каждый символ закодирован с использованием NVT ASCII-символов. Передатчик преобразует файл из собственного представления в NVT ASCII, и приемник преобразует символы NVT ASCII в собственное представление.
  • EBCDIC-файл. Если оба конца соединения используют кодирование EBCDIC, файл может быть передан с использованием EBCDIC-кодирования.
  • Image-файл. Этот файл по умолчанию — формат для передачи двоичных файлов. Файл посылается как непрерывный поток бит без всякой интерпретации и кодирования. Он в большинстве случаев используется для передачи двоичных файлов, таких как компилированная программа.

Если файл закодирован в ASCII или EBCDIC, другие атрибуты должны дополняться, чтобы определить возможность печати файла:

  1. Запрещенный для печати. Это формат по умолчанию для передачи текстовых файлов. Файл не содержит "вертикальных" спецификаций для печати. Это означает, что файл не может быть напечатан без предварительной обработки, потому что он не содержит символов, интерпретируемых для вертикального передвижения печатающей головки. Этот формат используется для файлов, которые будут накоплены и обработаны позднее.
  2. TELNET. В этом формате файл содержит NVT ASCII вертикальные символы, такие, как CR (перевод каретки), LN (перевод строки), NL (новая строка) и VT (вертикальное табулирование). Эти файлы могут быть напечатаны после передачи

Структура данных

FTP может передавать файл по соединению для передачи данных, используя одну из следующих интерпретаций структуры данных:

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

Режимы передачи

FTP может передавать файл по соединению для передачи данных, используя один из трех следующих режимов передачи:

  • Поточный режим. Это режим по умолчанию. Данные доставляются от FTP к TCP как непрерывный поток данных. TCP отвечает за разбиение данных на сегменты соответствующего размера. Если данные — просто поток байтов (файловая структура), то не нужно никакого признака окончания файла. Окончание файла в этом случае — это разъединение соединения данных отправителем. Если данные разделены на записи (структура по записи), каждая запись будет иметь однобайтный символ окончания записи (EOR — end of record).
  • Блочный режим. Данные могут быть доставлены от FTP и TCP в блоках. В этом случае блоку предшествует трехбайтный заголовок. Первый байт называется дескриптор блока, следующие два байта определяют размер блока в байтах.
  • Сжатый режим. Если файл большой, данные могут быть сжаты. Метод сжатия использует нормальное кодирование длины. В этом методе последовательное повторное появление блока данных заменяется одним вхождением и числом повторений. В тексте файла это обычно пробел (пустоты). В двоичном файле нулевые символы обычно сжимаются.

Команды обработки

FTP использует соединение управления для того, чтобы установить связь между процессом управления клиента. В течение этой связи команды посылаются от клиента к серверу, и отклики посылаются от сервера к клиенту ( рисунок 13.6).

Команды обработки

Рис. 13.6. Команды обработки
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова
Алексей Гончаренко
Алексей Гончаренко
Россия
Айбек Куттымурат
Айбек Куттымурат
Казахстан, Алматы