
- •Содержание
- •L. Ftp-протокол
- •Модели работы ftp
- •Программное обеспечение для осуществления соединения с помощью протокола ftp
- •Службы архивов ftp
- •Некоторые проблемы ftp-серверов
- •Команды ftp протокола
- •Протоколы tftp и sftp
- •2.Алгоритм Штор-Вагнера
- •Список литературы
- •Приложение а ( справочное ) Листинг кода
- •Приложение б ( справочное ) Пример работы программы:
L. Ftp-протокол
FTP (File Transfer Protocol, или “Протокол передачи данных”) - один из старейших протоколов в Internet и входит в его стандарты. Первые спецификации FTP относятся к 1971 году. С тех пор FTP претерпел множество модификаций и значительно расширил свои возможности. FTP может использоваться как в программах пользователей, так и в виде специальной утилиты операционной системы.
FTP предназначен для решения задач разделения доступа к файлам на удаленных хостах, прямого или косвенного использования ресурсов удаленных компьютеров, обеспечения независимости клиента от файловых систем удаленных хостов, эффективной и надежной передачи данных.
Обмен данными в FTP происходит по TCP-каналу. Обмен построен на технологии “клиент-сервер”. FTP не может использоваться для передачи конфиденциальных данных, поскольку не обеспечивает защиты передаваемой информации и передает между сервером и клиентом открытый текст. FTP-сервер может потребовать от FTP-клиента аутентификации (т.е. при присоединении к серверу FTP-пользователь должен будет ввести свой идентификатор и пароль). Однако пароль, и идентификатор пользователя будут переданы от клиента на сервер открытым текстом.
Модели работы ftp
Простейшая модель работы протокола FTP представлена на рисунке 1. В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора протокола пользователя средствами.
Рисунок
1- Модель работы протокола FTP
Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами.
Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с согласованными в сессии управления параметрами.
Канал данных устанавливается для того же хоста, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных.
Алгоритм работы протокола FTP состоит в следующем:
Сервер FTP использует в качестве управляющего соединение на TCP порт 21, который всегда находится в состоянии ожидания соединения со стороны пользователя FTP.
После того как устанавливается управляющее соединение модуля “Интерпретатор протокола пользователя” с модулем сервера — “Интерпретатор протокола сервера”, пользователь (клиент) может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для модуля “Программа передачи данных пользователя”, так и для модуля “Программа передачи данных сервера”), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, которые пользователь хочет совершить (например, сохранить, считать, добавить или удалить данные или файл и другие).
После того как согласованы все параметры канала передачи данных, один из участников соединения, который является пассивным (например, “Программа передачи данных пользователя”), становится в режим ожидания открытия соединения на заданный для передачи данных порт. После этого активный модуль (например, “Программа передачи данных сервера”) открывает соединение и начинает передачу данных.
После окончания передачи данных, соединение между “Программой передачи данных сервера” и “Программой передачи данных пользователя” закрывается, но управляющее соединение “Интерпретатора протокола сервера” и “Интерпретатора протокола пользователя” остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.
Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и прямой канал данных между ними. Команды управления идут через пользователя, а данные - напрямую между серверами. Канал управления должен быть открыт при передаче данных между машинами. Иначе, в случае его закрытия передача данных прекращается. Соединение с двумя серверами показано на рисунке 2.
Рисунок 2- Соединение с двумя серверами
Алгоритм работы при соединении двух FTP-серверов, ни один из которых не расположен на локальном хосте пользователя:
Модуль “Интерпретатор протокола пользователя” указал модулю сервера “Интерпретатор протокола сервера 1” работать в пассивном режиме, после чего модуль “Интерпретатор протокола сервера 1” отправил пользователю адрес и номер порта (N) , который он будет слушать.
Модуль “Интерпретатор протокола пользователя” назначил модуль сервера 2 “Интерпретатор протокола сервера 2” в качестве активного участника соединения и указал ему передавать данные на хост “Интерпретатор протокола сервера 1” на порт (N).
“Интерпретатор протокола пользователя” подал “Интерпретатору протокола сервера 1” команду “сохранить поступившие данные в таком-то файле”, а “Интерпретатор протокола сервера 2” — “передать содержимое такого-то файла”.
Между модулями “Интерпретатор протокола сервера 1” и “Интерпретатор протокола сервера 2” образуется поток данных, который управляется клиентским хостом.
Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных. Сервер FTP должен самостоятельно закрыть канал передачи данных в следующих случаях:
Сервер закончил передачу данных в формате, который требует закрытия соединения.
Сервер получил от пользователя команду “прервать соединение”.
Пользователь изменил параметры порта передачи данных.
Было закрыто управляющее соединение.
Возникли ошибки, при которых невозможно возобновить передачу данных.
Режимы передачи файлов по протоколу FTP
Существует два режима передачи файлов по протоколу FTP:
Текстовый (ASCII) — режим для передачи текстовых файлов, html-документов, php-скриптов и так далее.
Двоичный (бинарный, binary, bin) — режим для передачи картинок, исполняемых файлов, исполняемых cgi-скриптов и так далее. Для обычного пользователя это скорее бесполезные сведения, но иногда они становятся очень актуальными. Например, в случае если вы загружаете на сервер картинку, где она оказывается испорченной и не показывается в браузере, хотя доступна через веб. Это случается когда файл с картинкой (jpg, gif, bmp, png,..), который является двоичным, передается на сервер не в двоичном, а в текстовом режиме. Как правило, это происходит из-за неправильной работы FTP-программы. Текстовые файлы нельзя передавать в двоичном режиме, а двоичные файлы нельзя передавать в текстовом режиме. Вообще, FTP-программы по умолчанию должны сами определять, в каком режиме нужно передавать конкретные файлы. Однако, иногда они ошибаются, и файлы загружаются неправильно. В этом случае придется настроить FTP-программу так, чтобы она правильно передавала нужные виды файлов.