Маршрутизация - это процесс определения на основе данных из таблицы маршрутизации оптимального пути от узла-источника к узлу-получателю в условиях избыточных связей.
В процессе построения маршрутизации выделяют две части: определение дальнейшего пути пакета и непосредственно его пересылка по этому путь.
В соответствии с этими частями, процесс маршрутизации можно разделить на два иерархически связанных уровня:
- уровень маршрутизации. На этом уровне происходит работа с таблицей маршрутизации. Таблица маршрутизации служит для определения сетевого адреса следующего маршрутизатора, на который будет передан пакет, или непосредственно получателя пакета. После определения адреса передачи выбирается определенный выходной физический порт маршрутизатора для передачи сетевого пакета. Этот процесс называется определением маршрута перемещения пакета. Настройка таблицы маршрутизации ведется протоколами маршрутизации. На этом же уровне определяется перечень необходимых предоставляемых сервисов;
- уровень передачи пакетов. Перед тем как передать пакет, необходимо проверить контрольную сумму заголовка пакета, определить адрес (канального уровня) получателя пакета и произвести непосредственно отправку пакета с учетом очередности, фрагментации, фильтрации и прочих действий. Эти действия выполняются на основании команд, поступающих с уровня маршрутизации.
Маршрутизация является одной из наиболее важных процедур передачи данных. Процедура маршрутизации гарантирует, что данные перемещаются из одной сети в другую с оптимальной скоростью и минимальной задержкой. Целостность передаваемых данных в процессе построения маршрутизации гарантирована.
Алгоритм маршрутизации - часть программного обеспечения сетевого уровня, и отвечает за определение по какой линии отправлять пакет дальше. В независимости от того выбирается ли маршрут для сессии или для каждого пакета алгоритм маршрутизации должен обладать рядом свойств: корректностью, простотой, устойчивостью, стабильностью, справедливостью и оптимальностью.
Не адаптивные алгоритмы не принимают в расчет текущую загрузку сети и состояние топологии. Все возможные маршруты вычисляются заранее и загружаются в маршрутизаторы при загрузке сети. Такая маршрутизация называется статической маршрутизацией.
Адаптивные алгоритмы маршрутизации, наоборот, определяют маршрут исходя из текущей загрузки сети и топологии. Адаптивные алгоритмы различаются тем, где и как они получают информацию (локально от соседних маршрутизаторов или глобально ото всех), когда они меняют маршрут ( каждые АТ секунд, когда меняется нагрузка, когда меняется топология), какая метрика используется при оптимизации (расстояние, число скачков, ожидаемое время передачи).
Маршрутизация по вектору расстояния - это алгоритм маршрутизации, идея которого в том, что у каждого маршрутизатора в подсети есть таблица расстояний до каждого маршрутизатора в подсети. Периодически маршрутизатор обменивается информацией со своими соседями и обновляет информацию в таблице. Каждый элемент таблицы состоит из двух полей: первое - номер линии, по которой надо отправлять пакеты, чтобы достичь нужного места, второе - величина задержки до места назначения. Эта величина задержки может быть измерена в разных единицах: скачках, миллисекундах, длине очереди на линии и т.д.
Алгоритм AntNet является адаптивным алгоритмом маршрутизации, метод поиска путей которого основан на поведении муравьев в природе. В нем предусмотрено исследование состояния сети с использованием агентов (муравьев), которые в классическом представлении данного алгоритма, используют вероятностные правила выбора маршрутов. Для маршрутизации пакетов данных используются вероятностные таблицы маршрутизации.
Процедура поиска кратчайших путей в алгоритме AntNet использует те же принципы, что и колония муравьев при поиске пищи . Муравей на своем пути оставляет след из активных веществ - феромонов. Феромоновый след во внешней среде существует некоторое время, и муравьи, которые будут идти следом, с больше вероятностью предпочтут то направление, по которому до них прошли другие муравьи. Эта вероятность будет тем больше, чем большее количество муравьев прошло по этому пути. Таким образом, через некоторое время большая часть муравьев будет использовать один, наиболее близкий к оптимальному, маршрут.
Роль муравьев в протоколе AntNet выполняют активные агенты. Активный агент в протоколе AntNet - это специальный пакет, который несет с собой статистику о состоянии пройденных сетевых каналов.
В произвольные моменты времени роутер сети, настроенной с помощью AntNet, генерирует сообщения, которые отсылаются до определенного принимающего узла, но каждое сообщение следует по своему маршруту. С помощью такого алгоритма замеряется время следования сообщения на каждом маршруте, и затем путь с меньшим временем следования сменяет прежний маршрут и становится новым маршрутом по умолчанию до данного узла назначения.
В данной работе был разработан протокол маршрутизации на основе алгоритма роевого интеллекта - протокол AntNet. Для данного протокола был сформулирован алгоритм работы протокола. На основе алгоритма работы был сформирован граф работы протокола. Описаны структуры пакетов. Данный протокол был промоделирован в среде моделирования OMNeT++. Основанием разработки данного протокола послужила проблема того, что современные протоколы маршрутизации неспособны эффективно решать проблему отслеживания загруженности каналов связи и производить последующую перестройку таблицы маршрутизации.
С помощью библиотеки INET Framework для OMNeT++ был реализован модуль, обеспечивающий работу протокола AntNet.
Моделирование протокола роевого интеллекта было выполнено на разработанной для этого тестовой сети. На основании полученных результатов были сделаны выводы, что протокол AntNet в определенный момент времени отследил, что на используемом маршруте передачи данных время следования пакетов больше чем на другом маршруте. Таким образом, протокол отследил использование неоптимального маршрута передачи данных. После чего таблица маршрутизации была перестроена, и данные стали передаваться по другому маршруту.
В процессе моделирования AntNet были сделаны выводы, что протокол может быть использован в исследованиях по повышению производительности сети при больших нагрузках за счет использования алгоритмов, с помощью которых замеряется время следования пакетов по сети и происходит перенаправление трафика по маршруту с меньшим показателем RTT.
В результате выполнения данной работы был разработан протокол маршрутизации на основе алгоритма роевого интеллекта. Для достижения эффективности в работе протокола AntNet требуются дополнительные исследования.
1 Система менеджмента качества. Общие требования к построению, изложению и оформлению документов учебной деятельности. СТО 4.2-07-2014. Красноярск.: ИПЦ СФУ, 2014. - 60 с.
2 Сайт о программировании Realcoding.Net[Электронный ресурс] - Режим доступа: http://www.realcoding.net/articles/vvedenie-v-protokol-ospf.html
3 Электронный журнал ITC [Электронный ресурс] - Режим доступа: http://itc.ua/articles/razgovor_o_marshrutizacii_ne_okonchen_25136/
4 Электронный портал университета [Электронный ресурс] - Режим доступа: https://lektsii.org/5-64716.html
5 Электронная энциклопедия [Электронный ресурс] - Режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/1605981
6 Динамический алгоритм маршрутизации на основе агентных технологий, Солдатова В.А. Кафедра ПМИ ДонНТУ [Электронный ресурс] - Режим доступа: http://masters.donntu.org/2005/fvti/soldatova/library/soldatova.htm
7 Ant Colony Optimization and its Application to Adaptive Routing in Telecommunication Networks : дис. д-ра физ.-мат. наук / Gianni Di Caro. - Bruxelles, 2004 - 121 с.
8 Электронная энциклопедия [Электронный ресурс] - Режим доступа: http://rain.ifmo.ru/cat/data/theory/unsorted/ant-algo-2006/article.pdf
9 AntNet: Distributed Stigmergetic Control for Communications Networks / Gianni Di Caro, Marco Dorigo // Journal of Articial Intelligence Research 9 : сб. науч. ст. / IRIDIA, Universite Libre de Bruxelles, 1998. - С. 317-365.
10 Электронная энциклопедия [Электронный ресурс] - Режим доступа: https://studfiles.net/preview/933652/page:2/
11 Электронный журнал [Электронный ресурс] - Режим доступа:
http://fb.ru/article/369611/nastroyka-staticheskoy-marshrutizatsii
12 Водолазский И. А. Роевой интеллект и его наиболее распространённые методы реализации / Водолазский И. А., Егоров А. С., Краснов А. В. // Молодой ученый. - 2017. - №4. - С. 147-153.
13 Электронный архив Донецкого национального технического университета [Электронный ресурс] - Режим доступа: http://ea.donntu.org:8080/bitstream/123456789/5592/1/p_169.pdf
14 Ладыженский Ю. В. Моделирование алгоритмов маршрутизации в сетях на кристалле / Ладыженский Ю. В., Мирецкая В. А. - Донецкий национальный технический университет, 2017. - №4. - С. 79-86.
15 Штовба С. Д. Муравьиные алгоритмы / Штовба С. Д., Краснов А. В. //Exponenta Pro. - 2003. - №4. - С. 70-75.
16 Ушаков С. А. Разработка и исследование алгоритмов решения задач распознавания на основе искусственных иммунных систем : дис. канд. техн. наук : 05.13.17 / Ушаков Станислав Андреевич. - Воронеж, 2016. - 138 с.
17 Кушнир Н. В. Искусственные иммунные системы: обзор и современное состояние / Кушнир Н. В., Кушнир А. В., Анацкая Е.В., Катышева П. А., Устинов К. Г. // Научные труды КубГТУ. - 2015. - №12. - С. 1-10.