Разработка ПО для вычисления моментных
Характеристика трафика передачи данных. Показатель взрывообразного характера, терпимость к задержкам, пропускная способность сети. Разработка графического интерфейса. Описание метода фильтрации трафика. Использование программного обеспечения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 4,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Актуальность. В настоящее время широкое распространение получили сетевые системы обмена данными. Сети объединяют огромное количество, как обычных компьютеров, так и всевозможных интеллектуальных устройств. Трафик средней сети измеряется уже гигабайтами. В таких условиях важно оптимизировать работу. Анализ сетевого трафика на сегодняшний день -- очень обширная тема. Под «анализом сетевого трафика» мы будем понимать совокупное название технологий и их реализаций, позволяющих проводить накопление, обработку, классификацию, контроль и модификацию сетевых пакетов в зависимости от их содержимого в реальном времени.
В данной работе мы будем анализировать трафик по нескольким характеристикам, таким как: коэффициент вариации трафика, его ассиметрию, задержка, первый начальный момент, второй начальный момент, третий начальный момент и выборочная дисперсия.
Подробнее об этом писал Тарасов В.Н. в своей статье “Анализ входящего трафика на уровне трех моментов распределений временных интернвалов”.
Разрабатываемое программное обеспечение может стать незаменимым инструментом для системных администраторов локальных сетей, интернет-провайдеров и домашних пользователей.
Целью данной работы является реализация программного обеспечения, которое будет проводить анализ сетевого трафика.
Задача бакалаврской работы заключается в разработке программного обеспечения для вычисления моментных характеристик трафика сети.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Изучить предметную область.
2. Разработать графический интерфейс.
3. Описать метод фильтрации трафика.
4. Вычислить моментные характеристики трафика.
Объектом исследования является сетевой трафик. Предметом исследования - моментные характеристики сетевого трафика.
Бакалаврская работа состоит из трех глав. В первой главе рассматриваются основные языки разработки и среды разработки программного обеспечения, также проводится обзор существующих программ анализаторов трафика сети. Вторая глава описывает разработку программного обеспечения для вычисления моментных характеристик трафика. В третьей главе мы показываем, как используется наша программа: запуск ПО, первичные настройки, вывод графических результатов, определение моментных характеристик.
1 Общие сведения
1.1 Основные термины
Компьютерная сеть -- система, обеспечивающая обмен данными между вычислительными устройствами (компьютеры,серверы, коммутаторы и другое оборудование).
Вычислительную сеть представляют как совокупность узлов (компьютеров и сетевого оборудования) и соединяющих их каналов связи. Канал связи -- это путь, соединяющий два смежных узла. Различают узлы конечные, расположенные в конце только одной ветви, промежуточные, расположенные на концах более чем одной ветви, и смежные -- такие узлы соеденены, по крайней мере, одним путём, не содержащим никаких других узлов.
Можно выделить следующие характеристики трафика передачи данных:
· показатель взрывообразного характера трафика;
· терпимость к задержкам;
· требуемая емкость и пропускная способность сети.
«Взрывообразность» характеризует частоту посылки трафика пользователем. Чем чаще пользователь посылает свои данные в сеть, тем она больше. Пользователь, который посылает данные регулярно, в одном темпе, сводит показатель «взрывообразности» практически к нулю. Этот показатель можно определить отношением пикового значения плотности трафика к ее среднему значению.
Терпимость к задержкам показывает реакцию приложений на все временные задержки в сети. Например, приложения, обрабатывающие финансовые транзакции в реальном масштабе времени, не допускают задержек. Большие задержки могут привести к неправильной работе таких приложений. Для приложений, которые работают в реальном масштабе времени (например, для видеоконференций), время задержки не должно превышать некоторого предельного значения, которое достаточно мало. С другой стороны, для некоторых приложений допустимые значения задержки могут составлять от нескольких минут до нескольких часов (например, для электронной почты и загрузки файлов).
Понятия емкости и пропускной способности сети похожи между собой, но, по сути, они разные. Емкость это реальное количество ресурсов, доступных пользователю на определенном пути передачи данных. Пропускная способность сети определяется общим количеством данных, которые могут быть переданы за единицу времени.
Ассиметрия трафика - передача информации в прямом и обратном направлениях с различными скоростями.
Моментные характеристики - это характеристики распределения интервалов между пакетами входящего трафика. Эти характеристики позволяют анализировать трафик методами теории массового обслуживания.[1]
1.2 Обзор аналогов
CommView. Программа позволяет наглядно увидеть полную картину трафика, проходящего через компьютер или участок локальной сети; настраиваемая система уведомлений позволяет предупреждать о наличии в трафике подозрительных пакетов, появлении в сети узлов с нештатными адресами или повышении сетевой нагрузки (рис. 1.1).
Wireshark. Сниффер, обладает богатыми возможностями. Для начала работы вам нужно выбрать сетевой адаптер, по которому будут перехватываться все пакеты. Сниффер поддерживает работу с разными интерфейсами от Ethernet до Bluetooth и USB. По каждому из пакетов предоставляется подробная информация, которую вы можете просматривать в текстовом виде, или в виде HEX-кодов. Работа с пакетами производится посредством трехпанельного интерфейса. Вверху панели отображается каждый перехваченный пакет сетевого трафика. Тут вы видите такую основную информацию, как IP адрес отправителя, IP адрес получателя и протокол. Ниже отображаются все подробные данные. А в последней, самой нижней части панели, вы сможете просмотреть содержимое пакета (рис. 1.2).
Рис. 1.1 - окно программы CommView
Colasoft Capsa. Этот анализатор трафика сети позволяет идентифицировать и отслеживать более 300 сетевых протоколов, и позволяет создавать настраиваемые отчеты. Он включает в себя мониторинг электронной почты и диаграммы последовательности TCP-синхронизации, все это собрано в одной настраиваемой панели (рис. 1.3).
Кроме различных сетевых инструментов, в программе есть плагины анализа доступа к сайтам, эл. почты, транзакций. Используя эту утилиту, вы сможете контролировать сетевую активность, увеличить уровень безопасности и повысить скорость сети.
Рис. 1.2 - окно программы Wireshark
Рис. 1.3 - окно программы Colasoft Capsa
NetWorx. Программа работает с любым кабельным, беспроводным подключением, а также модемом, предоставляя полную детальную статистику, отчет и график вашей работы в сети. Входящий и исходящий трафик представляется на линейной диаграмме и сохраняется в файл, для того, чтобы вы всегда могли просмотреть статистику своей ежедневной, еженедельной или же ежемесячной активности в сети. Данные статистики могут быть экспортированы в файл Excel, Word или HTML (рис. 1.4).
Рис. 1.4 - окно программы NetWorx
1.3 Достоинства и недостатки аналогов
CommView.
Плюсы:
· локализованный интерфейс;
· обширная справочная система;
· поддержка разных типов сетевых адаптеров;
· развитые средства анализа пакетов и определения протоколов;
· вывод графических результатов;
· функциональная система предупреждений.
Минусы:
· высокая стоимость;
· отсутствие пресетов для правил перехвата трафика;
· не очень удобный механизм выбора пакета во вкладке «Пакеты».
Итог. Благодаря отличной функциональности и удобному интерфейсу CommView может стать незаменимым инструментом администраторов локальных сетей, Интернет-провайдеров и домашних пользователей. Порадовал тщательный подход разработчика к русской локализации пакета: и интерфейс, и справочное руководство выполнены на очень высоком уровне. [2]
Wireshark. Плюсы:
· поддержка огромного числа протокольных декодировщиков;
· функция сохранения и просмотра сведений о трафике благодаря переносу данных во внешний файл;
· Импорт и экспорт информации из альтернативных программных средств (Novell LANalyzer, atmsnoop, Sun snoop, tcpdump);
· поиск пакетов по огромному числу параметров.
Минусы:
· отсутсвие локализации интерфейса;
· отсутствие пресетов для правил перехвата и предупреждений.
Итог. Эта программа придется кстати системным администраторам и техническим специалистам, желающим просмотреть в реальном времени данные о проходящем по сети трафику и пакетах.
Colasoft Capsa. Плюсы:
· приложение с высокой степенью точности определяет активность червей, ARP- и DoS-атаки, безошибочно обнаруживая их источник в режиме реального времени;
· сбор статистических данных по трафику и пропускной способности сети. Предоставление статистических отчетов по трафику и пропускной способности сети в количественном и графическом виде;
· расшифровка сетевых пакетов. Приложение осуществляет сбор сетевых пакетов и их глубинное декодирование.
Минусы:
· отстутсвует локализация.
NetWorx. Плюсы:
· локализованный интерфейс;
· обширная справочная система;
· трафик разделяется по нескольким пользователям;
· развитые средства анализа пакетов и определения протоколов;
· визуализация результатов;
· возможность просмотреть отчёт по использованию сети за определённый период.
Минусы:
· имеет закрытый исходный код;
· отсутствие пресетов для правил перехвата и предупреждений.
Итог. NetWorx может помочь определить возможные источники проблем в сети, отслеживать подозрительную сетевую активность, характерную для троянов и хакерских атак.
1.4 Выбор языка разработки
Средства разработки программного обеспечения - совокупность приемов, методов, методик, а также набор инструментальных программ, используемых разработчиком для создания программного продукта, отвечающим заданным требованиям.
C# - язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998--2001 годах как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio.
Его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников: С++, Java, Delphi, Модула и Smalltalk. С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).[3]
Java - сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). На сегодняшний момент язык Java является одним из самых распространенных и популярных языков программирования. Задумывался как универсальный язык программирования, который можно применять для различного рода задач. Главной особенностью языка Java является то, что его код сначала транслируется в специальный байт-код, независимый от платформы. А затем этот байт-код выполняется виртуальной машиной JVM (Java Virtual Machine).
Visual Basic - является языком программирования третьего поколения (событийный язык программирования) и среда разработки от Microsoft для модели программирования COM.Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Также является хорошим средством быстрой разработки (RAD) приложений баз данных для операционных систем семейства Microsoft Windows. В отличие от многих других языков программирования, Visual Basic не зависит от регистра.
Структурированный Язык запросов (SQL)-- это стандартный язык доступа к БД, таким как SQL Server, Oracle, MySQL, Sybase и Access. Знание SQL необходимо всем, кто хотел бы хранить и извлекать данные из БД.
Компьютерный язык, основанный на стандрате ANSI, предназначенный для доступа и управления БД. Команды SQL используются для извлечения и обновления записей в БД. SQL работает с такими системами управления БД (СУБД), как MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase.
SQL создавался как простой стандартизированный способ извлечения и управления данными, содержащимися в реляционной базе данных. Позднее он стал сложнее, чем задумывался, и превратился в инструмент разработчика, а не конечного пользователя. В настоящее время SQL (по большей части в реализации Oracle) остается самым популярным из языков управления базами данных, хотя и существует ряд альтернатив.
1.5 Выбор среды разработки
Среды разработки программного обеспечения являются объединением программных средств, которые предназначены для создания программных продуктов. Среда разработки включает в свое содержание: компилятор, интерпретатор, отладчик, средства автоматизации сборки, а также редактор текста.
Microsoft Visual studio. Линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight. Также позволяет организовать разработку программного обеспечения, которое будет удачно работать не только в среде Windows, но и в условиях других операционных платформ (рис. 1.5).
Используя представленные возможности, у разработчиков открывается замечательная перспектива для обеспечения качественного взаимодействия между различными проектами, группами, а также прочими субъектами и объектами процесса написания программного обеспечения. Отлично подходит для программирования приложений.NET, записи быстрого кода на основании C AMP, тестирования и настройки HTML или JavaScript.[4]
Интерфейс Microsoft Visual Studio характеризуется достаточной простотой. Хоть и требует наличия специализированных знаний в области программирования, между тем гарантируется простота реализации.
Преимущества.
· простая в обращении графическая оболочка;
· интеграция во все этапы проектирования, создания интеллектуальных продуктов;
· присутствуют опции для автоматической коррекции ошибок.
Недостатки.
· для начинающих сложен в изучении.
PhpStorm. Это интегрированная среда разработки на PHP с интеллектуальным редактором, которая глубоко понимает код, поддерживает PHP 7.1, 7.0, 5.6, 5.5, 5.4 и 5.3 для современных и классических проектов, обеспечивает лучшее в индустрии автодополнение кода, рефакторинги, предотвращение ошибок налету и поддерживает смешивание языков.
PhpStorm разработан на основе платформы IntelliJ IDEA, написанной на Java. Пользователи могут расширить функциональность среды разработки за счет установки плагинов, разработанных для платформы IntelliJ (рис. 1.6).
Эта программа всегда готова помочь вам написать необходимый код в считанные минуты, запустить юнит-тесты и обеспечить визуальную отладку.
В PhpStorm 2017.1 также попали многие новые возможности и усовершенствования из IntelliJ Platform, например улучшенный Version Control, поиск в Find in Path, поддержка emoji в редакторе, и гиперссылки в терминале. Кроме того, улучшены средства работы с базами данных.[5]
Функциональные возможности.
1. Интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету.
2. Визуальный отладчик для PHP приложений, валидация конфигурации отладчика, PHPUnit с покрытием кода (поддержка PHPUnit 5), а также интеграция с профилировщиком.
3. Полный набор инструментов для фронтенд-разработки.
4. Интеграция с системами управления версиями, включая унифицированный интерфейс.
5. Интеграция с баг-трекерами.
6. Инструменты работы с базами данных, SQL редактор.
7. Кросс-платформенность (Windows, Mac OS X, Linux).
8. Поддержка стилей кода, встроенные стили PSR1/PSR2, Symfony2, Zend, Drupal и другие.
9. PHP рефакторинги, code (re)arranger, детектор дублируемого кода.
10. Автодополнение финализирует классы, методы, имена переменных, ключевые слова PHP, а также широко используемые имена полей и переменных в зависимости от их типа.
11. Детектор дублируемого кода.
12. MVC представление для Symfony2 и Yii фреймворков.
13. Распознавание кода, запакованного в PHAR-архивы.
14. Поддержка Vagrant, SSH консоли и удаленных инструментов.
15. Навигация по коду и поиск использований (перейти к объявлению/идентификатору, найти использования).
Возможно подключение внешних папок. Это удобно тогда, когда у вас множество проектов, в которых могут повторяться заскриптованные коды или фреймворк. Присутствует функция поиска классов.
Редактор анализирует код в то время, пока его пишут, и уведомляет пользователя о допущенных ошибках. Так же весьма полезны подсказки, которые могут помочь быстрее разобраться в возникающих проблемах.
Рис. 1.5 - окно программы Visual Studio
Рис. 1.6 - окно программы PhpStorm
NetBeans. Это мощная IDE, которая предоставляет пользователю множество полезных инструментов для разработки приложений на разных языках: Ada, C, C++, CSS, Groovy, HTML, J2ME, Java, JavaScript, PHP, Python и т.д. Благодаря широким возможностям данной интегрированной среды разработки вы сможете существенно ускорить процесс написания кода.[6]
Несмотря на то, что программа бесплатна и развивается сообществом энтузиастов, она не только не уступает коммерческим аналогам, но и превосходит их по разным параметрам. Среда поддерживает реорганизацию кода (рефакторинг), профилирование, автодополнение кода, кроме того, она умеет выделять цветом синтаксис и содержит большое количество шаблонов кода.
Стоит отметить, что НетБинс позволяет новичкам освоить азы программирования, это становится возможным за счет использования готовых примеров и руководств, таким образом, можно самостоятельно воссоздать рабочие приложения и разобраться в том, как они устроены и функционируют, при этом потратив совсем немного времени.
Среда разработки обеспечивает возможность запуска (из собственного окна) локальных веб-серверов и баз данных, с которыми в дальнейшем вы сможете работать. К тому же программа позволяет быстро развернуть создаваемый проект на реальном сервере, таким проектом можно будет легко управлять, а также вести его удаленную поддержку и т.д.
Кстати, в состав данного продукта входит интересный модуль под названием IDE GUI Builder, с его помощью можно проектировать и осуществлять визуальную разработку интерфейсов, при этом пользователям не нужно ничего программировать, достаточно лишь перетащить нужные элементы в рабочую область проекта.
Стандартный функционал приложения расширяется плагинами, которых создано великое множество. Плюс ко всему эта IDE применяется для создания мобильного программного обеспечения. Если вам нужно надежное средство для разработки, тогда стоит скачать NetBeans на русском языке. Программа имеет открытый исходный код и работает на всех версиях популярных операционных систем (Windows, Linux, Mac OS и др.).
Синтаксис всех вышеперечисленных языков IDE NetBeans поддерживает, так же для каждого языка имеется автодополнение и проверка синтаксиса. IDE NetBeans дает подсказки разработчику, когда тот наваял синтаксически неверную конструкцию и даже может автоматически всё это дело исправлять (рис. 1.7).
Рис. 1.7 - окно программы NetBeans
Eclipse. Расширяемая, open-source интегрированная среда разработки (IDE, Integrated Development Environment). Первоначальная цель заключалась в том, чтобы "разработать стабильную, полнофункциональную, промышленную платформу, качества коммерческого продукта, для разработки интегрируемых инструментов". На настоящий момент Eclipse Consortium фокусируется на следующих проектах:
1. The Eclipse Project - ответственен за разработку непосредственно Eclipse IDE (платформу для сборки прочих инструментов Eclipse), Java Development Tools (JDT) и Plug-In Development Environment (PDE), используемую для предоставления возможности расширения самой платформы.
2. The Eclipse Tools Project - занимается созданием оптимальных инструментальных средств для платформы Eclipse. В текущие подпроекты входят: Cobol IDE, C/C++ IDE, а также инструмент моделирования EMF.
3. The Eclipse Technology Project - занимается технологическими исследованиями, инкубацией и образованием по части использования платформы Eclipse.
Совместно с JDT, платформа Eclipse предоставляют множество различных возможностей, которые вы могли наблюдать в коммерческих IDE: подсветка синтаксиса в редакторе, компиляция кода, отладчик уровня исходного кода с поддержкой "нитей" (threads), навигатор по классам, файловый менеджер и менеджер проектов, интерфейсы для стандартных контролирующих систем исходного кода, таких как, например, CVS и ClearCase.
Несмотря на большое количество стандартного набора возможностей, Eclipse отличается от традиционных сред разработки по нескольким фундаментальным особенностям. Может быть, самая интересная возможность Eclipse - это абсолютная нейтральность относительно платформы и языка программирования. Вдобавок к эклектичному набору языков программирования, которые поддерживаются Eclipse Consortium (Java, C/C++, Cobol), существует множество сторонних проектов, с помощью которых вы можете обеспечить поддержку интересующего вас языка программирования в Eclipse. На сегодняшний день существуют реализации следующих популярных языков программирования: Python, Eiffel, PHP, Ruby, и C#.
Платформа Eclipse предоставляется, благодаря Eclipse Consortium, в виде заранее скомпилированных исполняемых файлов для Windows, Linux, Solaris, HP-UX, AIX, QNX, и Mac OS X. Очень много внимания концентрируется вокруг архитектурной системы plug-in'ов этой платформы, а также "богатых" API (Application Programming Interface), поставляемых с Plug-in Development Environment для расширения Eclipse. Добавить поддержку нового типа редактора, просмотрщика (панели) или языка программирования до безобразия просто, благодаря хорошо спроектированным API и строительным блокам, которые предоставляет Eclipse (рис 1.8).
Рис. 1.8 - окно программы Eclipse
PyCharm. Самая интеллектуальная Python IDE с полным набором средств для эффективной разработки на языке Python. Выпускается в двух вариантах - бесплатная версия PyCharm Community Edition и поддерживающая больший набор возможностей PyCharm Professional Edition. PyCharm выполняет инспекцию кода на лету, автодополнение, в том числе основываясь на информации, полученной во время исполнения кода, навигацию по коду, обеспечивает множество рефакторингов. Данная среда разработки емеет следующин функции:
1. Мощный и функциональный редактор кода с подсветкой синтаксиса, авто-форматированием и авто-отступами для поддерживаемых языков.
2. Простая и мощная навигация в коде.
3. Помощь при написании кода, включающая в себя автодополнение, авто-импорт, шаблоны кода, проверка на совместимость версии интерпретатора языка, и многое другое.
4. Быстрый просмотр документации для любого элемента прямо в окне редактора, просмотр внешеней документации через браузер, поддержка docstring - генерация, подсветка, автодополнение и многое другое.
5. Редактор Javascript, Coffescript, HTML/CSS, SASS, LESS, HAML.
6. Поддержка схем наиболее популярных IDE/редакторов. Таких как Netbeans, Eclipse, Emacs, эмуляция VIM редактора.
7. Огромная, постоянно пополняемая коллекция плагинов.
8. Кросс-платформенность (Windows, Mac OS X, Linux).
Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA (рис. 1.9).
Рис. 1.9 - окно программы PyCharm
Android Studio. Новая и полностью интегрированная среда разработки приложений, не так давно выпущенная компанией Google для операционной системы Android. Данный продукт призван снабдить разработчиков новыми инструментами для создания приложений, а также предоставить альтернативу Eclipse, являющейся в настоящее время наиболее популярной средой разработки.
При создании нового проекта в Android Studio, будет показана структура проекта со всеми файлами, содержащимися в каталоге SDK. Этот переход к системе управления Gradle придает процессу разработки еще большую гибкость.
Android Studio позволяет вам увидеть любые визуальные изменения, которые вы производите в реальном времени в приложении. Вы также можете увидеть, как ваше приложение будет одновременно смотреться на различных устройствах под управлением Android, с различными настройками и разрешением экрана. Продукт также обладает новыми инструментами для упаковки и маркировки кода. Это позволит вам не потеряться в проекте, когда вы имеете дело с большим количеством кода. В программе также задействована функция перетаскивания, благодаря которой можно перемещать компоненты посредством пользовательского интерфейса.
Вдобавок ко всему, новая среда разработки обладает функцией Google Cloud Messaging, которая позволяет вам посылать данные с сервера на Android-устройства через облако. Это отличный способ посылать push-уведомления вашим приложениям. Вы также сможете с помощью программы локализовать приложения. Это позволит вам программировать, и при этом сохранять контроль над приложением.
Данная среда имеет следующие особенности:
1. Расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана.
2. Сборка приложений, основанная на Gradle.
3. Различные виды сборок и генерация нескольких .apk файлов.
4. Рефакторинг кода.
5. Статический анализатор кода (Lint), позволяющий находить проблемы производительности.
6. Встроенный ProGuard и утилита для подписывания приложений.
7. Шаблоны основных макетов и компонентов Android.
8. Поддержка разработки приложений для Android Wear и Android TV.
9. Встроенная поддержка Google Cloud Platform, которая включает в себя интеграцию с сервисами Google Cloud Messaging и App Engine.
10. Android Studio 2.1 поддерживает Android N Preview SDK, а это значит, что разработчики смогут начать работу по созданию приложения для новой программной платформы.
11. Новая версия Android Studio 2.1 способна работать с обновленным компилятором Jack, а также получила улучшенную поддержку Java 8 и усовершенствованную функцию Instant Run.
12. Platform-tools 23.1.0 для Linux без объявления стала исключительно 64-разрядной, даже при попытке установить 32-разрядную версию. Иными словами Android Studio больше не работает (выдаёт неустранимые ошибки) в 32-разрядных версиях Linux.
13. В Android Studio 3.0 будут по стандарту включены инструменты языка Kotlin основанные на JetBrains IDE.
Основные возможности - реализована возможность вёрстки в реальном времени, доступно множество вариантов размеров и разрешений экранов. Присутствует раздел справки. Встроены инструменты улучшения качества приложений и монетизации. Имеются инструменты для отслеживания эффективности рекламных объявлений. Добавлено средство взаимодействия с бета-тестерами.[7]
Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений. Данная среда разработки доступна для Windows, OS X и Linux. 17 мая 2017 на ежегодной конференции Google I/O, Google анонсировал язык Kotlin используемый в Android Studio официальным языком программирования для платформы Android в добавление к Java и С++ (рис. 1.10).
Рис. 1.9 - окно программы PyCharm
2 Разработка ПО
2.1 Разработка графического интерфейса
Интерфейс программного обеспечения содержит следующие элементы:
1. Вкладки меню.
2. Поле, для отображения пути к файлу и кнопку «Выбрать файл».
3. Список для выбора сетевого адаптера.
4. Текстовые поля, для вывода результатов работы ПО.
5. Кнопка запуска и остановки работы ПО.
6. Элементы для работы с фалом результатов захвата трафика.
7. Форма отображения графических результатов и элементы их настройки.
8. Элементы отображения характеристик трафика.
Разработка первого пункта требований к графическому интерфейсу. Для того чтобы все элементы уместились на форме, был использован tabControl (рис. 2.1).
Рис. 2.1 - Расположение меню программы
Чтобы полностью заполнить окно программы элементом tabControl, нужно установить свойство данного элемента Dock в значение Fill (рис. 2.2).
Рис. 2.2 - установка значения параметра Dock
Также необходимо добавить в данный tabControl вкладоки меню и изменить их текст. Для этого необходимо использовать команду tabControl1.tabPage.Text (рис. 2.3).
Рис. 2.3 - Переименование вкладок tabControl
Изменение цвета вкладок происходит изменением свойства BackColor (рис. 2.4).
Рис. 2.4 - Настройка цвета вкладок
Разработка второго пункта. Добавляем textbox и button из панели элементов на форму (рис. 2.5).
Настраиваем кнопку в «Выбрать файл» и создаем для нее обработчик событий (рис. 2.6). Исходный код приведен в Приложении А.
Рис. 2.5 - Добавление на форму элементов
Рис. 2.6 - Обработка событий на нажатие
Поле textbox будет отображать информацию о пути к выбранному файлу и должно быть неактивным. Для этого изменим свойство Enabled (рис. 2.7).
Рис. 2.7 - Установка флага активности textbox_selectedFile
Разработка третьего пункта. Добавляем в форму ПО элемент comboBox из панели инструментов (рис. 2.8).
Рис. 2.8 - Добавление элемента comboBox
Добавляем Label на форму из панели инструментов и настраиваем его. Элемент необходим для вывода информации о требуемом действии. Настраиваем отображение текста Label. Форма будет выглядеть как на рис. 2.9.
Разработка четвертого пункта. Для отображения основной информации о статусе выполнения ПО добавляем 4 объекта Label и производим их настройку (рис. 2.10).
Рис. 2.9 - Вкладка настроек
Рис. 2.10 - Переименование label
Промежуточный вид настройки ПО (рис. 2.11).
Рис. 2.11 - Вкладка настроек
Разработка пятого пункта. Добавляем два элемента button и назначаем обработчик событий на нажатие на кнопку. Так же настраиваем отображение текста на кнопках «Начать захват» и «Остановить захват» (рис. 2.12).
Рис. 2.12 - Добавление обработчика нажатия на кнопку
Обработчики событий в коде будет выглядеть как на рис. 2.13:
Рис. 2.13 - Обработчик нажатия на кнопки «Начать захват» и «Остановить захват»
Разработка шестого пункта. Для работы с этой частью программы сиспользован GroupBox, он позволяет сделать неактивной сразу несколько элементов (рис. 2.14). Добавляем его на форму с панели инструментов.
Рис. 2.14 - Добавление GroupBox
Так же потребуется добавить еще три Label, три textBox, четыре button и три checkBox. Добавляем их на форму и изменяем текст. CheckBox будут необходимы для активации текстовых полей, поэтому они должны быть нажатыми по умолчанию (рис. 2.15).
Рис. 2.15 - Установка флага нажатия на checkBox
Часть формы с GroupBox будет выглядеть следующим образом (рис. 2.16):
Рис. 2.16 - GroupBox работы с файлом
Необходимо добавить обработчик события на нажатие на checkBox и button (рис. 2.17).
Рис. 2.17 - обработчик нажатия на button и checkbox в окне работы с файлом
Отображение формы при выборе меню «Настройка» будет иметь вид (рис. 2.18).
Рис. 2.18 - Вкладка настроек
Разработка седьмого пункта. Вывод графиков в данной программе будет выводиться с помощью элемента zedGraphControl. Его необходимо добавить в панель инструментов, так как по умолчанию его там нет. За этот элемент отвечает библиотека zedGraph.dll, которую необходимо подключить.
Так же для данного пункта понадобится один comboBox, два textBox, два maskedTextBox, пять label, один button и один checkBox. Сначала размещаем splitContainer (рис. 2.19) и переносим туда все элементы, после чего настраиваем их отображение.[8]
Рис. 2.19 - Добавление SplitContainer
Вот так выглядит элемент SplitContainer на форме (рис. 2.20).
Рис. 2.20 - Установка SplitContainer на вкладке
SplitContainer состоит из двух частей, одну из которых фиксируем (рис. 2.21).
Рис. 2.21 - Изменение поля заполнения SplitContainer
Размещаем элементы comboBox, textBox, maskedTextBox, label, button и checkBox на вторую панель, а zedGraph - на первую. Отображение формы при выборе меню «Графики» будет иметь вид (рис. 2.22).
Рис. 2.22 - Добавление ZedGraphControl на SplitContainer.Panle1
В выпадающем меню выбора графика изменим коллекцию элементов согласно рис. 2.23.
Рис. 2.23 - Добавление пунктов в ComboBox
Добавим обработчик на нажатие на кнопку «Построить график» (рис. 2.24).
Рис. 2.24 - Обработчик нажатия на кнопку
Разработка восьмого пункта из требований к графическому интерфейсу. Добавляем splitContainer, checkedListBox, button и textBox. Как и в предыдущем пункте, сначала добавляем splitContainer. После этого разместим оставщиеся элементы на форму. textbox расположим на первой части панели, причем с настройкой функции multiline, позволяющая выводить несколько строк textbox (рис. 2.25).
Рис. 2.25 - Изменение параметра multiline у TextBox
На вторую часть размещаем оставшиеся элементы и настраиваем их отображение. В checkedListBox изменяем коллекцию элементов следующим образом (рис. 2.26):
Рис. 2.26 - Добавление пунктов в ComboBox
Отображение формы при выборе меню «Формулы» будет иметь вид (рис. 2.27):
Рис. 2.27 - Вкладка формул
Для кнопки «Вычислить» добавляем обработчик событий на нажатие на кнопку (рис. 2.28).
Рис 2.28 - Обработчик нажатия на кнопку
2.2 Вычисление моментных характеристик трафика
Рассмотрим СМО Н2/М/1, где Н2 - обозначение гиперэкспоненциального распределения 2-го порядка времени поступления требований в систему с функцией плотности
. (2.1)
M - обозначение экспоненциального закона обслуживания с функцией плотности
. (2.2)
Преобразование Лапласа функции (3.1) имеет вид:
. (2.3)
а функции (2.2):
. (2.4)
Для исследования системы G/G/1, как известно, используется интегральное уравнение Линдли:
, (2.5)
где - функция распределения вероятностей (ФРВ) времени ожидания требования в очереди;
- ФРВ предельной случайной величины:
,
где - время обслуживания n-го требования ;
- интервал времени между поступлением требований и .
Суть решения уравнения (2.5) спектральным методом сводится к тому, чтобы для выражения:
. (2.6)
находится представление в виде произведения двух множителей, которое давало бы рациональную функцию от s. Таким образом, для нахождения распределения времени ожидания необходимо следующее спектральное разложение:
, (2.7)
где и некоторые рациональные функции от s, которые можно разложить на множители. Функции и согласно должны удовлетворять определенным условиям 1-3:
1. Для функция является аналитической без нулей в этой полуплоскости.
2. Для функция является аналитической без нулей в этой полуплоскости, где D - некоторая положительная константа, определяемая из условия ниже.
3. .
Кроме того, функции и должны обладать следующими свойствами:
(2.8)
Определим теперь выражение
для распределений (2.1) и (2.2) с учетом выражений (2.3) и (2.4).
(2.9)
где коэффициенты , .
В числителе правой части равенства (2.9) получился многочлен 3-й степени, и нам остается определить его коэффициенты для разложения многочлена на множители. Коэффициенты многочлена приведены в табл. 2.1.
Таблица 2.1 Коэффициенты многочлена
Степени слагаемых в числителе дроби |
Коэффициенты многочлена |
|
s0 |
0 |
|
s1 |
||
s2 |
||
s3 |
-1 |
Тогда выражение (2.9) можно разложить на множители:
,
где - отрицательный корень квадратного уравнения в числителе дроби;
- положительный корень.
Исследуем знаки корней и , чтобы убедиться в сказанном. Для этого вспомним, что среднее значение интервала между требованиями
.
Тогда средняя интенсивность входного потока
.
Так как в стационарном режиме загрузка , то . Отсюда следует, что и коэффициент .
Тогда один корень будет отрицательным (-), а второй корень () - положительным.
С учетом знаков корней и вышеприведенных условий 1-3, строим рациональные функции и :
, . (2.10)
Функции (2.10) удовлетворяют так же и условиям (2.8).
Определим постоянную
,
где .
Тогда функция позволяет найти преобразование Лапласа для ФРВ времени ожидания :
.
Заметив, что есть преобразование Лапласа для функции плотности времени ожидания, получим:
. (2.11)
Отсюда
.
Учитывая свойство преобразования Лапласа, найдем среднее время ожидания:
.
Окончательно среднее время ожидания
, (2.12)
где ;
;
.
Для того, чтобы результат (2.12) использовать на практике, необходима информация о моментных характеристиках интервалов.
Среднее значение интервала между соседними пакетами равно
,
где - моменты времени поступления пакетов;
N - количество анализируемых интервалов.
Выборочная дисперсия равна, ,
где - второй начальный момент.
Коэффициент вариации ,
где .
Асимметрия ,
где .
Для расчета моментных характеристик будет разработана программа, которая из всего входного файла с данными о захвате сетевого трафика, выбирает только данные относящиеся к поступившим пакетам и для них производит расчет интервалов и их моментных характеристик.
Рассмотрим полученный результат (2.12) на примере входного распределения с весомым хвостом.
С использованием преобразования Лапласа (2.3) определим начальные моменты распределения:
(3.13)
Разрабатываемое ПО расчитывет неизвестные коэффициенты , и p, и по формуле (2.12) расчитывает задержку.[9]
Исходный код математического программирования представлен в Приложении Б.
2.3 Описание метода фильтрации трафика
В разрабатываемом программном обеспечении предусмотрена возможность фильтрация трафика по 3 параметрам: IP-адрес получателя, IP-адрес источника и сетевой протокол. Пользователь настраивает, по какому критерию будет происходить фильтрация трафика.
Для реализации этого метода пришлось использовать динамический массив, который создается сразу при вызове данного метода.
После создания данного массива начинается фильтрация трафика. ПО смотрит какие поля для фильтрации заполнены, начиная с IP-адреса источника. Если это поле заполнено, то начинается заполнение данного динамического массива. Пакеты, которые будут записываться в данный массив, берутся из выбранного файла. Как раз в момент считывания из файла у пакета и проверяется IP-адрес или IP-адреса. Если есть совпадение, то пакет добавляется в динамический массив. Также предусмотрено введение нескольких IP-адресов. Для использования данной функции нужно ввести несколько IP-адресов через пробел и тогда каждый из них будет проверяться в процессе перебора.
После проверки первого поля, программа переходит к следующему - IP адрес получателя. Если поле заполнено и массив еще пуст, то начинается считывание из файла в массив подобно фильтру, описанному выше.
В том случае, когда массив уже заполнен, то запускается цикл перебора данного массива. Если в процессе перебора находится пакет, у которого адрес не совпадает с введенным полем, то данный пакет просто удаляется из массива.
В последнюю очередь проверяется поле протокола. Если оно заполнено, проверяется, есть ли в динамическом массиве пакеты. В случае отсутствия их открывается файл и идет запись пакетов с данным параметром в массив, если массив уже заполнен, то так же, как и прежде, просто удаляются пакеты, параметры которых не соответствуют полю.[10]
3 Использование программного обеспечения
3.1 Запуск программного обеспечения
трафик сеть интерфейс программный
Запуск ПО осуществляется двойным нажатием на исполняемый файл. Рядом с исполняемым файлом должны распологаться дополнительные библиотеки (рис. 3.1): PacketDotNet.dll - библиотека для обработки перехваченных пакетов, SharpPcap.dll - библиотека для работы с сетевой картой, ZedGraph.dll - библиотека для работы с графиками.
Рис. 3.1 - Содержимое папки ПО
После запуска, разработанного ПО, открывается главное окно (рис. 3.2).
Рис. 3.2 - Основное окно программы
Описание элементов основного окна:
1. При нажатии на кнопку открывается окно для выбора файла, похожее на окно ниже.
2. Расположение выбранного файла. Если оно пусто, файл не выбран.
3. Выбор сетевого адаптера, ПК.
4. Время работы программы.
5. Общее количество захваченных программой пакетов.
6. Запуска захвата трафика.
7. Остановка захвата трафика.
8. Ввод интервала записи в файл.
9. Ввод интервала смены файла.
3.2 Первичная настройка
После запуска программы, ее необходимо настроить. В первую очередь необходимо выбрать файл, нажав кнопку «Выбрать файл». После нажатия на кнопку появится новое окно для выбора файла. В данном окне необходимо выделить уже существующий файл или, если это необходимо, создать новый.
После того, как вы выбрали файл, необходимо нажать кнопку «Открыть», находящуюся в левом нижнем углу.
Далее вы должны решить, будете ли вы перехватывать сетевой трафик или обрабатывать уже перехваченный (рис. 3.3).
Рис. 3.3 - Окно выбора файла
Выбранный файл выведется в текстовое поле ниже, чтобы вы всегда могли знать, с каким файлом в данный момент идет работа.
После выбора файла с правой стороны появятся дополнительные кнопки (рис. 3.4).
Соответственно появляются дополнительные возможности для работы непосредственно с файлом.
Далее вы должны решить, будете ли вы перехватывать сетевой трафик или обрабатывать уже перехваченный.
Рис. 3.4 - Основное окно программы после выбора файла
Если вы собираетесь перехватывать новый трафик, то после выбора файла необходимо также выбрать сетевой адаптер, с которого данный трафик и будет перехватываться. Пример приведен ниже (рис. 3.5).
Настройка завершена. После выбора файла для анализа, можно перейти либо к расчету формул, либо к выводу графиков.
Рис. 3.5 - Выбор сетевого адаптера
3.3 Работа с текстовым файлом
Рассмотри окно работы с файлом подробнее (рис. 3.6).
Рис. 3.6 - Основное окно программы после выбора файла
1. Флаг активации фильтра по IP адресу источника. Если активировать данный флаг, то IP адрес источника будет учитываться при фильтрации. Есть возможность ввода нескольких IP адресов, для этого необходимо просто перечислить их через пробел. Если убрать флаг, то поле ввода адресов очиститься и будет заблокировано, для обратной активации необходимо вновь установить флаг.
2. Флаг активации фильтра по IP адресу получателя. Если активировать данный флаг, то IP адрес получателя будет учитываться при фильтрации. Также, есть возможность ввода нескольких IP адресов, для этого необходимо просто перечислить их через пробел. Если убрать флаг, то поле ввода адресов очиститься и будет заблокировано, для обратной активации необходимо вновь установить флаг.
3. Флаг активации фильтра по протоколу. Если активировать данный флаг, то протокол будет учитываться при фильтрации. Если убрать флаг, то поле ввода адресов очиститься и будет заблокировано, для обратной активации необходимо вновь установить флаг.
4. Кнопка фильтрации трафика. Метод фильтрации был описан выше, здесь просто необходимо нажать кнопку, и программа начнет фильтрацию трафика по выбранным ранее критериям.
5. Кнопка построения цепочки построения передачи данных. После нажатия на кнопку, программа считает данные из файла, и выстроить цепь передачи данных на основании IP адресов и значениях параметров acknowledge number и sequence number.
6. Кнопка конвертации файла. Если у вас имеется лог-файл, полученный при помощи программы tcpdump, то можно его конвертировать для работы с данной программой, необходимо просто выбрать лог-файл и нажать кнопку конвертировать. В результате работы будет создан новый файл, который будет находиться в той же аудитории, что и первоначальный, но его имя будет изменено.
7. Кнопка разбиения файла на части. Если имеется файл слишком больших размеров, например, более 1 Гб, есть возможность разбить его на части. После нажатия на кнопку будет создано несколько новых файлов меньшего размера, имеющих в своем названии номер части файла.
3.4 Вывод графических результатов
Если вам необходимо вывести некоторые характеристики трафика в виде графиков, как говорилось ранее, вам необходимо сначала выбрать файл. Как это сделать описано выше.
После выбора файла необходимо перейти во кладку «Графики». Сделать это можно в левом верхнем углу программы. Выглядит оно следующим образом (рис. 3.7):
Рис. 3.7 - Вкладка «Графики»
Рассмотрим его подробнее:
1. Выпадающее меню выбора графиков. Выглядит оно следующим образом (рис. 3.8).
Рис. 3.8 - Выбор необходимого графика
Здесь вы можете выбрать, какой параметр трафика вывести в виде графиков.
2. Минимальное ограничение по горизонтальной оси. Оно вводится в формате: hh:mm:ss, где hh - часы, mm - минуты, ss - секунды. После ввода этого поля точки начнут отображаться, начиная с определенного момента времени.
3. Максимальное ограничение по горизонтальной оси. Оно вводится в формате: hh:mm:ss, где hh - часы, mm - минуты, ss - секунды. После ввода этого поля точки начнут отображаться до определенного момента времени.
4. Минимальное ограничение по вертикальной оси. После ввода этого поля установится минимальное значение, с которого начнется вывод характеристик пакетов.
5. Максимальное ограничение по вертикальной оси. После ввода этого поля установится максимальное значение, до которого будет идти вывод характеристик пакетов.
6. Флаг отображения среднего значения на графике. Если этот флаг активен, на график накладывается еще и линия, указывающая среднее значение.
7. Флаг отображения точек на графиках. Если этот флаг активен, будут выводиться все точки, иначе будет не все точки, а лишь те, которые необходимы для полного представления какого-либо параметра трафика.
8. Данная кнопка отвечает за начало построения графика с учетом всех введенных фильтров и ограничений.
На данном примере использованы ограничения для вертикальной оси и стоит флаг вывода всех точек на графике (выведено более 1 млн. точек) (рис. 3.9).
Рис. 3.9 - Установка ограничений для вертикальной оси
На данном примере использованы ограничения для горизонтальной оси и флаг вывода всех точек на графике не активен (выведено около 1000 точек) (рис. 3.10).
Рис. 3.10 - Установка ограничений для горизонтальной оси
3.5 Определение характеристик трафика
Для вывода некоторых характеристик трафика в текстовом виде, после выбора файла, нужно перейти во вкладку «Формулы» (рис. 3.11).
Рис. 3.11 - Вкладка выбора расчета характеристик трафика
Для вывода необходимых характеристик трафика, необходимо выбрать файл. После выбора файла и перехода во вкладку «Формулы» нужно выбрать интересующие вас параметры, установив соответствующий флаг.
На рис. 3.12 приведен пример расчета данных параметров.
Рис. 3.12 - Пример расчета
Заключение
В ходе выполнения выпускной квалификационной работы была разработана программа для сбора и анализа сетевого трафика. Данный программный продукт позволяет:
· захватывать сетевой трафик, по выбору сетевого адаптера;
· фильтровать трафик по выбранным критериям: IP адрес источника, IP адрес получателя, по протоколу;
· выводить графические результаты, отображение среднего значения на графике и отображение точек на графиках;
· вычисление моментных характеристик трафика, такие как количество пакетов, первый начальный момент, второй начальный момент, третий начальный момент, выборочная дисперсия, коэффициент вариации, ассиметрия, вычисление задержки;
· выстроить цепочку передачи данных на основании IP адресов и значениях параметров acknowledge number и sequence number;
· конвертировать файл для работы с данной программой;
· разбить файл на части, если имеется файл слишком больших размеров.
Поставленная цель и задача по разработке программного продукта для вычисления моментных характеристик, выполнена. Задачи, решаемые в процессе достижения цели, тоже в полной мере реализованы.
Размещено на Allbest.ru
Подобные документы
Исследование основ метода движения трафика в сети. Ознакомление с IP адресацией и IP пакетами, протоколами. Определение понятия и функций сокета. Создание программного приложения мониторинга трафика (поступления и отправки пакетов между абонентами).
курсовая работа [474,7 K], добавлен 20.04.2015Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Разработка программного модуля, программного обеспечения для компьютерных систем средствами C++ Builder. Разработка карты и интерфейса сайта. Алгоритмы реализации интерактивных функций программы. Пропускная способность линии связи. Программный код сайта.
отчет по практике [1,2 M], добавлен 16.09.2012Обзор области генерации сетевого трафика. Описание выбранных методов, моделей, алгоритмов решения задач. Создание модели поведения пользователя, распределение количества посещённых страниц сайта. Выбор средств реализации программного продукта (проекта).
курсовая работа [1,3 M], добавлен 30.06.2017Выбор технологии передачи данных. Выбор топологии сети, головной станции, конфигурации системы видеонаблюдения. Организация доступа к IP-телефонии и Интернету. Расчет передаваемого трафика через сеть и видеонаблюдения. Проектирование кабельной сети.
дипломная работа [1,7 M], добавлен 27.01.2016Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Предназначение контроля и учета трафика. Нецелевое использование средств. Общая архитектура серверов контроля корпоративного Интернет доступа. Среда программирования "Delphi 7". Рабочий компьютер администратора сети. Оборудование серверного помещения.
дипломная работа [1,8 M], добавлен 03.07.2015Устройство сети эмулятора UNetLab. Поддержка дополнительного оборудования Cisco и других производителей. Принцип генерации и захвата трафика. Функция поиска свободной сети. Описание способов передачи данных: интервального и последовательного режимов.
дипломная работа [873,0 K], добавлен 05.09.2016Разработка структурной схемы компьютерной сети. Планирование топологии сети, настройка серверов. Принципы распределения IP-адресов. Расчет удвоенной задержки распространения сигнала. Моделирование потоков трафика в сети. Сетевые протоколы, их особенности.
курсовая работа [1,2 M], добавлен 23.12.2015Описание структуры обучающего блока. Проектирование его алгоритма и лингвистического и информационного обеспечения. Организация его взаимодействия с базой данных. Разработка графического интерфейса. Программная реализация основных функций приложения.
дипломная работа [2,1 M], добавлен 20.12.2015