Скачиваний:
9
Добавлен:
25.06.2023
Размер:
3.77 Mб
Скачать

ВОПРОС 54 ПРОТОКОЛ FTP С2 ftp расшифровывается file transfer protocol. протокол передачи файлов это один из самых старых протоколов которые мы будем изучать. ftp придумали в 1971 году, еще до того как появились протокола TCP и IP. сначала ftp работал поверх протокола NCP. версия на основе TCP/IP появилась в 1980 году, и в 1985 году была принята спецификации FTP которой мы пользуемся до сих пор. позже в нее были добавлены некоторые полезные расширения такие как пассивный режим и поддержка IP версия 6. С3 в стеке TCP/IP ftp находится на прикладном уровне. С4 протокол ftp работает в режиме клиент-сервер. на сервере есть некоторая файловая система. это структура каталогов в которой находятся файлы. клиент по протоколу ftp подключается к серверу и может работать с файловой системой - просматривать каталоги, переходить между ними, загружать файлы сервера и записывать их на сервер, перемещать между разными каталогами и выполнять другие операции которые можно делать с файловой системой. С5 протокол ftp также какие http для адресации файлов используют url - и состоит из 3х частей. первая часть - идентификатор протокола ftp. 2 часть - имя сервера. здесь может быть DNS имя либо IP адрес. и третья часть - это путь к файлу к файловой системе и само имя файла. С6 в отличие от других протоколов прикладного уровня которые мы изучали, протокол ftp использует два отдельных соединения. первое соединение управляющее, второе соединение для передачи данных. С7 ftp использует протокол TCP для управляющего соединения на сервере используется порт 21. соединение для данных может быть установлено в двух режимах - в активном и пассивном. при этом используются разные номера портов. С8 в активном режиме FTP инициатором установки соединения для передачи данных является сервер. в этом случае используется порт 20 на сервере. а со стороны клиента борт больше 1024. однако если между клиентом и сервером находится межсетевой экран или устройство трансляции сетевых адресов NAT, то сервер установить соединение с клиентом не сможет. С9 в этом случае используется пассивный режим, при котором соединение для передачи данных устанавливает клиент. в пассивном режиме и на клиенте и на сервере используются порты с номерами больше чем 1024. С10 протокол FTP требует чтобы пользователь прошел аутентификацию. для этого необходимо ввести идентификатор и пароль. в зависимости от идентификатора пользователя ему может быть предоставлено больше или меньше прав для доступа к файловой системы сервера. также есть специальный тип пользователя ftp которые называются анонимный. для анонимного пользователя в качестве логина используется ftp или anonymous, а в качестве пароля может использоваться все что угодно, но рекомендуется использовать свой e-mail. как правило анонимный пользователь имеют очень ограниченные права. обычно он может только скачивать файлы и может быть записывать файлы в какой-то один определенный каталог. С11 протокол ftp какие многие протоколы прикладного уровня которые мы уже изучали работают в текстовом режиме. команды FTP очень похожи на команды протокола pop3. большинство из них также состоит из четырех символов. команда USER и PASS используется для аутентификации, команда LIST позволяет посмотреть содержимое текущего каталога. CWD поменять текущий каталог. команда RETR позволяет загрузить файл с сервера на клиент (аналогичная команда в протоколе pop3 позволяет загрузить письмо с почтового сервера на клиент). для того чтобы сохранить файл на сервере используется команда STOR. протокол ftp может передавать данные в двух режимах - текстовом и бинарном. в текстовом режиме возможна отправка управляющих символов которые будут обработаны специальным образом. в бинарном режиме обработка специальных символов не производится. для выбора режима, который будет использоваться для передачи файлов, служит команда TYPE. команда DELE позволяет удалить файлы. команды MKD и RMD используется для создания и удаления каталогов. по умолчанию ftp сервер работает в активном режиме, то есть соединение для передачи данных устанавливает сервер. команда PASV служит для перехода в пассивный режим. команда QUIT используется для корректного закрытия соединения FTP после того как все необходимые операции с файлами и каталогами и были завершены. С12 рассмотрим пример сеанса FTP. мы подключились к серверу на порт 21. создали управляющие соединение. сервер нам выдал ответ. ответы ftp сервера, также какие ответы серверов многих прикладных протоколов, состоят из двух частей - первая это статус, а вторая поясняющие сообщения. статус ответов 220 (коды которые начинаются с двойки говорят об успешном выполнении команды) поясняющие сообщения содержат приветствие - "добро пожаловать на ftp-сервер". сначала нам необходимо пройти аутентификацию. для этого используется команда USER и мы хотим подключиться как анонимный пользователь. сервер отвечает сообщением со статусом 331 - код который начинается с тройки говорит о том что предыдущая команда была выполнена успешно, и ожидается продолжение выполнения связанных действий. в данном случае сервер говорит что он принимает гостевой логин, то есть идентификатор анонимного пользователя, и просит прислать ваш e-mail в качестве пароля. в данном случае это отрывок из ftp сессии который используется для загрузки файлов из браузера chrome. chrome в качестве пароля отправляет строку которая похожа на e-mail. сервер никак не анализирует email которую ему передали, просто говорить что аутентификация прошла успешно, но права доступа ограничены. и устанавливаем бинарный режим передачи файлов с помощью команды TYPE 1. сервер отвечает что тип передачи данных успешно установлен в один. мы хотим загрузить сервера файл, показан к нему путь, но перед тем как загрузить мы хотим узнать его размер. для этого выдаем команду SIZE и указываем путь к файлу. сервер в ответ выдает размер файла в байтах. С13 мы переходим в пассивный режим с помощью команду PASV. в ответ сервер говорит что он перешел в пассивный режим и передает нам шесть чисел которые нужно использовать для установки соединения для передачи данных. первые четыре числа это IP адрес 213.71.6.142, а вторые два числа используются для того чтобы узнать порт на который нужно установить соединение. первое число нужно умножить на 256 и прибавить второе число. так мы узнаем порт. для того чтобы загрузить нужную и нам файл используем команду RETR. после того как мы выдали эту команду сервер ждет что мы установим соединение с IP адресом и портом которые он нам указал. после того как соединение для передачи данных установлено, сервер сообщает нам об этом в управляющем соединении. также он говорит что передача данных ведется в бинарном режиме. после того как передача файла закончена сервер сообщает нам об этом. клиент выдает команду quit для того чтобы разорвать соединение. сервер сообщает нам некоторую статистику - сколько мы передали байтов и сколько файлов, и говорит "досвидания". на этом сеанс работы по протоколу ftp завершён. С14 итак мы рассмотрели протокол ftp file transfer protocol, который используется для передачи файлов. до появления протокола HTTP ftp очень активно использовался. сейчас он используется гораздо реже, например многие хостинговые компании используют ftp для загрузки файлов на веб-сервер, которые потом уже передаются по протоколу HTTP. протокол ftp в отличие от большинства других протоколов прикладного уровня использует два соединения - управляющие соединение и соединение для передачи данных. использование отдельного соединения для передачи данных, которое традиционно инициируется со стороны сервера, приводит к проблемам в работе FTP с межсетевыми экранами и устройствами NAT. для решения этой проблемы был придуман пассивный режим ftp при котором соединение для передачи данных устанавливается со стороны клиента. другой существенной проблемы протокола ftp является низкая безопасность. идентификатор пользователя и пароль передаются по сети в открытом виде. также в открытом виде передаются всех данные. таким образом злоумышленник может легко узнать ваш пароль на ftp сервер и перехватить данные которые вы пересылаете. низкая безопасность является еще одной причиной по которой FTP используется все реже и реже. сейчас вместо него все чаще используется протокол и на основе SSH - secure shell это secure ftp и secure copy protocol

212

Соседние файлы в папке ЛЕКЦИИ