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.
Рис. 1 Диаграмма классов
Алгоритм работы программы
Алгоритм работы программы-клиента представлен на рисунке 2.
Рис.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