BC/NW 2016 № 2 (29):4.1

РАЗРАБОТКА ПРОГРАММНОЙ МОДЕЛИ СЕТЕВОГО ОБМЕНА ДАННЫМИ

Донеско Л.И.

Целью работы является разработка и реализация программной модели сетевого обмена данными.

На данный момент существует достаточное количество сетевых протоколов передачи данных. У каждого из них есть свои преимущества и недостатки. И в данной работе мы рассмотрим работу одного протокола передачи файлов по сети, а именно протокол FTP (File Transfer Protocol).

Основой алгоритм – это передача данных от одного узла вычислительной сети к другому. Программной реализацией такой модели передачи данных будет являться консольное приложение, так как именно такое приложение можно будет легко использовать как модуль в других прикладных программах, где потребуется сетевой обмен данными.

 

Описание сетевого протокола FTP

FTP (File Transfer Protocol ) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям. Использует 21-й порт. 

Данный протокол был специально создан для облегчения и стандартизации программирования алгоритмов передачи файлов между клиентом и сервером.

Отличительной его особенностью является использование двух соединений между сервером и клиентом. Одно соединение (командное или управляющее) используется для передачи команд серверу, а также приема ответов на эти команды. Второе соединение (соединение данных) используется непосредственно для приема или передачи данных. Управляющее соединение всегда происходит со стороны клиента на порт сервера 21 и остается на протяжении всего сеанса работы открытым. Соединение данных открывается и закрывается по мере необходимости в приеме или получении данных.

Схема работы протокола изображена на рисунке 1.

Рис.1 Схема работы протокола FTP

 

FTP не разрабатывался как защищённый протокол и имеет многочисленные уязвимости в защите:

·         Скрытые атаки;

·         Спуф-атаки;

·         Атаки методом грубой силы;

·         Перехват пакетов, сниффинг;

·         Защита имени пользователя;

·         Захват портов.

FTP не может зашифровать свой трафик, все передачи — открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Обычное решение этой проблемы — использовать «безопасные», TLS-защищённые версии уязвимых протоколов (FTPS для FTP) или же другой, более защищённый протокол, вроде SFTP или SCP.

Разработка программы

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

Описание классов

Для реализации клиент-серверных приложений были написаны базовые классы MyTCP и MyFTP.

Класс MyTCP является базовым классом. Он содержит имена функций, которые будут использоваться в классах-наследниках. Реализация отсутствует.

Класс MyFTP также является базовым классом.

Класс MyTCPClient является наследником MyTCP. Данный класс содержит функции установки соединений.

Класс MyTCPServer содержит функции прослушивания порта.

Класс MyFTPClient - наследник класса MyFTP. Содержит реализацию отправки файла.

Класс MyFTPServer содержит реализацию установки конечной директории и приёма файла.

Диаграмма классов представлена на рисунке 1.

https://pp.vk.me/c629522/v629522539/1e929/BZJcAzGi8K0.jpg

Рис. 1 Диаграмма классов

Алгоритм работы программы

Алгоритм работы программы-клиента представлен на рисунке 2.

https://pp.vk.me/c629522/v629522539/1e986/7M7MptuRZHo.jpg

Рис.2 Алгоритм работы программы-клиента

Алгоритм работы программы-сервера представлен на рисунке 3.

Рис.3 Алгоритм программы-сервера

 

Тестирование программной модели

         Разработанная программная модель состоит из двух независимых приложений, поэтому тестирование будет проводиться в два этапа. На первом этапе проведено тестирование программы-клиента, на втором этапе проведено тестирование программы-сервера и будет проверена работа всей программной модели в целом.

Таблица 1.

План тестирования работоспособности прикладной программы-клиента.

Действие

Ожидаемый результат

1

Указан неправильный адрес сервера

Вывод сообщения «Соединение не удалось»

2

Указано неправильное имя файла

Вывод сообщения «Файл невозможно открыть»

3

Указан только адрес сервера

Вывод сообщения о количествах и типах параметров

4

Указано только имя файла

Вывод сообщения о количествах и типах параметров

5

Параметры не указаны вовсе

Вывод сообщения о количествах и типах параметров

6

Параметры указаны верно

Вывод сообщения об успешной передаче

 

Тест №1.

Запускаем программу-клиент с неправильным адресом сервера.

Результат:

Появляется сообщение о невозможности установить соединение.

Тест №2.

Запускаем программу-клиент с неверным/несуществующим именем файла.

Результат:

Появляется сообщение «Невозможно открыть файл».

 

Тест №3.

При запуске программы-клиент указываем только адрес сервера.

Результат:

Появляется сообщение о том, что параметры указаны неверно.

 

Тест №4.

При запуске программы-клиент указываем только имя файла.

Результат:

Появляется сообщение о том, что параметры указаны неверно.

Тест №5.

Запуск программы без параметров.

Результат:

Вывод сообщения о том, что параметры указаны неверно или не указаны вовсе.

Тест №6.

Запускаем программу с правильными параметрами.

Результат:

Файл успешно передан.

 

Таблица 2

План тестирования работоспособности прикладной программы-сервера.

Действие

Ожидаемый результат

1

Прием неверного файла от клиента

Вывод сообщения «Клиент передал файл»

2

Прием верного файла от клиента

Вывод сообщения «Соединение удалось, но было прервано клиентом»

 

Тест №7.

Принимаем неверный файл от клиента.

Результат:

Появляется сообщение о том, что соединение было установлено и прервано на стороне клиента.

 

Тест №8.

Принимаем верный файл от клиента.

Результат:

Появляется сообщение о том, что соединение было установлено.

 

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

Была рассмотрена большая часть исключительных ситуаций и их обработка программным продуктом. Результаты тестирования полностью отражают функциональные возможности разработанной программной модели, а также ограничения, в рамках которых она разрабатывалась. Программный продукт является законченным проектом и соответствует всем требованиям технического задания.

ЗАКЛЮЧЕНИЕ

 

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

Данная программная модель является частью магистерской работы в области сетевого обмена, что несомненно, приносит ощутимый вклад в дальнейшее написание магистерской работы.

Литература

1.     Таненбаум Э. Компьютерные сети – Питер, 2014г. – 960с.

2.     Столлингс В. Компьютерные системы передачи данных – Вильямс, 2002г. – 928с.

3.     Хабрахабр [электронный ресурс]

https://habrahabr.ru