FTP клиент
Федеральное
агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
“Сибирский
государственный индустриальный университет”
Кафедра
ИТМ
Курсовая работа
по дисциплине:
«Информационные сети»
на тему:
«FTP клиент»
Проверил: Малинов М. Б.
Новокузнецк
2010
СОДЕРЖАНИЕ
ВВЕДЕНИЕ……………………………………………………….
1.ТЕОРЕТИЧЕСКИЙ АНАЛИЗ И ПРОЕКТИРОВАНИЕ……….4
1.1.ПОСТАНОВКА ЗАДАЧИ…………………………………….4
1.2.АРХИТЕКТУРА СИСТЕМЫ…………………………………4
1.3.ПРОТОКОЛ ПРИКЛАДНОГО УРОВНЯ……………………5
1.4.ПРОТОКОЛ ТРАНСПОРТНОГО УРОВНЯ………………....7
1.5.АКТИВЫЙ И ПАССИВНЫЙ РЕЖИМЫ……………………7
1.6.МОДЕЛЬ ПРОТОКОЛА………………………………………8
2.ПРОГРАММНАЯ РЕЛИЗАЦИЯ…………………………………9
2.1.ВЫБОР КОМПОНЕНТОВ……………………………………9
2.2.ПРОЦЕДУРЫ ПОДКЛЮЧЕНИЯ К СЕРВЕРУ И УДАЛЕНИЯ ФАЙЛА/ПАПКИ…………….………………..10
2.3.ОПИСАНИЕ ИНТЕРФЕЙСА…………………...…………. .11
3.ВЫВОДЫ…………………………………………………………
СПИСОК
ЛИТЕРАТУРЫ…………………………………...…..
Введение.
Компьютерная
сеть (вычислительная сеть, сеть передачи
данных) — система связи компьютеров
и/или компьютерного
По назначению компьютерные сети распределяются:
- вычислительные
- информационные
- смешанные (информационно-вычислительные)
Вычислительные сети предназначены главным образом для решения заданий пользователей с обменом данными между их абонентами. Информационные сети ориентированы в основном на предоставление информационных услуг пользователям. Смешанные сети совмещают функции первых двух.
Информационная сеть — сеть, предназначенная для обработки, хранения и передачи данных. Информационная сеть состоит из:
- абонентских и административных систем;
- связывающей их коммуникационной сети.
В зависимости от расстояния между абонентскими системами, информационные сети подразделяются на глобальные, территориальные и локальные. Различают универсальные и специализированные информационные сети.
Одной из самых часто используемых в повседневной жизни программ продвинутого пользователя – FTP-клиент. Закачать html-странички на сервер, слить warez с сервака, качнуть фильмов в локалке – работа FTP клиента. Стоимость таких программ на рынке колеблется от 10 до 100 баксов. Скажи, тебе не хочется срубить столько же, да еще и не особо напрягаясь? Если ты решительно ответил «Да», то усаживайся по удобнее и продолжай читать статью, познавая секреты программирования ftp-клиентов.
File transfer
protocol (Протокол передачи файлов)
берет свое начало с 70-х
FTP— протокол,
предназначенный для передачи файлов
в компьютерных сетях. FTP позволяет подключаться
к серверам FTP, просматривать содержимое
каталогов и загружать файлы с сервера
или на сервер.
1.Теоретический
анализ и проектирование.
1.1.Постановка
задачи.
Цель - разработать программу: FTP клиент, которая может:
- подключаться к FTP серверу в активном и пассивном режимах,
используя имя пользователя и пароль
- скачивать,
загружать и удалять файлы
с сервера
1.2. Архитектура
системы.
FTP-клиент
— программа для упрощения
доступа к FTP серверу. В зависимости
от назначения может либо
В простейшем для пользователя (но при этом наиболее ко́мплексном) случае FTP-клиент представляет из себя эмулятор файловой системы, которая просто находится на другом компьютере. С этой файловой системой можно совершать все привычные пользователю действия: копировать файлы с и на сервер, удалять файлы, создавать новые файлы. В отдельных случаях возможно так же открытие файлов - для просмотра, запуска программ, редактирования. Необходимо учитывать лишь, что открытие файла подразумевает его предварительное скачивание на компьютер пользователя
Благодаря распространенности протокола FTP, простые (с точки зрения реализации) FTP-клиенты есть практически в каждой операционной системе. Однако использование этих клиентов требует навыков использования консоли, а также знания команд протокола для общения с сервером. Так в Windows такой утилитой является ftp.exe. Во многих сборках Linux так же есть утилита ftp.
Файловая
система на удаленном сервере
как правило имеет настройки
прав доступа для различных
Для авторизации FTP-сервер, при подключении к нему FTP-клиента, запрашивает у последнего имя пользователя и пароль. Большинство FTP-клиентов в свою очередь запрашивают эти данные у пользователя в интерактивном режиме. Есть так же и другой способ указать эти данные, включив их в URL FTP-сервера. Так, например, в строке
ftp://krasava:pass@ftp.
ftp:// — указание того, что мы используем протокол FTP
krasava — имя пользователя
: —
разделитель имени
pass — пароль
@ —
разделитель
ftp.superserver.ru — адрес FTP-сервера
Нередки
случаи, когда такой метод указания
имени пользователя и пароля является
единственным, который поддерживает FTP-клиент.
1.3.Протокол
прикладного уровня.
Протокол прикладного уровня — протокол верхнего (7-ого) уровня сетевой модели OSI, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
Протокол пересылки файлов ftp – это протокол прикладного уровня стека TCP/IP .
Работа этого протокола основана на архитектуре “клиент-сервер”.
Команды
и данные, в отличие от большинства
других протоколов передаются по разным
портам. Порт 20 используется для передачи
данных, порт 21 для передачи команд.
Основные команды:
USER. Как правило, эта команда открывает сессию FTP между клиентом и сервером. Аргументом команды является имя (идентификатор) пользователя для работы с файловой системой. Эта команда может подаваться не только в начале, но и в середине сессии, если, например, пользователь желает изменить идентификатор, от имени которого будут проводиться действия. При этом все переменные, относящиеся к старому идентификатору, освобождаются. Если во время изменения идентификатора происходит обмен данными, обмен завершается со старым идентификатором пользователя.
PASS. Данная команда подается после ввода идентификатора пользователя и, в качестве аргумента содержит пароль пользователя. Напомним, что данные аутентификации FTP передаются по сети открытым текстом, поэтому для обеспечения защищенности канала пользователю необходимо предпринимать дополнительные меры.
CWD. Команда позволяет пользователям работать с различными каталогами удаленной файловой системы. Аргументом команды является строка, указывающая путь каталога удаленной файловой системы, в котором желает работать пользователь.
REIN. Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.
QUIT. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи данных.
Команды управления потоком устанавливают параметры передачи данных. Все параметры, описываемые этими командами имеют значение по умолчанию, поэтому команды управления потоком используются только тогда, когда необходимо изменить значение параметров передачи, используемых по умолчанию. Команды управления потоком могут подаваться в любом порядке, но все они должны предшествовать командам FTP-сервиса. Из команд управления потоком данных следует выделить следующие:
PORT. Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятичном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), а pN - байты порта (от старшего к младшему).
PASV. Эта команда отправляется модулю, который будет играть пассивную роль, в передаче данных («слушать» соединение). Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT – «h1, h2, h3, h4, p1, p2».
Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и другие), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и другие). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов.
Команды FTP-сервиса определяют действия, которые необходимо произвести с указанными файлами. Как правило, аргументом команд этой группы является путь к файлу. Синтаксис указанного пути должен удовлетворять требованиям формата файловой системы обработчика команды. Из команд FTP-сервиса можно выделить следующие:
RETR. Эта команда указывает модулю «Программа передачи данных сервера» передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.
STOR. Команда указывает модулю «Программа передачи данных сервера» принять данные по каналу передачи данных и сохранить их как файл, имя которого задано параметром этой команды. Если такой файл уже существует, он будет замещен новым, если нет, будет создан новый.
Команды RNFR и RNTO должны следовать одна за другой. Первая команда содержит в качестве аргумента старое имя файла, вторая - новое. Последовательное применение этих команд переименовывает файл.
ABOR. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.
Команда DELE удаляет указанный файл.
Команды MKD и RMD, соответственно, создают и удаляют указанный в аргументе каталог.
При помощи
команд LIST и NLST можно получить
список файлов в указанном каталоге.
1.4.Протокол
транспортного уровня.
Транспортный уровень (англ. Transport layer) — 4-й уровень сетевой модели OSI предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи.
Transmission Control Protocol (TCP) (протокол управления передачей) — один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.
TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.
Реализация
TCP, как правило, встроена в ядро системы,
хотя есть и реализации TCP в контексте
приложения.
1.5.Активный
и пассивный режимы.
В активном режиме FTP клиент соединяется с произвольного непривилегированного порта (N > 1024) к FTP серверному командному порту 21. Затем, клиент начинает слушать порт N+1 и посылать FTP команду PORT N+1 на FTP сервер. В ответ, сервер соединяется с указанным портом данных клиента из своего локального порта данных 20.
В пассивном
режиме FTP клиент инициирует оба соединения
с сервером, решая проблему с файрволами,
которые фильтруют входящий порт
данных клиента. При открытии FTP соединения,
клиент локально открывает два непривилегированных
порта (N > 1024 и N+1). Первый порт контактирует
с сервером на порт 21, но вместо того, чтобы
затем выдать команду PORT и позволить серверу
в ответ соединиться с его портом данных,
клиент выдает команду PASV. В результате
сервер открывает произвольный непривилегированный
порт (P > 1024) и посылает клиенту команду
PORT P. Затем, для передачи данных, клиент
инициирует соединение от порта N+1 к порту
P на сервере.
1.6.Модель протокола.
2.Программная
реализация.
2.1.Выбор
компонентов.
Программа разработана на языке программирования Delphi.
Главным
компонентом, используемым в моей программе
является компонент библиотеки Indy IdFTP.Он
предназначен для работы с протоколом
FTP, с помощью которого реализуется FTP клиент.
2.2.Процедуры
подключения к серверу
и удаления файла/папки
procedure TForm1.ConnectButtonClick(
begin
if IdFTP1.Connected
then
try
if TransferData
then IdFTP1.Abort;
IdFTP1.Quit;
finally
ListBox1.Items.Clear;
ConnectButton.Caption:='
EditChangeDir.Text:='';
end
else
with IdFTP1 do try
Username:=EditUserName.Text;
Password:=EditPassword.Text;
Host:=EditFTPServName.Text;
Connect;
ChangeDir(EditChangeDir.Text);
finally
if Connected
then
begin
ConnectButton.Caption:='
end;
end;
end;
procedure TForm1.DeleteButtonClick(
var
Name: string;
begin
if not IdFTP1.Connected
then Exit;
Name:=IdFTP1.DirectoryListing.
if IdFTP1.DirectoryListing.Items[
then try
idftp1.RemoveDir(Name);
ChangeDir(idftp1.
finally
end
else
try
idftp1.Delete(Name);
ChangeDir(idftp1.
finally
end;
end;
2.3.Описание
интерфейса.
Чтобы
начать работу, нужно ввести адрес
ftp сервера, имя пользователя и пароль.
Возможно включение пассивного соединения.
После нажатия на кнопку Connect произойдёт
подключение к серверу, после повторного
нажатия – отключение от сервера.
3.Выводы.
В своей курсовой работе я разработал FTP клиент, реализовав следующие задачи:
- Подключение к FTP серверу, используя имя пользователя и пароль;
- Может скачивать, загружать, удалять файлы с сервера;
- Позволяет
создавать и удалять новые
директории.
Список
литературы.
1.Фаронов В.В. Delphi.Программирование на языке высокого уровня – СПб:.Питер,2008-640с.
2 .Свободная энциклопедия http://ru.wikipedia.org/.
- Functions of HR management
- Fyfkbp cостояния рынка торговли пушно-меховых товаров
- Fвтоматизированный расчет инвестиционного проекта в среде пакета Project Expert
- Games activity at the foreign language lesson as one of the basic ways of learning English at primary school
- Game technology as a tool of developing interest in foreign language learning
- General american English
- General description and history of Orenburg
- Flash-технологии в Web-документах
- Fmea анализ
- Foods Commercials in English-Speaking Media: Linguistic Study
- Football in Russia and Great Britain
- Foreign banks on the financial market of Kazakhstan
- Formen der Negation
- Frame Relay. Организация канального и сетевого уровней