Навигация  

Авторы : Тимков А.В., Телятников А.О.

Источник : Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС та КМ-2010)./ Матеріали I всеукраїнської науково-технічна конференції студентів, аспірантів та молодих вчених - 19-21 травня 2010 р., Донецьк, ДонНТУ. - 2010.

Беспроводная сенсорная сеть (БСС) – это беспроводная система, которая представляет собой распределенную, самоорганизующуюся и устойчивую к отказам отдельных элементов сеть, узлами которой являют специальные устройства – моты.

Мот(от англ. motes - пылинки) – это миниатюрное вычислительно- коммуникационное устройство. Это небольшая плата, которая содержит процессор, оперативную и флэш памяти, ЦАП и АЦП, радиочастотный приемопередатчик, источник питания и датчики. Типы датчиков могут быть совершенно любыми. Чаще всего используются датчики температуры , давления, влажности, освещения, вибрации и т.д.[1]

Для передачи данных в таких системах используется специальные протоколы передачи данных. На данный момент существует большое число таких протоколов. Целью данной работы, является построение модели беспроводной сенсорной сети с использованием одного из таких протоколов, для получения экспериментальных данных, которые необходимы для расчета среднего количества пересылок пакетов данных.

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

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

Рисунок 1 – Обобщенная схема сенсорной системы.
Рисунок 1 – Обобщенная схема сенсорной системы.

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

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

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

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

Т.к. TinyOS является фактически стандартом, необходимо, чтобы система моделирования позволяла эмулировать работу беспроводной сенсорной сети под управлением TinyOS.

TOSSIM – это симулятор приложений TinyOS. Он является библиотекой TinyOS. Tossim – симулятор дискретных событий. Событие сообщает о получении данных от сенсора, о срабатывании таймера, о передачи пакетов данных или о завершении вычислений. Отсюда следует, что TOSSIM – эмулирует события для беспроводных сенсорных систем, в которых моты работают под управлением TinyOS.

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

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

TOSSIM преобразует прерывания компьютера в события эмулятора и выстраивает их в очередь; эта очередь событий эмулятора управляет выполнением приложения TinyOS для отдельного моделируемого мота. Возникающие события вызывает обработчик прерывания, который посылает сигналы событиям и вызывает команды TinyOS, имитируя то, что происходит в реальных мотах. Эти события и команды TinyOS запускают задачи и инициируют дальнейшую генерацию событий эмулятора.

Данный протокол обеспечивает передачу данных одному из нескольких возможных приемников данных, тем самым обеспечивая связь многие к одному на сетевом уровне. БСС обычно образовывает древовидную структуру, корнями которой являются шлюзы, а листьями - моты. CTP использует кадры маршрутизации для обновления и построения деревьев сети.

На рис.2 приведен пример дерева сети. Шлюз является корнем, а другие узлы образуют множества маршрутов, которые подключаются к этому корню. В СТР не используется адресация, поэтому узел не отправляет пакет определенному корню, а неявно выбирает корень дерева, посредством выбора адресата следующей пересылки.

Рисунок 2 – Пример дерева коллекции.
Рисунок 2 – Пример дерева коллекции.

Протокол CTP использует 2 формата кадра : кадр данных и кадр маршрутизации. CTP спроектирован для сетей с относительно низким трафиком, т.к. полосы пропускания канала должно быть достаточно для пересылки кадров маршрутизации в то время, когда передаются кадры данных.

CTP использует ожидаемое количество пересылок(ETX) в качестве градиента маршрутизации. Корень дерева имеет ETX 0. ETX узла равен ETX родителя плюс ETX связи с родителем. В конечном итоге СТР, учитывая текущий маршрут, выбирает маршрут с меньшим значение ETX. ETX – представляется как 16-разрядное десятичное вещественное число с фиксированной точкой с точностью до десятых. Например ETX со значением 45, представляется как ETX 4.5, а ETX со значением 10 представляется как ETX 1.

Tymo – это реализация протокола Dymo в TinyOS[3], который является протоколом маршрутизации для мобильных устройств в одноранговых сетях. Сперва протокол разрабатывался для поиска маршрутов поверх IP уровня.

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

Когда узлу необходимо получить маршрут, он распространяет Route Request (RREQ) – пакет запорашивающий маршрут между отправителем и получателем. Этот пакет распространяется по всей сети или в пределах некоторого числа соседних узлов. Когда пакет достигает цели (или узла имеющего новый маршрут к цели), узел отправляет Route Replay(RREP). Этот ответ очень похож на Route Request , отличие состоит лишь в том, что пакет имеет одноадресный маршрут и не требует ответа.

Когда узлы получают RREQ или RREP, они сохраняют в кеше информации об отправителе, таким образом они знают путь к источнику полученного пакета, который может быть использован позже (если путь не устаревший), без отправления RREQ. Узлы имеют возможность накапливать путь сопровождаемый пакетом в пакете непосредственно. Таким образом когда узлы отправляют RREQ или RREP в пакете ответа могут получить информацию больше чем путь между двумя узлами .

Когда маршруты не используются в течении длительного времени, они удаляются. Если узел запрашиваем отправку пакета через удаленный маршрут, то генерируется Route Error (RERR) сообщение, чтобы предупредить узел отправитель (и другие узлы), что запрашиваемый маршрут более не доступен. В качестве еще одного механизма обслуживания маршрута, Dymo использует порядковые номера и счетчики переходов для определения полноценности и качества маршрута.

Для тестирования модели беспроводной сенсорной сети был выбран протокол CTP, поскольку он является базовым для большинства приложений TinyOS. На рис. 3 представлена структура тестовой модели беспроводной сенсорной сети.

Рисунок 3 – Структура тестовой модели беспроводной сети.
Рисунок 3 – Структура тестовой модели беспроводной сети.

Для построения модели используется 10 мотов. Между узлами существует двунаправленные соединения с определенным уровнем затухания в db.Структура модели описывается в специальных текстовых файлах, где указываются все необходимые параметры. Для создания и запуска модели используется программный код написанный на Python`e, который считывает информацию о структуре сети, создает модель и запускает цикл обработки событий. В табл. 1 представлены фрагменты программного кода и файла топологии сети.

Таблица 1 – Фрагменты программного кода и топологии сети.
Файл my-topo.txt Файл test.py
gain 0 1 -80
gain 1 0 -90
gain 0 2 -80
gain 2 0 -83
gain 2 3 -70
gain 3 2 -80
gain 1 3 -90
gain 3 1 -92
gain 4 3 -88
............
f = open("my-topo.txt", "r")
lines = f.readlines()
for line in lines:
s = line.split()
if (len(s) > 0): if s[0] == "gain":
r.add(int(s[1]), int(s[2]), float(s[3]))
.............................................
while (t.time() < 5000*t.ticksPerSecond()):
t.runNextEvent()

Было осуществлено моделирование для данной беспроводной сенсорной сети. В табл. 2 представлен фрагмент информации полученной в результате моделирования.

Таблица 2 – Информация полученная в результате моделирования.
Полученные данные
...........................................................
DEBUG (0): Received packet at 0:0:14.137486321 from node 2.
DEBUG (0): Received pack et addressed to me so ack it
DEBUG (2): Forwarding packet from 3.
DEBUG (2): CtpForwardingEngineP$forward forwarding packet 0xb7ae7f72 with queue size 2
DEBUG (2): Received packet addressed to me so ack it
DEBUG (0): Received packet at 0:0:14.762333734 from node 2.
DEBUG (0): Received packet addressed to me so ack it
DEBUG (2): Send completed.
...........................................................

По полученным данным был произведен расчет среднего количества пересылок пакетов данных. Данный критерий – это среднее значение переходов пакетов данных, для достижения шлюза (узел №0). Для расчета данного значения, нам необходимо знать сумму всех пересылок пакетов, от одного узла к другому, а так же сумму всех исходных пакетов:

Формула расчета среднего числа пересылок

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

Рисунок 4 – Экранная форма с итоговыми данными моделирования.
Рисунок 4 – Экранная форма с итоговыми данными моделирования.

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

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

1. H. Karl and A. Willig. Protocols and Architectures for Wireless Sensor Networks. John Wiley & Sons, May 2005
2) 2. Официальный сайт TinyOS – Электронный ресурс : http://www.tinyos.net/special/mission
3. Описание протокола Tymo – Электронный ресурс : http://docs.tinyos.net/index.php/Tymo
4. Collection Tree Protocol. Technical Report SING-09-01