FTP-клиент

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    85,78 Кб
  • Опубликовано:
    2013-07-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

FTP-клиент

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

“Сибирский государственный индустриальный университет”

Кафедра ИТМ








Курсовая работа

по дисциплине: «Информационные сети»

на тему: «FTP-клиент»


Выполнил: ст. гр. ИСМ-07

Титов А.И.






Новокузнецк 2013

Введение

Компьютерная сеть (вычислительная сеть, сеть передачи данных) - система связи компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило - различные виды электрических сигналов, световых сигналов или электромагнитного излучения.

По назначению компьютерные сети распределяются:

вычислительные

информационные

смешанные (информационно-вычислительные)

Вычислительные сети предназначены главным образом для решения заданий пользователей с обменом данными между их абонентами. Информационные сети ориентированы в основном на предоставление информационных услуг пользователям. Смешанные сети совмещают функции первых двух.

Информационная сеть - сеть, предназначенная для обработки, хранения и передачи данных. Информационная сеть состоит из:

абонентских и административных систем;

связывающей их коммуникационной сети.

Одной из самых часто используемых в повседневной жизни программ продвинутого пользователя - FTP-клиент. Закачать html-странички на сервер, слить warez с сервака, качнуть фильмов в локалке - работа FTP клиента. Стоимость таких программ на рынке колеблется от 10 до 100 баксов. Скажи, тебе не хочется срубить столько же, да еще и не особо напрягаясь? Если ты решительно ответил «Да», то усаживайся по удобнее и продолжай читать статью, познавая секреты программирования ftp-клиентов.transfer protocol (Протокол передачи файлов) берет свое начало с 70-х годов. Именно в то время, возникла необходимость в создании протокола, который смог бы решить проблему передачи файлов с одного компьютера к другому. На протяжении 30 лет протокол неоднократно изменялся и совершенствовался.

FTP-протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер.

сервер клиент протокол файл

1. Теоретический анализ и проектирование

.1 Постановка задачи

Цель - разработать программу: FTP клиент, которая может:

подключаться к FTP серверу в активном и пассивном режимах, используя имя пользователя и пароль

скачивать, загружать и удалять файлы с сервера

.2 Архитектура системы

клиент - программа для упрощения доступа к FTP серверу. В зависимости от назначения может либо предоставлять пользователю простой доступ к удаленному FTP-серверу в режиме текстовой консоли, беря на себя только работу по пересылке команд пользователя и файлов, либо отображать файлы на удаленном сервере как если бы они являлись частью файловой системы компьютера пользователя, либо и то и другое. В последних двух случаях FTP-клиент берет на себя задачу интерпретации действий пользователя в команды протокола FTP, тем самым давая возможность использовать протокол передачи файлов без ознакомления со всеми его премудростями.

В простейшем для пользователя (но при этом наиболее ко́мплексном) случае FTP-клиент представляет из себя эмулятор файловой системы, которая просто находится на другом компьютере. С этой файловой системой можно совершать все привычные пользователю действия: копировать файлы с и на сервер, удалять файлы, создавать новые файлы. В отдельных случаях возможно так же открытие файлов - для просмотра, запуска программ, редактирования. Необходимо учитывать лишь, что открытие файла подразумевает его предварительное скачивание на компьютер пользователя

Благодаря распространенности протокола FTP, простые (с точки зрения реализации) FTP-клиенты есть практически в каждой операционной системе. Однако использование этих клиентов требует навыков использования консоли, а также знания команд протокола для общения с сервером. Так в Windows такой утилитой является ftp.exe. Во многих сборках Linux так же есть утилита ftp.

Файловая система на удаленном сервере как правило имеет настройки прав доступа для различных пользователей. Так, например, анонимным пользователям могут быть доступны лишь некоторые файлы, о существовании других пользователи знать не будут. Другой группе пользователей могут быть доступны другие файлы или, например, в дополнение к правам на чтение файлов, могут быть так же даны права на запись новых или обновление имеющихся файлов. Диапазон вариантов прав доступа зависит от операционной системы и программного обеспечения каждого конкретного FTP-сервера. Как правило, разделяют права на просмотр содержимого папки (т.е. возможность получить список содержащихся в ней файлов), на чтение файла(ов), на запись (создание, удаление, обновление) файла(ов)

Для авторизации FTP-сервер, при подключении к нему FTP-клиента, запрашивает у последнего имя пользователя и пароль. Большинство FTP-клиентов в свою очередь запрашивают эти данные у пользователя в интерактивном режиме. Есть так же и другой способ указать эти данные, включив их в URL FTP-сервера. Так, например, в строке://krasava:pass@ftp.someserver.com:// - указание того, что мы используем протокол FTP

krasava - имя пользователя

: - разделитель имени пользователя и пароля

pass - пароль

@ - разделитель аутентификационной информации и адреса сервера.superserver.ru - адрес FTP-сервера

Нередки случаи, когда такой метод указания имени пользователя и пароля является единственным, который поддерживает FTP-клиент.

.3 Протокол прикладного уровня

Протокол пересылки файлов ftp - это протокол прикладного уровня стека TCP/IP .

Работа этого протокола основана на архитектуре “клиент-сервер”.

Команды и данные, в отличие от большинства других протоколов передаются по разным портам. Порт 20 используется для передачи данных, порт 21 для передачи команд.

Основные команды:. Как правило, эта команда открывает сессию FTP между клиентом и сервером. Аргументом команды является имя (идентификатор) пользователя для работы с файловой системой. Эта команда может подаваться не только в начале, но и в середине сессии, если, например, пользователь желает изменить идентификатор, от имени которого будут проводиться действия. При этом все переменные, относящиеся к старому идентификатору, освобождаются. Если во время изменения идентификатора происходит обмен данными, обмен завершается со старым идентификатором пользователя.. Данная команда подается после ввода идентификатора пользователя и, в качестве аргумента содержит пароль пользователя. Напомним, что данные аутентификации FTP передаются по сети открытым текстом, поэтому для обеспечения защищенности канала пользователю необходимо предпринимать дополнительные меры.. Команда позволяет пользователям работать с различными каталогами удаленной файловой системы. Аргументом команды является строка, указывающая путь каталога удаленной файловой системы, в котором желает работать пользователь.. Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи данных.

Команды управления потоком устанавливают параметры передачи данных. Все параметры, описываемые этими командами имеют значение по умолчанию, поэтому команды управления потоком используются только тогда, когда необходимо изменить значение параметров передачи, используемых по умолчанию. Команды управления потоком могут подаваться в любом порядке, но все они должны предшествовать командам FTP-сервиса. Из команд управления потоком данных следует выделить следующие:. Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятичном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), а pN - байты порта (от старшего к младшему).. Эта команда отправляется модулю, который будет играть пассивную роль, в передаче данных («слушать» соединение). Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT - «h1, h2, h3, h4, p1, p2».

Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и другие), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и другие). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов.

Команды FTP-сервиса определяют действия, которые необходимо произвести с указанными файлами. Как правило, аргументом команд этой группы является путь к файлу. Синтаксис указанного пути должен удовлетворять требованиям формата файловой системы обработчика команды. Из команд FTP-сервиса можно выделить следующие:. Эта команда указывает модулю «Программа передачи данных сервера» передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.. Команда указывает модулю «Программа передачи данных сервера» принять данные по каналу передачи данных и сохранить их как файл, имя которого задано параметром этой команды. Если такой файл уже существует, он будет замещен новым, если нет, будет создан новый.

Команды RNFR и RNTO должны следовать одна за другой. Первая команда содержит в качестве аргумента старое имя файла, вторая - новое. Последовательное применение этих команд переименовывает файл.. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.

Команда DELE удаляет указанный файл.

Команды MKD и RMD, соответственно, создают и удаляют указанный в аргументе каталог.

При помощи команд LIST и NLST можно получить список файлов в указанном каталоге.

.4 Протокол транспортного уровня

Транспортный уровень (англ. Transport layer) - 4-й уровень сетевой модели OSI предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи.

Transmission Control Protocol (TCP) (протокол управления передачей) - один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.

TCP - это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета (см. также T/TCP). В отличие от UDP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.

Реализация TCP, как правило, встроена в ядро системы, хотя есть и реализации TCP в контексте приложения.

.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. Программная реализация

.1 Выбор компонентов

Программа разработана на языке программирования Delphi.

Главным компонентом, используемым в моей программе является компонент библиотеки Indy IdFTP.Он предназначен для работы с протоколом FTP, с помощью которого реализуется FTP клиент.

.2 Процедуры подключения к серверу и удаления файла/папки

procedure TForm1.ConnectButtonClick(Sender: TObject);//подключение к серверуIdFTP1.ConnectedTransferDataIdFTP1.Abort;.Quit;.Items.Clear;.Caption:='Connect';.Text:='';IdFTP1 do try:=EditUserName.Text;:=EditPassword.Text;:=EditFTPServName.Text;;(EditChangeDir.Text);Connected.Caption:='Disconnect';;;;TForm1.DeleteButtonClick(Sender: TObject); //удаление файла/папки: string;not IdFTP1.ConnectedExit;:=IdFTP1.DirectoryListing.Items[ListBox1.ItemIndex].FileName;IdFTP1.DirectoryListing.Items[ListBox1.ItemIndex].ItemType=ditDirectorytry.RemoveDir(Name);(idftp1.RetrieveCurrentDir);.Delete(Name);(idftp1.RetrieveCurrentDir);;;

.3 Описание интерфейса


Чтобы начать работу, нужно ввести адрес ftp сервера, имя пользователя и пароль. Возможно включение пассивного соединения. После нажатия на кнопку Connect произойдёт подключение к серверу, после повторного нажатия - отключение от сервера.

Выводы

В своей курсовой работе я разработал FTP клиент, реализовав следующие задачи:

Подключение к FTP серверу, используя имя пользователя и пароль;

Может скачивать, загружать, удалять файлы с сервера;

Позволяет создавать и удалять новые директории.

Список литературы

1. Фаронов В.В. Delphi.Программирование на языке высокого уровня - СПб:.Питер,2008-640с.

.Свободная энциклопедия http://ru.wikipedia.org/.

Похожие работы на - FTP-клиент

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!