ВВЕДЕНИЕ 4
1. Анализ проблем построения маршрутов в программно-конфигурируемых сетях 7
1.1. Актуальность проблемы построения маршрутов в программно-
конфигурируемых сетей 7
1.2. Общие сведения о программно-конфигурируемых сетях 7
1.2.1. Архитектура программно-конфигурируемых сетей 10
1.2.2. Протокол OpenFlow 15
1.2.3. Сетевые операционные системы в ПКС 16
1.3. Общие сведения о построении путей 19
1.4. Выбор инструментальных средств реализации для реализации
алгоритма, эмуляции сложного сегмента программно-конфигурируемой сети 22
1.4.1. Обзор сетевых ОС 22
1.4.2. Обзор средств для эмуляции программно-конфигурируемой сети26
1.4.3. Обзор сред разработки 30
2. Проектирование и реализация 38
2.1. Проектирование структуры эффективного алгоритма оптимизации трафика 38
2.1.1. Проектирование и реализация алгоритма построения маршрутов на
базе простых структур данных 39
2.1.2. Оптимизация работы алгоритма построения маршрутов на базе
простых структур данных с помощью OpenMP 49
2.1.3. Эмуляция тестовых сегментов сети 50
3. Тестирование и апробация 54
ЗАКЛЮЧЕНИЕ 57
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 58
ПРИЛОЖЕНИЕ
В XXI веке постоянный рост подключенных устройств к сети «Интернет» повлёк за собой экспоненциальный рост общемирового трафика. Этот резкий скачок стимулировал развитие новых более быстрых и инновационных компьютерных сетей под названием «Программно- конфигурируемые сети». Новое поколение коммуникационных сетей имело важное преимущество в виде увеличенной пропускной способности каждого передающего устройства, однако главным минусом данных сетей стало время создания нового соединения, она увеличилась в более чем два раза. [4]
Проблемы вызваны сложностью построения маршрутов на крупных сегментах подконтрольных сетей, в которых количество подключенных передающих устройств больше 300 штук.
Теория построения кратчайших путей на графах имеет огромное влияние на современный мир. Благодаря своему широкому спектру предоставляемых возможностей, она в последнее время интенсивно развивается: вместе с улучшением уже разработанных методов изобретаются принципиально новые.
Поиск путей является важной задачей, которую используют в различных областях и сферах. Правильно рассчитанный маршрут, может сэкономить средства на единичную или групповую доставку, большой объём данных будет быстрее доставлен пользователю, искусственный интеллект в компьютерных играх покажет более интересное поведение и маршрут для вашего автомобиля будет построен эффективно с точки зрения затраченного времени на путь.
Проблемой поиском путей начали заниматься ещё в XIX веке. Тогда появилась первая задача по поиску путей - задача Коммивояжёра. Сегодня эта задача является классической для комбинаторики и поиска маршрутов.
Начиная с 1969 года компьютерные сети начали развиваться. Изначально в самой первой сети под название ARPANET было соединено 4 суперкомпьютера того времени. Благодаря этой сети была опробована маршрутизация пакетов с помощью протокола IP, который используется и по сей день. Начиная с 1990 года появилась всемирная паутина, которая соединила между собой самые удалённые уголки мира. [2]
Начиная с 1990 года сложность компьютерных сетей растёт в геометрической прогрессии становясь всё более объёмными и запутанными. В современных компьютерных сетях поиск пути осуществляется на два шага вперёд, потому что полный поиск пути может занять огромное количество времени, однако такой «быстрый» поиск не позволяет всегда построить самый оптимальный и быстрый маршрут [17]. Из-за возросшей сложности современных сетей им на смену разрабатывают программно- конфигурируемые сети суть, которых заключается в том, чтобы вынести логику построения маршрутов из передающих устройств и оставить устройствам только саму передачу данных. Для того, чтобы это реализовать необходимо использовать быстрый и эффективный алгоритм построения маршрута, который будет учитывать нагрузку на каждое отдельное устройство, чтобы добиться максимальной производительности сети.
Актуальность разработки эффективного алгоритма оптимизации трафика для программно-конфигурируемых сетей обусловлена нежеланием части игроков ИТ рынка переходить на новое поколение сетей в связи с большими задержками при создании соединений. Поэтому сейчас очень важно разработать быстрый и эффективный алгоритм для построения маршрута с помощью которого задержки при создании нового соединения существенно снизятся.
Исходя из вышесказанного, целью выпускной квалификационной работы является исследование алгоритмов построения маршрутов, разработка и оптимизация их скорости выполнения для программно-конфигурируемых сетей.
В ходе работы были поставлены следующие задачи:
1) Анализ проблем построения маршрутов в программно- конфигурируемых сетях;
2) Выбор инструментальных средств для реализации алгоритма, эмуляции и тестирования реализованного алгоритма на базе программно- конфигурируемых сетей;
3) Разработка и реализация алгоритма, тестирование на
эмулированном сегменте программно-конфигурируемой сети;
4) Апробация алгоритма;
В 1 главе «Анализ проблем построения маршрутов в программно- конфигурируемых сетях» будет произведён анализ программно- конфигурируемых сетей, их слабые места и недостатки построения маршрутов внутри сложных сегментов сети. Также будет произведено обоснование выбора среды разработки, эмулятора программно-конфигурируемой сети для отладки и сетевой операционной системы.
Во 2 главе «Проектирование и реализация» будет произведено проектирование и реализация алгоритма.
В 3 главе «Апробация алгоритма» приведены данные о результатах проведённых испытаний относительно производительности разработанного алгоритма и сравнения с его аналогами.
В заключении сделан вывод о степени достижения поставленных целей и задач.
Целью выпускной квалификационной работы является исследование алгоритмов построения маршрутов, разработка и оптимизация их скорости выполнения для программно-конфигурируемых сетей. Для достижения указанной цели перед работой был поставлен ряд задач.
При решении задачи «Анализ проблем построения маршрутов в программно-конфигурируемых сетях» в работе была изучена проблема, важность и актуальность данного направления. В ходе изучения было установлено, что такая задача является проблемной и её необходимо решать.
При решении задачи «Выбор инструментальных средств для реализации алгоритма, эмуляции и тестирования реализованного алгоритма на базе программно-конфигурируемых сетей» был произведён подробный анализ различных сред для разработки программного обеспечения, сетевых операционных систем для ПКС, различных систем эмуляции. В результате подробного анализа было выявлено, что для использования в работе подходит среда разработки Eclipse CDT, сетевая ОС RUNOS и эмулятор Mininet.
При решении задачи «Разработка и реализация алгоритма, тестирование на эмулированном сегменте программно-конфигурируемой сети» была произведена разработка оптимизированного алгоритма Дейкстры, с помощью упрощённых структур хранения и усечения лишних шагов алгоритма в рамках ПКС. После этого была произведена настройка эмулятора Mininet и настройка RUNOS для взаимодействия с эмулированным сегментом сети, для отладки и тестирования корректности работы.
При решении задачи «Апробация алгоритма» были произведены исследования работоспособности алгоритма на базе эмулированных сегментов сети различного размера, для выявления преимуществ и недостатков разработанного оптимизированного алгоритма.
Таким образом, задачи были решены полностью, цель была достигнута.
1. Agouros K., Software Defined Networking / K. Agouros - Берлин: De Gruyter, 2016. - 268 с.
2. Azodolmolky S., Software Defined Networking with OpenFlow - Second Edition / S. Azodolmolky - Бирмингем: Packt Publishing, 2017. - 312 с.
3. Chou E., Mastering Python Networking: Your one stop solution to using Python for network automation, DevOps, and SDN / E. Chou - Бирмингем: Packt Publishing, 2017. - 446 с.
4. Cisco, The Cisco Network Simulator, Router Simulator & Switch
Simulator [Электронный ресурс], режим доступа -
http://www.boson.com/netsim-cisco-network-simulator, свободный (дата
обращения: 17.04.2018);
5. Doherty J., SDN and NFV Simplified: A Visual Guide to Understanding Software Defined Networks and Network Function Virtualization /
J. Doherty - Бостон: Addison-Wesley Professional, 2016. - 320 с.
6. Duan Q., Virtualized Software-Defined Networks and Services / Q. Duan, Toy M. - Норвуд: Artech House, 2016. - 334 с.
7. Duan Q., Network as a Service for Next Generation Internet (Telecommunications) / Q. Duan, Wang S. - Стивенидж: The Institution of Engineering and Technology, 2017. - 440 c.
8. Dumka A., Innovations in Software-Defined Networking and Network Functions Virtualization (Advances in Systems Analysis, Software Engineering, and High Performance Computing) / A. Dumka - Херши: IGI Global, 2018. - 364 с.
9. Goransson P., Software Defined Networks, A Comprehensive Approach / P. Goransson - Нью-Йорк: Morgan Kaufmann, 2016 - 436 с.
10. Gray K., Network Function Virtualization / K. Gray - Нью-Йорк: Morgan Kaufmann, 2016. - 270 с.
11. Hamburger V., Building VMware Software-Defined Data Centers / V. Hamburger - Бирмингем: Packt Publishing, 2017. - 432 с.
12. Katti M. Learn About Software-Defined Secure Networks (SDSN) / M. Katti - Саннивейл: Juniper Networks Books, 2016. - 95 с.
13. Khondoker R. SDN and NFV Security: Security Analysis of Software- Defined Networking and Network Function Virtualization (Lecture Notes in Networks and Systems) / R. Knodoker - Берлин: Springer, 2018. - 134 с.
14. Lee G., Cloud Networking: Understanding Cloud-based Data Center Networks / G. Lee - Нью-Йорк: Morgan Kaufmann, 2014. - 238 с.
15. Liyanage M., Software Defined Mobile Networks (SDMN): Beyond LTE Network Architecture (Wiley Series on Communications Networking & Distributed Systems) / M. Liyanage - Хобокен: Wiley, 2015. - 438 с.
16. Mininet Community, Mininet Walkthrough [Электронный ресурс], режим доступа - http://mininet.org/walkthrough/, свободный (дата обращения: 18.12.2017);
17. Morraele P. A., Software Defined Networking: Design and Deployment / P. A. Morraele - Бока Ратон: CRC Press, 2014. - 186 с.
18. Nadeau T. , SDN: Software Defined Networks / T. Nadeau - Себастопол: O'Reilly Media, 2013. - 384 с.
19. NS Community, WHAT IS NS-3 [Электронный ресурс]. режим доступа - https://www.nsnam.org/overview/what-is-ns-3/, свободные (дата обращения: 16.11.2017);
20. OPNET Community, OPNET [Электронный ресурс], режим доступа - https://sandilands.info/sgordon/teaching/resources/opnet.html, свободный (дата обращения: 16.04.2016);
21. Pujolle G. , Software Networks. Virtualization, SDN, 5G, Security / G. Pujolle - Хобокен: John Wiley & Sons Limited, 2015. - 260 с.
22. POX Community, Using the POX SDN controller [Электронный ресурс], режим доступа - http://www.brianlinkletter.com/using-the-pox-sdn- controller/, свободные (дата обращения: 21.04.2018);
23. Qi H., Software Defined Networking Applications in Distributed Datacenters (SpringerBriefs in Electrical and Computer Engineering) / H. Qi - Берлин: Springer, 2016 - 68 с.
24. Robertazzi T.G., Introduction to Computer Networking / T.G. Reobertazzi - Берлин: Springer, 2017. - 154 с.
25. Shukla V., Introduction to Software Defined Networking - OpenFlow & VxLAN / V. Shukla - Сиэтл: CreateSpace Independent Publishing Platform, 2013. - 114 с.
26. Subramanian S., Software Defined Networking (SDN) with OpenStack / S. Subramanian - Бирмингем: Packt Publishing, 2016. - 216 с.
27. Sundararajan R. K., Software Defined Networking (SDN) - a definitive guide / R. K. Sundararajan - Сиэтл: Amazon Digital Services LLC, 2013. - 72 с.
28. Stallings W., Foundations of Modern Networking: SDN, NFV, QoE, IoT, and Cloud / W. Stallings - Бостон: Addison-Wesley Professional, 2015. - 544 с.
29. Taheri J., Big Data and Software Defined Networks (Computing and Networks) / J. Taheri - Стивенидж: The Institution of Engineering and Technology 2018. - 504 с.
30. Tiwari V., SDN and OpenFlow for beginners with hands on labs / Tiwari V. - Сиэтл: Amazon Digital Services LLC, 2013. - 119 с.
31. Zhang Y. Network Function Virtualization: Concepts and Applicability in 5G Networks (Wiley - IEEE) / Y. Zhang - Нью-Йорк: Wiley-IEEE Press, 2017. 179 с.
32. Ермаков А.Е., Основы конфигурирования корпоративных сетей Cisco: учебное пособие / А.Е. Ермаков - Москва: ФГБОУ УМЦ ЖДТ, 2014. - 247 с.
33. Кузьменко Н.Г., Компьютерные сети и сетевые технологии / Н.Г. Кузьменко - Санкт-Петербург: Наука и Техника, 2013. - 368 с.
34. Коннов А.Л., Анализ и проектирование программно- конфигурируемых сетей: учебное пособие / А.Л. Коннов Оренбург: ОГУ, 2016. - 115 с.
35. Максимов Н.В., Компьютерные сети / Н.В. Максимов - Москва: Форум, 2013. - 464 с.
36. Поляк-Брагинский А.В., Локальные сети. Модернизация и поиск неисправностей / А.В. Поляк-Брагинский - Санкт-Петербург: БХВ-Петербург, 2012. - 640 с.
37. Рассел Д., Программно-конфигурируемая сеть / Д. Рассел - Москва: Книга по требованию, 2013. - 96 с.
38. Смирнова Е.В., Построение коммутируемых компьютерных сетей / Е.В. Смирнова - Москва: НОУ ИНТУИТ, 2016. - 429 с.
39. Харари Ф., Теория графов / Ф. Харари - Москва: Ленанд, 2018 - 304 с.
40. ЦПИКС, ПЕРВЫЙ РОССИЙСКИЙ ПКС/SDN- КОНТРОЛЛЕР RUNOS [Электронный ресурс], режим доступа - http: //arccn.ru/research/653, свободные (дата обращения: 20.04.2016);