Опубликован: 11.08.2008 | Доступ: свободный | Студентов: 8955 / 1501 | Оценка: 4.20 / 3.78 | Длительность: 25:00:00
ISBN: 978-5-94774-884-0
Лекция 13:

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

Передача файла

Передача файла проводится по соединению для передачи данных под управлением команд, посылаемых по соединению передачи сигналов управления. Однако мы должны помнить, что передача файла в FTP означает одно из трех понятий ( рисунок 13.7):

  • Если файл должен быть скопирован от сервера к клиенту, то он называется извлекаемый файл. Операция производится под надзором команды RETR.
  • Если файл копируется от клиента к серверу, то он называется накапливаемый файл. Операция производится под надзором команды STOR.
  • Если нужно послать список директории или имен от сервера к клиенту, то операция производится под надзором команды LIST. Заметим, что FTP рассматривает список директорий или имена файлов как файл. Он посылает его через соединение данных.
Передача файла

Рис. 13.7. Передача файла

Пример 1

Рисунок 13.8 приводит пример использования FTP для извлечения списка элементов в директории.

Пример 1

Рис. 13.8. Пример 1
  1. После того как соединение управления к порту 21 создано, FTP-сервер посылает отклик на установление соединения управления 220 (Готов к обслуживанию).
  2. Клиент посылает команду USER.
  3. Сервер отвечает 331 (Пользовательское имя OK, требуется пароль).
  4. Клиент посылает команду PASS.
  5. Сервер откликается 230 (Регистрация пользователя OK).
  6. Клиент запускает пассивное открытие кратковременного порта для соединения данных и посылает команду PORT (через соединение управления), чтобы предоставить номер порта серверу.
  7. Сервер к этому времени не открывает соединение, но готовится для открытия соединения данных между портом 20 (на стороне сервера) и кратковременным портом, полученным от клиента. Он посылает отклик 150 (Соединение данных будет вскоре открыто).
  8. Клиент посылает сообщение LIST.
  9. Теперь сервер откликается 125 и открывает соединение данных.
  10. Сервер посылает список файлов или директорий (как файлы) по соединению данных. Когда послан полный список (файл), сервер посылает отклик 226 (Закрытие соединения) через соединение управления.
  11. Клиент теперь имеет две возможности. Он может использовать команду QUIT, чтобы запросить управление закрытием, или может послать другую команду, чтобы начать другое действие (в конечном счете, открыть другое соединение передачи данных). В нашем примере клиент посылает команду QUIT.

После того как получена команда QUIT, сервер откликается 221 (Сервис закрыт) и затем закрывает управляющее соединение.

Пример 2

Рисунок 13.9 показывает пример того, как накапливается изображение.

Пример 2

увеличить изображение
Рис. 13.9. Пример 2
  1. После того как создано управляющее соединение к порту 21, FTP-сервер посылает отклик 220 (Готов к обслуживанию) по управляющему соединению.
  2. Клиент посылает команду USER.
  3. Сервер отвечает 331 (Пользовательское имя OK, требуется пароль).
  4. Клиент посылает команду PASS.
  5. Сервер отвечает 230 (Пользователь зарегистрирован OK).
  6. Клиент запускает пассивное открытие кратковременного порта для соединения данных и посылает команду PORT (через соединение управления), чтобы передать номер порта серверу.
  7. Сервер к этому времени не открывает соединение, но готовится для открытия соединения данных между портом 20 (на стороне сервера) и кратковременным портом, полученным от клиента. Он посылает отклик 150 (Соединение данных будет вскоре открыто).
  8. Клиент посылает команду TYPE.
  9. Сервер отвечает откликом 200 (Команда в порядке — OK).
  10. Клиент посылает команду STRU.
  11. Сервер отвечает командой 200 (Команда в порядке — OK).
  12. Клиент посылает команду STOR.
  13. Сервер открывает соединение данных и посылает сообщение 250.
  14. Сервер посылает отклик 226 по соединению управления.
  15. Клиент посылает команду QUIT или использует другую команду, чтобы открыть другое соединение данных для передачи другого файла. В примере послана команда QUIT.
  16. Сервер отвечает 221 (Обслуживание закрыто) и закрывает соединение управления.

Пользовательский интерфейс

Большинство операционных систем обеспечивают дружественный пользователю интерфейс, помогающий обеспечить доступ к обслуживанию FTP. Интерфейс подсказывает пользователю соответствующий ввод. Затем пользователь напечатает строку, FTP читает эту строку и заменяет ее соответствующей FTP-командой. Некоторые команды могут быть заменены аббревиатурой, пока отсутствует неясность их толкования.

Пример 3

Мы продемонстрировали некоторые примеры команд пользовательского интерфейса, которые сопровождают задачи, подобные примеру 1. Пользовательский ввод выделен полужирным шрифтом. Как показано ниже, некоторые команды обеспечиваются интерфейсом автоматически. Например, пользователь не должен печатать никаких команд, связанных с командами USER, PASS, PORT. Это делает интерфейс. Пользователь получает подсказку и обеспечивает только аргументы.

% ftp kafedra.sut.spb.ru
Connecte to chellenger. sut.spb.ru
220 Server ready
Name: Berlin
Password: xxxxxx
ftp> ls /usr/user/report
200 OK
150 Opening ASCII mode
.......................
.......................
226 transfer complete
ftp> close
221 Goodbye
ftp> quit

Анонимный FTP

Чтобы использовать FTP, пользователю необходимо передать учетную запись (имя пользователя) и пароль на удаленный сервер. Некоторые сайты имеют набор файлов, доступных для общего пользования. Чтобы иметь доступ к этим файлам, пользователю не нужна учетная запись или пароль. Вместо этого пользователь может использовать анонимность (anonymous) как пользовательское bvz-имя и гостевой (guest) пароль.

Доступ к системе пользователя очень ограничен. Некоторые сайты разрешают анонимным пользователям только поднабор команд. Например, большинство сайтов дают пользователю возможность копировать некоторые файлы, но запрещают осуществлять навигацию по директориям.

Пример 4

Покажем пример использования анонимного FTP. Мы предполагаем, что некоторые общедоступные данные доступны по адресу loniis.net.

% ftp loniis.net
Connecte to loniis.net
220 Server ready
Name: anonymous
Password: xxxxxx
331 Guest logn OK, send "guest" as password
Password: guest
257 ‘/’ is current directory
ftp>pwd
200 OK
150 Opening ASCII mode
bin
.......................
ftp> close
221 Goodbye
ftp> quit
Наталья Шульга
Наталья Шульга

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

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

Мария Архипова
Мария Архипова