FTP-клиент
Разработка программы FTP-клиент, которая может подключаться к серверу в активном и пассивном режимах, используя имя пользователя и пароль; скачивать, загружать и удалять файлы с сервера. Протоколы прикладного и транспортного уровней. Описание интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.07.2013 |
Размер файла | 149,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
“Сибирский государственный индустриальный университет”
Кафедра ИТМ
Курсовая работа
по дисциплине: «Информационные сети»
на тему: «FTP-клиент»
Выполнил: ст. гр. ИСМ-07
Титов А.И.
Новокузнецк 2013
Введение
Компьютерная сеть (вычислительная сеть, сеть передачи данных) -- система связи компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило -- различные виды электрических сигналов, световых сигналов или электромагнитного излучения.
По назначению компьютерные сети распределяются:
- вычислительные
- информационные
- смешанные (информационно-вычислительные)
Вычислительные сети предназначены главным образом для решения заданий пользователей с обменом данными между их абонентами. Информационные сети ориентированы в основном на предоставление информационных услуг пользователям. Смешанные сети совмещают функции первых двух.
Информационная сеть -- сеть, предназначенная для обработки, хранения и передачи данных. Информационная сеть состоит из:
- абонентских и административных систем;
- связывающей их коммуникационной сети.
В зависимости от расстояния между абонентскими системами, информационные сети подразделяются на глобальные, территориальные и локальные. Различают универсальные и специализированные информационные сети.
Одной из самых часто используемых в повседневной жизни программ продвинутого пользователя - FTP-клиент. Закачать html-странички на сервер, слить warez с сервака, качнуть фильмов в локалке - работа FTP клиента. Стоимость таких программ на рынке колеблется от 10 до 100 баксов. Скажи, тебе не хочется срубить столько же, да еще и не особо напрягаясь? Если ты решительно ответил «Да», то усаживайся по удобнее и продолжай читать статью, познавая секреты программирования ftp-клиентов.
File transfer protocol (Протокол передачи файлов) берет свое начало с 70-х годов. Именно в то время, возникла необходимость в создании протокола, который смог бы решить проблему передачи файлов с одного компьютера к другому. На протяжении 30 лет протокол неоднократно изменялся и совершенствовался.
FTP--протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер.
сервер клиент протокол файл
1. Теоретический анализ и проектирование
1.1 Постановка задачи
Цель - разработать программу: FTP клиент, которая может:
- подключаться к FTP серверу в активном и пассивном режимах, используя имя пользователя и пароль
- скачивать, загружать и удалять файлы с сервера
1.2 Архитектура системы
FTP-клиент -- программа для упрощения доступа к FTP серверу. В зависимости от назначения может либо предоставлять пользователю простой доступ к удаленному FTP-серверу в режиме текстовой консоли, беря на себя только работу по пересылке команд пользователя и файлов, либо отображать файлы на удаленном сервере как если бы они являлись частью файловой системы компьютера пользователя, либо и то и другое. В последних двух случаях FTP-клиент берет на себя задачу интерпретации действий пользователя в команды протокола FTP, тем самым давая возможность использовать протокол передачи файлов без ознакомления со всеми его премудростями.
В простейшем для пользователя (но при этом наиболее коммплексном) случае FTP-клиент представляет из себя эмулятор файловой системы, которая просто находится на другом компьютере. С этой файловой системой можно совершать все привычные пользователю действия: копировать файлы с и на сервер, удалять файлы, создавать новые файлы. В отдельных случаях возможно так же открытие файлов - для просмотра, запуска программ, редактирования. Необходимо учитывать лишь, что открытие файла подразумевает его предварительное скачивание на компьютер пользователя
Благодаря распространенности протокола FTP, простые (с точки зрения реализации) FTP-клиенты есть практически в каждой операционной системе. Однако использование этих клиентов требует навыков использования консоли, а также знания команд протокола для общения с сервером. Так в Windows такой утилитой является ftp.exe. Во многих сборках Linux так же есть утилита ftp.
Файловая система на удаленном сервере как правило имеет настройки прав доступа для различных пользователей. Так, например, анонимным пользователям могут быть доступны лишь некоторые файлы, о существовании других пользователи знать не будут. Другой группе пользователей могут быть доступны другие файлы или, например, в дополнение к правам на чтение файлов, могут быть так же даны права на запись новых или обновление имеющихся файлов. Диапазон вариантов прав доступа зависит от операционной системы и программного обеспечения каждого конкретного FTP-сервера. Как правило, разделяют права на просмотр содержимого папки (т.е. возможность получить список содержащихся в ней файлов), на чтение файла(ов), на запись (создание, удаление, обновление) файла(ов)
Для авторизации FTP-сервер, при подключении к нему FTP-клиента, запрашивает у последнего имя пользователя и пароль. Большинство FTP-клиентов в свою очередь запрашивают эти данные у пользователя в интерактивном режиме. Есть так же и другой способ указать эти данные, включив их в URL FTP-сервера. Так, например, в строке
ftp://krasava:pass@ftp.someserver.com
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(Sender: TObject);//подключение к серверу
begin
if IdFTP1.Connected
then
try
if TransferData
then IdFTP1.Abort;
IdFTP1.Quit;
finally
ListBox1.Items.Clear;
ConnectButton.Caption:='Connect';
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:='Disconnect';
end;
end;
end;
procedure TForm1.DeleteButtonClick(Sender: TObject); //удаление файла/папки
var
Name: string;
begin
if not IdFTP1.Connected
then Exit;
Name:=IdFTP1.DirectoryListing.Items[ListBox1.ItemIndex].FileName;
if IdFTP1.DirectoryListing.Items[ListBox1.ItemIndex].ItemType=ditDirectory
then try
idftp1.RemoveDir(Name);
ChangeDir(idftp1.RetrieveCurrentDir);
finally
end
else
try
idftp1.Delete(Name);
ChangeDir(idftp1.RetrieveCurrentDir);
finally
end;
end;
2.3 Описание интерфейса
Чтобы начать работу, нужно ввести адрес ftp сервера, имя пользователя и пароль. Возможно включение пассивного соединения. После нажатия на кнопку Connect произойдёт подключение к серверу, после повторного нажатия - отключение от сервера.
Выводы
В своей курсовой работе я разработал FTP клиент, реализовав следующие задачи:
- Подключение к FTP серверу, используя имя пользователя и пароль;
- Может скачивать, загружать, удалять файлы с сервера;
- Позволяет создавать и удалять новые директории.
Список литературы
1. Фаронов В.В. Delphi.Программирование на языке высокого уровня - СПб:.Питер,2008-640с.
2 .Свободная энциклопедия http://ru.wikipedia.org/.
Размещено на Allbest.ru
Подобные документы
Описание предметной области и разработка электронного учебника на основе архитектуры "клиент – сервер". Тестирование программы менеджера и создание интерфейса главного меню. Вход в программу в качестве пользователя и обеспечение перехода к данным лекций.
курсовая работа [1,5 M], добавлен 26.02.2015Файловая и сетевая системы операционной системы Windows. Характеристика модели "клиент-сервер". Функциональные требования и архитектура программы, которая должна обеспечивать передачу файлов от клиента к серверу, сервера к клиенту, обмен сообщениями.
курсовая работа [1,4 M], добавлен 24.04.2013Создание программного продукта на основании клиент-серверной технологии, реализующего отказоустойчивую работу системы, которая способна в случае потери связи с ведущим сервером подключить клиента к альтернативному серверу (на примере сервера погоды).
курсовая работа [238,0 K], добавлен 24.08.2012Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.
курсовая работа [869,3 K], добавлен 18.05.2014Запросы клиента по области возможных запросов к серверу. Программа для прогнозирования поведения надежности программного обеспечения на основе метода Монте-Карло. Влияние количества программ-клиентов на поведение программной системы клиент-сервера.
контрольная работа [705,3 K], добавлен 03.12.2010Характеристика разновидностей программной реализации чатов. Разработка программы клиент-серверного чата с возможность общения в локальной сети нескольких человек одновременно. Протокол взаимодействия клиента и сервера. Порядок работы с программой.
курсовая работа [530,7 K], добавлен 25.04.2015Архитектура "клиент-сервер". Системный анализ базы данных "Газета объявлений", ее инфологическое и физическое проектирование. Программирование на стороне SQL-сервера. Разработка клиентской части в Borland C++ Builder 6.0 и с помощью Web-технологий.
курсовая работа [1,3 M], добавлен 07.07.2013Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.
курсовая работа [191,5 K], добавлен 07.01.2015Основные концепции разработки приложения в трёхуровневой архитектуре. Проектное решение, реализующее модель реляционной БД. Спецификация на разработку интерфейса. Описание выполнения транзакций прибытия и убытия судна. Инсталляционные файлы приложения.
курсовая работа [4,0 M], добавлен 26.12.2011