Беспроводные сенсорные сети
Беспроводная сенсорная сеть (БСС) – это беспроводная система, которая представляет собой распределенную, самоорганизующуюся и устойчивую к
отказам отдельных элементов сеть, узлами которой являют специальные устройства – моты. БСС – это беспроводная сеть, передача информации в
которой производится от одного узла к другому, до тех пор пока пакет данных не достигнет удаленного шлюза. От шлюза информация поступает на
головной компьютер, который выполняет обработку информации, либо же передает ее дальше.
Мот представляет собой плату размером обычно не более одного кубического дюйма. На плате размещаются процессор, память - флэш и оперативная,
цифроаналоговые и аналого-цифровые преобразователи, радиочастотный приемопередатчик, источник питания и датчики. Датчики могут быть самыми
разнообразными; они подключаются через цифровые и аналоговые коннекторы. Чаще других используются датчики температуры, давления, влажности,
освещенности, вибрации, реже — магнитоэлектрические, химические (например, измеряющие содержание CO, CO2), звуковые и некоторые другие[1]. Набор
применяемых датчиков зависит от функций, выполняемых беспроводными сенсорными сетями. Питание мота осуществляется от небольшой батареи. Моты
используются только для сбора, первичной обработки и передачи сенсорных данных. Внешний вид мотов, выпускаемых различными производителями,
приведен на рис. 6.1
Рисунок 6.1 – Внешний вид мотов.
Основная функциональная обработка данных, собираемых мотами, осуществляется на узле, или шлюзе, который представляет собой достаточно мощный
компьютер.Проблема получения сенсорной информации, собираемой мотами, решается следующим образом. Моты могут обмениваться между собой информацией
с помощью приемопередатчиков, работающих в радиодиапазоне. Это, во-первых, сенсорная информация, считываемая с датчиков, а во-вторых, информация
о состоянии устройств и результатах процесса передачи данных. Информация передается от одних мотов другим по цепочке, и в итоге ближайшие к шлюзу
моты сбрасывают ему всю аккумулированную информацию. Если часть мотов выходит из строя, работа сенсорной сети после реконфигурации должна продолжаться.
Но в этом случае, естественно, уменьшается число источников информации.[2]
Преимущества технологий беспроводных сенсорных сетей могут быть эффективно использованы для решения различных прикладных задач, связанных с
распределенным сбором, анализом и передачей информации[3]. Беспроводные сенсорные сети — это новая перспективная технология, и все связанные с ней
проекты в основном находятся в стадии разработки. Укажем основные области применения данной технологии:
- системы обороны и обеспечение безопасности;
- контроль окружающей среды;
- мониторинг промышленного оборудования;
- охранные системы;
- мониторинг состояния сельскохозяйственных угодий;
- управление энергоснабжением;
- контроль систем вентиляции, кондиционирования и освещения;
- пожарная сигнализация;
- складской учет;
- слежение за транспортировкой грузов;
- мониторинг физиологического состояния человека;
- контроль персонала и т.д.
Представленный список ничтожно мал и практически не ограничен. Из достаточно большого числа примеров использования беспроводных сенсорных сетей выделим два.
Производство вина — занятие, требующее учета огромного количества разнообразной информации. Вино покупается и продается не на вес или объем (как, например,
зерновые или овощи), и его цена во многом зависит от места и года выращивания и сбора винограда. На качество вина влияет множество факторов, и опытные виноделы
скрупулезно учитывают при этом малейшие нюансы, чтобы добиться наилучшего букета напитка. Но если использовать сенсорные сети, то можно «засеять» виноградник
беспроводными датчиками и непрерывно отслеживать температуру, влажность и другие параметры, важные для созревания каждой лозы. В нескольких хозяйствах в долине
Вилламет (штат Орегон) исследователи Intel развернули опытную сенсорную сеть. Руководит проектом профессиональный… психолог Ричард Беквит (Richard Bechwith),
использующий исследовательскую технологию, известную как «наблюдение за участниками». Он наблюдает, с одной стороны, за экспертами, которые собирают информацию
с сенсоров, размещенных на плантации, а с другой — за самими виноградарями, чтобы понять, какие критерии в области виноградарства важны для тех и других и как
эта информация увязывается воедино[4].
Примером еще одного реализованного проекта является развертывание сенсорной сети на базе военно-воздушных сил США во Флориде. Система продемонстрировала
хорошие возможности по распознаванию различных металлических объектов, в том числе движущихся. Применение сенсорной сети позволило обнаруживать проникновение
людей и автомобилей в контролируемую зону и отслеживать их перемещения. Для решения этих задач использовались моты, оснащенные магнитоэлектрическими и
температурными датчиками. В настоящее время масштабы проекта расширяются, и беспроводная сенсорная сеть устанавливается уже на полигоне размером 10 000x500 м.
Соответствующее прикладное программное обеспечение разрабатывается несколькими американскими университетами[2].
Одной из основных проблем БСС является ограниченная емкость батарей, установленных на мотах. Заменять батарее на мотах, в большинстве случаев задача достаточно
сложная. Именно поэтому к настоящему времени вопросами уменьшения энергозатрат занимается большое число людей. Тематика работ простирается от узкоспециальных вопросов,
связанных с созданием отдельных компонентов объектов сети (приемопередатчиков, микроконтроллеров, датчиков и т.д.) с низкой ценой и низким энергопотреблением до проблем,
которые возникают при эксплуатации сенсорных сетей (вопросы связанные с организацией работы сети, разработка программного обеспечения и т.д.)[5].Однако наиболее важной
задачей является задача передачи данных. Основными проблемами в этой области являются :
- уменьшение цикла приема и передачи данных ;
- нахождение оптимальных маршрутов передачи данных;
- выбор топологии сети;
- устойчивость к изменению топологии;
- и т.д..
Хотя на данный момент уже существует большое число разработок, но все эти разработки не является полноценными, т.к. их нельзя применить для любого круга задач.
Для каждой конкретной задачи, необходимо организовать свой подход к решению.Именно поэтому суть данной работы заключается в разработке нового протокола, который
будет основан на муравьиных алгоритмах. Основной задачей для данного протокола является поиск оптимального маршрута передачи данных от мотов к основному компьютеру,
а так же возможность выбора оптимального маршрута в случае выхода одного или нескольких мотов из строя.
Протокол СТР
Данный протокол обеспечивает передачу данных одному из нескольких возможных приемников данных, тем самым обеспечивая связь многие к одному на сетевом уровне.
БСС обычно образовывает древовидную структуру, корнями которой являются шлюзы, а листьями - моты. CTP использует кадры маршрутизации для обновления и построения
деревьев сети.
На рис.6.2 приведен пример дерева сети. Шлюз является корнем, а другие узлы образуют множества маршрутов, которые подключаются к этому корню. В СТР не используется
адресация, поэтому узел не отправляет пакет определенному корню, а неявно выбирает корень дерева, посредством выбора адресата следующей пересылки.
Рисунок 6.2 – Пример дерева коллекции.
Протокол CTP использует 2 формата кадра: кадр данных и кадр маршрутизации. CTP спроектирован для сетей с относительно низким трафиком, т.к. полосы пропускания
канала должно быть достаточно для пересылки кадров маршрутизации в то время, когда передаются кадры данных.
CTP использует ожидаемое количество пересылок(ETX) в качестве градиента маршрутизации. Корень дерева имеет ETX 0. ETX узла равен ETX родителя плюс ETX связи с
родителем. В конечном итоге СТР, учитывая текущий маршрут, выбирает маршрут с меньшим значение ETX. ETX – представляется как 16-разрядное десятичное вещественное
число с фиксированной точкой с точностью до десятых. Например ETX со значением 45, представляется как ETX 4.5, а ETX со значением 10 представляется как ETX 1.
Протокол Tymo
Tymo – это реализация протокола Dymo в TinyOS[3], который является протоколом маршрутизации для мобильных устройств в одноранговых сетях. Сперва протокол разрабатывался
для поиска маршрутов поверх IP уровня. Поскольку, протокол Dymo, является реактивных протоколом, то он явно не хранит топологию сети. В случае необходимости отправки
данных узел устанавливает маршрут до места назначения. За счет малого обмена информацией о маршрутизации, сокращается сетевой трафик, что позволяет экономить полосу
пропускания. За счет малых объемов хранимой информации о маршрутизации, Dymo легко встраивается в ограниченную память мотов.
Когда узлу необходимо получить маршрут, он распространяет Route Request (RREQ) – пакет запорашивающий маршрут между отправителем и получателем. Этот пакет
распространяется по всей сети или в пределах некоторого числа соседних узлов. Когда пакет достигает цели (или узла имеющего новый маршрут к цели), узел отправляет
Route Replay(RREP). Этот ответ очень похож на Route Request , отличие состоит лишь в том, что пакет имеет одноадресный маршрут и не требует ответа.
Когда узлы получают RREQ или RREP, они сохраняют в кеше информации об отправителе, таким образом они знают путь к источнику полученного пакета, который может быть
использован позже (если путь не устаревший), без отправления RREQ. Узлы имеют возможность накапливать путь сопровождаемый пакетом в пакете непосредственно. Таким
образом когда узлы отправляют RREQ или RREP в пакете ответа могут получить информацию больше чем путь между двумя узлами .
Когда маршруты не используются в течении длительного времени, они удаляются. Если узел запрашиваем отправку пакета через удаленный маршрут, то генерируется Route
Error (RERR) сообщение,чтобы предупредить узел отправитель (и другие узлы), что запрашиваемый маршрут более не доступен. В качестве еще одного механизма
обслуживания маршрута, Dymo использует порядковые номера и счетчики переходов для определения полноценности и качества маршрута.
Обзор систем моделирования БСС
Каждая сеть требует своего подхода к разработке. Именно поэтому при разработке сенсорных сетей и программного обеспечения к ней большое значение имеют системы
моделирования. Системы моделирования позволяют разрабатывать аппаратное и программное обеспечение для мотов со значительно меньшими затратами, чем в случае
использования реальных устройств. Так же они позволяют варьировать различными параметрами, что предоставляет информацию, необходимую для принятия решения о
преимуществе тех или иных параметров в заданной обстановке. Еще более полезными приходятся системы моделирования при разработке и тестировании протоколов передачи
данных.
На сегодняшнее время существует большое количество систем моделирования как специализированных (TOSSIM, SWAN, Em*, GloMoSim и т.д.), так и систем общего назначения
(NS2, OMNet++ и т.д.).
TOSSIM – это симулятор приложений TinyOS. Он является библиотекой TinyOS. Tossim – симулятор дискретных событий. Событие сообщает о получении данных от сенсора,
о срабатывании таймера, о передачи пакетов данных или о завершении вычислений. Отсюда следует, что TOSSIM – эмулирует события для беспроводных сенсорных систем,
в которых моты работают под управлением TinyOS.
TOSSIM устанавливается на компьютер вместе с набором инструментальных средств, необходимых для создания, компиляции, установки и отладки приложений для беспроводных
сенсорных сетей. Работа с данных инструментальными средствами осуществляется через командную строку.
Основным преимуществом TOSSIM является то, что эмулятор позволяет моделировать работу приложений, которые написаны для реальных мотов. Компилятор TOSSIM`а заменяет
несколько низкоуровневых компонентов приложения, которые взаимодействуют с аппаратными ресурсами реального мота, компонентам, взаимодействующими с программными
реализациями этих устройств в эмуляторе.
TOSSIM преобразует прерывания компьютера в события эмулятора и выстраивает их в очередь; эта очередь событий эмулятора управляет выполнением приложения TinyOS для
отдельного моделируемого мота. Возникающие события вызывает обработчик прерывания, который посылает сигналы событиям и вызывает команды TinyOS, имитируя то, что
происходит в реальных мотах. Эти события и команды TinyOS запускают задачи и инициируют дальнейшую генерацию событий эмулятора.
Еще одна из широко известных сред моделирования – это среда AnyLogic. Среда AnyLogic позволяет использовать различные парадигмы моделирования (непрерывное и
дискретно-событийное моделирование,многоагентный подход), а также комбинировать их. Важными преимуществами системы являются:
- объектно-ориентированный подход к моделированию;
- визуальная среда разработки с богатой функциональностью;
- возможность использования языка Java.
В системе AnyLogic введено понятие активного объекта (АО) – расширение классических объектов, которые используются в объектно-ориентированных языках
программирования. В AnyLogic активный объект может включать также другие элементы.
Если стандартных средств AnyLogic не хватает для построения модели (или их использование неудобно), есть возможность использования языка Java. В простейшем случае,
это сводится к описанию действий, совершаемых при переходе в другое состояние, срабатывании таймера или приходе сообщения. Кроме того, можно добавлять собственный
код на Java к активному объекту, а также использовать сторонние библиотеки. Это делает систему AnyLogic легко расширяемой.[6]
NS2 – известный симулятор сетей с открытым кодом. Это система дискретного моделирования событий сети. NS широко используется для моделирования протоколов, а также
научных исследованиях сетей. Система поддерживает ряд популярных сетевых протоколов. Позволяет создавать модели проводных и беспроводных сетей. Данная система
позволяет реализовать практически любую модель за счет возможности дописать симулятор.[9]
На основе всего изложенного можно сделать вывод, что на данный момент существует большое число средств, для моделирования БСС. Все имеют свои плюсы и минусы. Для
поставленной задачи наиболее приемлемым являются симулятор TOSSIM. Данный вариант выбран по следующим причинам:
- симулятор разработан специально для БСС;
- эмулируер работу приложений написанные для реальных мотов;
- бесплатное распространение;
- позволяет эмулировать работу БСС под управлением TinyOS, которая является факетически стандартом для БСС.
Обзор методов обеспечения взаимодействия узлов БСС
Для обеспечения взаимодействия узлов БСС можно использовать достаточно большое число методов, например :
- теории вероятности;
- вычислительной математики;
- теории стохастических процессов;
- оптимизационные алгоритмы и т.д.
Рассмотрим несколько существующих методов.
Метод коллективной передачи данных. Сущность метода заключается в следующем. После того, как связность сети резко падает в результате выхода из строя узлов вокруг
базовой станции, оставшиеся узлы объединяются в кластеры и передают собранную информацию коллективно, используя принцип когерентной передачи информации. Это
значительно увеличивает расстояние, на которое могут передать узлы и, таким образом, можно ожидать повышения связности сети и продления времени жизни. Под временем
жизни сети понимается период времени до падения связности ниже определенного порога[10].
Алгоритм многозвенной передачи данных. Суть алгоритма заключается в том, что отправка сообщений из одной точки сети в другую по цепочке промежуточных узлов вместо
прямой дальней радиопередачи. Для синхронизации узлов предлагается использовать периодически повторяющуюся волну распространения сервисных сообщений, расходящуюся
из центра сети, в дополнение к сходящейся волне передачи данных. Встречные волны должны быть разнесены во времени для предотвращения пересечений. Оптимальным
является режим, когда управляющая волна испускается базовой станцией сразу же после прихода волны с данными, так как таким образом максимизируется возможная ширина
сети. Минимальный допустимый период следования волн зависит от ширины сети и времени прохода волны через один уровень.[11]
Метод определения координат в БСС. Суть метода заключается в поиске географического местоположения объектов беспроводной сети, что в свою очередь позволяет упростить
формирование, в стандарте ZigBee, таблиц маршрутизации. Для реализации данного метода использовались методы Колмановской фильтрации и методы теории стохастических
процессов.
Муравьиные алгоритмы. Данные алгоритмы являются широко известными. Этот метод дает хорошие результаты при решении задач оптимизации больших размеров. Достаточно
хорошо зарекомендовали себя для расчетов телекоммуникационных и компьютерных сетей. В настоящее время получены хорошие результаты для решения таких сложных задач,
как задача коммивояжера, раскраски графа, задача оптимизации сетевых трафиков и т.д.[12]
Муравьиные алгоритмы
Идея муравьиного алгоритма – моделирование поведения муравьёв, связанного с их способностью быстро находить кратчайший путь от муравейника к источнику пищи и
адаптироваться к изменяющимся условиям, находя новый кратчайший путь.
1. Первый муравей находит источник пищи (F) любым способом (а), а затем возвращается к гнезду (N), оставив за собой тропу из феромонов (b).
2. Затем муравьи выбирают один из четырёх возможных путей, затем укрепляют его и делают привлекательным.
3. Муравьи выбирают кратчайший маршрут, так как у более длинных феромоны сильнее испарились.
Описанное выше представлено на рис.6.3.
Рисунок 6.3 – Пример поиска муравьями кратчайшего маршрута.(анимация: объём – 29,5 КБ; размер – 114x279; количество кадров – 7; задержка между кадрами –
1000 мс; задержка между последним и первым кадрами – 2000 мс; количество циклов повторения – 6).
Среди экспериментов по выбору между двумя путями неравной длины, ведущих от колонии к источнику питания, биологи заметили, что, как правило, муравьи используют
кратчайший маршрут.[6] [10] Модель такого поведения заключается в следующем:
* Муравей (так называемый «Блиц») проходит случайным образом от колонии.
* Если он находит источник пищи, то возвращается в гнездо, оставляя за собой след из феромона.
* Эти феромоны привлекают других муравьёв находящихся вблизи, которые вероятнее всего пойдут по этому маршруту.
* Вернувшись в гнездо они укрепят феромонную тропу.
* Если существует 2 маршрута, то по более короткому, за то же время, успеют пройти больше муравьёв, чем по длинному.
* Короткий маршрут станет более привлекательным.
* Длинные пути, в конечном итоге, исчезнут из-за испарения феромонов.
Этапы решения задачи при помощи муравьиных алгоритмов
Для того чтобы построить подходящий муравьиный алгоритм для решения какой-либо задачи, нужно:
1. представить задачу в виде набора компонент и переходов или набором неориентированных взвешенных графов, на которых муравьи могут строить решения;
2. определить значение следа феромона;
3. определить эвристику поведения муравья, когда строим решение;
4. если возможно, то реализовать эффективный локальный поиск;
5. выбрать специфический ACO алгоритм и применить для решения задачи;
6.настроить параметр ACO алгоритма.
Также определяющими являются :
- количество муравьёв;
- баланс между изучением и использованием;
- сочетание с жадными эвристиками или локальным поиском;
- момент, когда обновляется феромон.
Предполагается, что в дальнейшем реализация описанного выше алгоритма позволит создать новый протокол передачи данных в беспроводных сенсорных сетях, который позволит
находить кратчайшие маршруты доставки пакета, при этом оптимально распределяя потоки информации по сети.