ПРИМЕНЕНИЕ СИМУЛЯТОРА COOJA ДЛЯ ИССЛЕДОВАНИЯ СЕНСОРНЫХ СЕТЕЙ
Секция: 3. Информационные технологии
XI Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»
ПРИМЕНЕНИЕ СИМУЛЯТОРА COOJA ДЛЯ ИССЛЕДОВАНИЯ СЕНСОРНЫХ СЕТЕЙ
Симулятор Cooja — полезный инструмент для развития операционной системы (ОС) Contiki, так как позволяет разработчикам протестировать свой код до того, как он будет запущен на устройстве [2]. Разработчики регулярно совершенствуют приложения для моделирования, такие как отладка программного обеспечения и проверка разработанных систем. На рисунке 1 приведено рабочее окно Cooja — сетевого симулятора Contiki.
Рисунок 1. Окно симулятора Cooja
Симулятор Cooja — это симулятор на основе Java, разработанный для моделирования сенсорных сетей, работающих на основе ОС Contiki. Симулятор реализован в Java, однако позволяет писать программы для сетевых устройств на языке «Си» [1].
Симулятор Cooja позволяет одновременно осуществлять моделирование на трех различных уровнях: сетевой уровень, уровень ОС и уровень инструкций машинного кода. Симулятор может запустить программу на выполнение центральным процессором или эмулятором MSP430.
В симуляторе Cooja все взаимодействия с моделируемыми узлами осуществляются с помощью плагинов, таких как Simulation Visualizer, Timeline и Radio logger. Моделирование сохраняется в XML-файле с расширением «csc». Такой файл содержит информацию о среде моделирования, плагинах, узлах, расположении узлов и других характеристиках [2].
С помощью симулятора Cooja было произведено экспериментальное исследование сенсорной сети. При исследовании сети была использована программа широковещательной рассылки UDP пакетов соседним узлам [2]. В данной программе отправитель пакетов определяется случайным образом. После загрузки данной программы в симулятор Cooja была создана сеть из десяти узлов, расположенных случайным образом (рисунок 2). Возможности симулятора также позволяют располагать узлы необходимым нам способом.
Рисунок 2. Расположение узлов сети
После создания сети происходит процесс инициализации узлов сети. Процесс инициализации узла происходит следующим образом: запускается симуляция, узлу выделяется MAC-адрес, предоставляется канал и выделяется IPv6-адрес. После этого узел присоединяется к сети. Пока все узлы не будут присоединены к сети, широковещательная рассылка пакетов не начнется.
На рисунке 3 показана сеть узлов, каждый из которых имеет свой IPv6-адрес, записанный в сокращенной форме.
Рисунок 3. Узлы и их IPv6-адреса
Когда все узлы будут присоединены к сети, начнется процесс передачи широковещательных пакетов. На рисунке 4 показан пример рассылки UDP пакетов 4-ым узлом, которые были отправлены всем остальным узлам сети. Этот же процесс можно наблюдать на временной диаграмме (рисунок 5): 4-ый узел отправляет пакеты («синие квадраты»), а другие узлы сети принимают эти пакеты («зеленые квадраты»). «Темно-серые полоски» отображают интервал времени, в течение которого приемник не находился в режиме сна.
Рисунок 4. Широковещательная рассылка пакетов 4-ым узлом
Рисунок 5. Временная диаграмма при рассылке пакетов 4-ым узлом
Когда широковещательные пакеты были отправлены 4-ым узлом и приняты остальными узлами, процесс рассылки пакетов продолжается. Рассмотрим пример широковещательной рассылки пакетов 1-ым узлом (рисунок 6). Второй и пятый узел не получили пакет, потому что они расположены далеко от первого узла — на временной диаграмме это отмечено «красными квадратами» (рисунок 7).
Рисунок 6. Широковещательная рассылка пакетов 1-ым узлом
Рисунок 7. Временная диаграмма при рассылке пакетов 1-ым узлом
Процесс моделирования рассылки пакетов можно продолжить, однако для экспериментального исследования данной сети вышеприведенных данных вполне достаточно, чтобы разобраться в процессе широковещательной рассылки UDP пакетов.
Симулятор Cooja позволяет смоделировать сенсорную сеть и проверить работоспособность созданной программы, чтобы не допустить ошибок в реальном устройстве.
Список литературы:
1. Ali Hazrat. A Performance Evaluation of RPL in Contiki. Stockholm, Sweden: Swedish Institute of Computer Science, 2012. — 91 p.
2. The Contiki Operating System. [Электронный ресурс] — Режим доступа. — URL: http://www.contiki-os.org/ (Дата обращения: 14.03.2014).