Назад в библиотеку

РАЗРАБОТКА ПРОТОКОЛА ДЛЯ МОБИЛЬНЫХ СЕТЕЙ И ИССЛЕДОВАНИЕ ЕГО В СРЕДЕ NETWORK SIMULATOR 2(NS2)

Автор: Н.А. Ковалевский, Т.А. Приходько
Источник: Матерiали IX мiжнародної науково–технiчної конференцiї студентiв, аспiрантiв та молодих вчених "Інформатика і комп'ютерні технології" – Донецьк, ДонНТУ – 2013.

Аннотация

Н.А. Ковалевский, Т.А. Приходько Разработка протокола для мобильных сетей и исследование его в среде Network Simulator 2(NS2). Разработан ping протокол для мобильных и проводных сетей. Апробация и анализ его работы выполнен в сетевом симуляторе NS2. В результате анализа мы смогли определить задержки в маршрутах сети, а также выяснили, что можно задавать максимальное расстояние приема и передачи данных в мобильных сетях.

Актуальность

Актуальность данной работы обусловлена идеей перемещения сетевых технологий от персонального компьютера к устройствам ежедневного использования: вычислительные устройства становятся все более миниатюрными и мощными. Воплощение этой идеи отражается термином вездесущие вычисления (ubiquitous computing) или иначе – всепроникающее вычисление (pervasive computing) – результат стремительного развития компьютерных технологий. Проникающие вычисления выходят за пределы персональных компьютеров, и охватывают всевозможные предметы от одежды до инструментов и бытовых приборов, включая автомобили, дома, человеческое тело. Все это может быть оснащено чипами для соединения с бесконечной сетью других устройств. Цель всепроникающих вычислений, которые комбинируют обычные сетевые технологии с беспроводным вычислением, распознаванием речи, знаниями из Интернет, способностями искусственного интеллекта – создать окружение, где возможность соединения устройств реализована таким образом, что возможность соединения легка и всегда доступна.

Однако глобальная задача всепроникающих вычислений распадается на множество частных задач, которые включают в себя задачу эффективных беспроводных соединений и быстрой доставки данных с их использованием.

Обеспечение эффективного использования ресурсов компьютерных сетей, на фоне постоянного усложнения их топологии, появления новых сетевых технологий, протоколов и приложений, требует привлечения разнообразных средств моделирования и анализа функционирования сетевых структур. Здесь приходят на помощь различные сетевые симуляторы, позволяющие с высокой степенью достоверности проанализировать эффективность разрабатываемых схем и протоколов доставки сетевого контента.

Моделирование также необходимо, если:
– постоянная отладка системы в реальных условиях является сложной, дорогостоящей или опасной (моделирование передачи данных между спутниками);
– необходимо быстро оценить альтернативные варианты (различные протоколы передачи данных).

Для этих целей используют различные симуляторы сетей. В данной статье предложено решение задачи моделирования доставки данных на базе некоторых беспроводных протоколов в Network Simulator 2, поскольку он является одним из самых популярных бесплатных симуляторов.

Постановка задачи

Целью данной работы является разработка протокола определяющего задержки в мобильных сетях и анализ его работоспособности средствами среды моделирования NS2.

Для решения данной задачи была сформирована сеть, состоящая из 2 узлов.

Для разработки нового протокола в среде моделирования NS2 необходимо использовать два языка программирования. Для детального моделирования протокола необходимо использовать системный язык программирования, обеспечивающий высокую скорость выполнения и способный манипулировать достаточно большими объемами данных. В NS2 в качестве системного языка используется С++.

Для удобства пользователя и быстроты реализации и модификации различных сценариев моделирования лучше использовать язык программирования более высокого уровня абстракции. В качестве языка программирования высокого уровня абстракции используется язык OTcl.

В ходе проделанной работы был разработан протокол, принцип работы которого подобен принципу работы утилиты ping [3]. Этот протокол отправляет запросы указанному узлу сети и фиксирует поступающие ответы. Время между отправкой запроса и получением ответа позволяет определять задержки по маршруту и частоту потери пакетов. Данный протокол реализован с помощью языка С++.

После написания данного протокола на системном уровне необходимо скомпилировать полученный код и пересобрать симулятор NS2 (принцип работы протокола описан на Рис. 1 и Рис. 2).

pic1

Рис.1 Алгоритм отправки пакетов


pic2

Рис.2 Алгоритм приема пакетов


Далее исходные данные (количество и расположение узлов, конфигурации источников и приемников трафика) задаются с помощью программы–сценария – скрипта OTcl (Рис.3). При запуске симулятора, скрипт интерпретируется модулем событийного моделирования с использованием внутреннего планировщика событий. Никакой компиляции скрипта не требуется.

pic3

Рис.3 Принцип работы симулятора NS2


Для тестирования протокола был разработан скрипт для сети с двумя беспроводными движущимися узлами. В результате моделирования можно сформировать trace–файлы, содержащие информацию о динамике трафика, состоянии отдельных соединений и объектов сети, степени загрузки различных сетевых ресурсов, количестве переданных и потерянных пакетов и т.п. Возможны два вида вывода: в trace и namtrace файлы. Trace файлы используются для визуализации с помощью Xgraph (вывод в виде графиков). Namtrace файлы используются для демонстрации результатов моделирования в nam–визуализаторе. Этот визуализатор позволяет останавливать, ускорять, замедлять, перезапускать симуляцию, отображать позицию узлов и очереди пакетов, выделять пакеты от разных узлов.

В данном примере использовалась two–ray ground reflection model, эта модель задает принцип распространения сигнала, который приближен к реальности. Согласно этой модели мощность принимаемого сигнала на расстоянии d от передатчика можно определить по формуле:

pic4

где: ht, hr – высота передающей и принимающей антенны;

Pt – мощность передаваемого сигнала;

Gt, Gr – коэффициент усиления антенны;

L – потери системы.

Выведем результаты полученных задержек в Xgraph (рис.4), а также продемонстрируем результаты скрипта в nam–визуализаторе (рис.5). На рис.2 по оси абсцисс отображается время от начала моделирования, по оси ординат полученные значения задержек.

pic5

Рис.4 Xgraph окно с результатами моделирования


pic6

Рис.5 Окно nam–визуализатора с результатами моделирования


Из результатов видно, что передача пакетов в определенный момент останавливается. При просмотре симуляции на nam–визуализаторе можно заметить, что пакет передается от начального узла к конечному, но назад не возвращается. Определив в визуализаторе координаты узлов в данный момент можно посчитать расстояние между узлами в конкретный момент. В данном случае прием пакетов прекращается на расстоянии 160м. Это ограничение накладывается вследствие ограниченного радиуса приема мобильного узла.

Существует 2 параметра влияющих на прием: RXThresh и CPThresh [1]. RXThresh задает минимальную мощность принимаемого сигнала, необходимую для попытки декодирования пакета. CPThresh задает относительный уровень сигнала, при котором новый пакет интерпретируется как сигнал с минимальной мощностью.

В официальном руководстве сказано, что эту возможность можно использовать в некоторых случаях, когда пользователю может потребоваться указать дальности связи беспроводных узлов [1,2]. Также можно отдельно изменять дальность передачи данных для узлов.

Если в данной ситуации между узлами N1 и N2 добавить ещё один узел, то протокол маршрутизации будет автоматически перенаправлять пакеты и связь между узлами не прервется.

Протокол также протестирован на большем количестве узлов. Проблем с ним не было выявлено, но если количество пакетов одновременно находящихся в узле будет превышать максимальный размер очереди узла, то пакеты будут теряться.

Выводы

В ходе проделанной работы было реализовано в NS2 несколько топологий сетей, состоящих из подвижных узлов, в которых использовались следующие возможности симулятора: создание агентов для приема и передачи трафика, создание генераторов трафика, была использована визуализация результатов моделирования в Xgraph. Все описанные возможности реализуются с помощью языка OTcl.

Для демонстрации всех возможностей симулятора был разработан протокол, принцип работы которого подобен принципу работы утилиты ping. Данный протокол реализован с помощью языка С++.

Преимуществом NS2 по сравнению с другими моделирующими средами является наличие хорошей документации. В ней можно найти информацию про Otcl интерпретатор, иерархию классов С++, параметры и назначение протоколов. Очень детально описаны некоторые специфические возможности (например, разница распространения беспроводного сигнала на открытой местности, офисе или заводе), приведены примеры их использования [2].

Перспективы дальнейших исследований:

В перспективе планируется моделирование протоколов маршрутизации в мобильных сетях, а также симуляция протоколов маршрутизации в параллельной среде моделирования.

Список использованной литературы

1. Teerawat Issariyakul. Introduction to Network Simulator NS2 / Teerawat Issariyakul, Ekram Hossain; Springer Science+Business Media, LLC : Springer, 2009. – 435 с.
2. Kevin Fall. The ns Manual / Kevin Fall, Kannan Varadhan; UC Berkeley, LBL, USC/ISI, and Xerox PARC, 2011. – 433 с.
3. Marc Greis. Tutorial for the Network Simulator “ns” [Электронный ресурс]. – Режим доступа: http://www.isi.edu/nsnam/ns/tutorial/