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