100 likes | 294 Views
File Transfer Protocol. Сетевой протокол, предназначенный для передачи файлов в компьютерных сетях, позволяет просматривать содержимое каталогов и загружать файлы с сервера или на сервер, кроме того возможен режим передачи файлов между серверами (FXP).
E N D
File Transfer Protocol • Сетевой протокол, предназначенный для передачи файлов в компьютерных сетях, позволяет просматривать содержимое каталогов и загружать файлы с сервера или на сервер, кроме того возможен режим передачи файлов между серверами (FXP). • Один из старейших прикладных протоколов - 1971 г. • Уязвим к перехвату сетевых пакетов (нет шифрования, пароль передаётся открытым текстом). • Используются два соединения (два порта): для передачи команд (control connection) и для передачи данных (data connection) RFC 959 (1985 г.) Rev. 1.01 / 14.11.2007 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
FTP и OSI RM FTP Layer 7 Layer 6 Layer 5 Layer 4 Layer 3 Layer 2 Layer 1 APPLICATION TCP IP Physical PRESENTATION SESSION TRANSPORT NETWORK DATA LINK PHYSICAL TCP/IP OSI/RM Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Схема взаимодействия по FTP FTP-сервер FTP-клиент TELNET user interface FTP-Команды ИП сервера ИП клиента FTP-отклики ППД сервера Данные ППД клиента ФС ФС не обязательно существует во время всего сеанса ИП – интерпретатор протокола ППД – процесс передачи данных ФС – файловая система Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Active mode 192.168.1.1 FTP-сервер ППД connect 192.168.1.13:33002 TCP:20 ИП L accept TCP:21 LIST 200 150 data 226 192.168.1.13 PORT ... FTP-клиент ИП connect TCP:33001 ППД L accept TCP:33002 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Passive mode 192.168.1.1 FTP-сервер ППД L accept TCP:35001 ИП L accept TCP:21 227 ... LIST PASV 150 data 226 192.168.1.13 FTP-клиент ИП connect TCP:33001 ППД connect 192.168.1.1:35001 TCP:33002 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Режим FXP (File eXchange Prot.) 192.168.1.1 FTP-сервер A accept L ППД TCP: 35001 accept L ИП TCP:21 RETR 226 192.168.1.13 227 A PASV 150 FTP-клиент connect ИП ИП data 33001, 33002 ППД 200 STOR 150 226 PORT A 192.168.1.2 FTP-сервер B connect 192.168.1.1:35001 ППД TCP: 20 accept L ИП TCP:21 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Команды FTP Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Отклики FTP 1хх – Позитивный предварительный ответ (запрошенное действие начато, следует ожидать ещё одного отклика, прежде чем выдать новую команду). 2хх – Позитивный ответ о завершении (запрошенное действие успешно выполнено, можно выдавать новую команду). 3хх – Позитивный промежуточный ответ (команда принята, но действие не начато, ожидается другая команда с дополнительной информацией). 4хх – Временный негативный ответ (команда не принята, но ошибочная ситуация временна, запрошенное действие можно попытаться выполнить позднее). 5хх – Постоянный негативный ответ (команда не принята, пользовательскому процессу не следует выдавать эту же команду снова). Примеры: 150 – Успешный статус, открывается канал данных 200 – Команда принята 220 – Сервис готов для нового пользователя (при установлении соединения) 226 – Канал данных закрыт, операция закончена 227 – Установка пассивного режима (сообщаются IP и порт) 230 – Пользователь авторизован 331 – Пользователь идентифицирован, требуется аутентификация 426 – Канал данных разорван, операция прервана 500, 501 – Синтаксическая ошибка Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Параметры канала данных Тип данных (TYPE):ASCII, IMAGE, (EBCDIC, LOCAL) ASCII – передача 8-битных текстовых данных (TELNET), строки должны заканчиваться <CR><LF> EBCDIC – передача 8-битных текстовых данных в кодировке EBCDIC, строки заканчиваются символом <NL> IMAGE – передача 8-битных бинарных данных LOCAL – передача бинарных данных с указанной длиной байта в битах Структура данных (STRU): FILE, RECORD, PAGE FILE – непрерывная последовательность байт RECORD – последовательная совокупность записей PAGE – нумерованная совокупность независимых страниц Способ передачи данных (MODE): STREAM, BLOCK, COMPRESSED STREAM – поток байт BLOCK – серия блоков данных, предварённых заголовком COMPRESSED – поток данных с комбинациями, управляющими сжатием типа RLE Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Пример FTP-сеанса 220 (vsFTPd 2.0.3) USER anonymous 331 Please specify the password. PASS ftp@localhost 230 Login successful. SYST 215 UNIX Type: L8 PORT 192,168,1,13,12,12 200 PORT command successful. LIST 150 Here comes the directory listing. 226 Directory send OK. PASV 227 Entering Passive Mode (192,168,1,1,154,87) RETR example_racecond.c 150 Opening BINARY mode data connection for example_racecond.c 226 File send OK. QUIT 221 Goodbye. S:(192.168.1.1:20) → C:(192.168.1.13:3084) -rwxr-xr-x 1 1000 1000 14757 a.out -rwxr-xr-x 1 1000 1000 14098 client -rw-r--r-- 1 1000 1000 782 example_fork.c -rw-r--r-- 1 1000 1000 1399 example_ghbn.c ... C:(192.168.1.1:xxx) → S:(192.168.1.1:39511) #include <signal.h> #include <unistd.h> #include <stdio.h> ... 3084=12*256+12, 39511=154*256+87 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ