|
FTP: протокол передачи файлов
FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла.
Управляющее соединение устанавливается как обычное соединение клиент-сервер. Сервер осуществляет пассивное открытие на заранее известный порт FTP (21) и ожидает запроса на соединение от клиента. Клиент осуществляет активное открытие на TCP порт 21, чтобы установить управляющее соединение. Управляющее соединение существует все время, пока клиент общается с сервером. Это соединение используется для передачи команд от клиента к серверу и для передачи откликов от сервера. Тип IP сервиса для управляющего соединения устанавливается для получения "минимальной задержки", так как команды обычно вводятся пользователем.
Соединение данных открывается каждый раз, когда осуществляется передача файла между клиентом и сервером. (Оно также открывается и в другие моменты, как мы увидим позже.) Тип сервиса IP для соединения данных должен быть "максимальная пропускная способность", так как это соединение используется для передачи файлов.
Команды FTP
Команды и отклики передаются по управляющему соединению между клиентом и сервером в формате NVT ASCII. В конце каждой строки команды или отклика присутствует пара CR, LF.
Единственные команды Telnet (начинающиеся с IAC), которые могут быть отправлены клиентом серверу - это команда прерывания процесса () и Telnet сигнал синхронизации ( в режиме срочности). Мы увидим, что эти две команды Telnet используются для прекращения передачи файла или для того, чтобы отправить серверу запрос в процессе передачи. Если сервер получает от клиента команду с Telnet опцией (WILL, WONT, DO или DONT), он отвечает либо DONT, либо WONT.
Команды состоят из 3 или 4 байт, а именно из заглавных ASCII символов, некоторые с необязательными аргументами. Клиент может отправить серверу более чем 30 различных FTP команд. На рисунке 27.2 показаны некоторые наиболее широко используемые команды, большинство из которых мы рассмотрим в этой главе.
ABOR |
прервать предыдущую команду FTP и любую передачу данных |
LIST |
список файлов список файлов или директорий |
PASS |
пароль пароль на сервере |
PORT n1,n2,n3,n4,n5,n6 |
IP адрес клиента (n1.n2.n3.n4) и порт (n5 x 256 + n6) |
QUIT |
закрыть бюджет на сервере |
RETR |
имя файла получить (get) файл |
STOR |
имя файла положить (put) файл |
SYST |
сервер возвращает тип системы |
TYPE |
тип указать тип файла: A для ASCII, I для двоичного |
USER |
имя пользователя имя пользователя на сервере |
|