Магистерская диссертация А нализ работоспособности беспроводнойсенсорной сети
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Что делать?

Лучшим вариантом для тебя будет заказать написание работы у профессиональных авторов. Можешь узнать стоимость прямо сейчас, расчет и консультация бесплатно - https://nauchniestati.ru/stoimost-raboty/

Специалисты сделают всё за тебя: составят план работы для согласования с преподавателем, напишут работу по ГОСТу без плагиата с актуальными источниками (в том числе, зарубежными). В работе будет: анализ проблемы, новизна исследования, цель, задачи, методы, исследование (расчеты) , апробация, выводы – всё, что нужно для оценки “отлично”.

Какие плюсы?

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

Нет ограничений по срокам, предметам и времени. Самую быструю работу делали за 30 минут.

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

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

 

Дальше начинается та работа, которую ты искал…

 

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО «КубГУ»)

Кафедра вычислительных технологий

Магистерская диссертация А нализ работоспособности беспроводнойсенсорной сети

 

Работу выполнил - Бондарь Роман Александрович

Факультет компьютерных технологий и прикладной математики

Направление магистерской подготовки 010300.68

Фундаментальные информатика и информационные технологии

Научный руководитель, доктор ф.-м. наук, профессор - А.В. Смирнова

Научный руководитель, канд. ф.-м. наук, доцент - Е.В. Кособуцкая

Нормоконтролер,канд. физ.-мат. наук, доцент - Е.А. Данилов

 

Краснодар 2013



Содержание

 

Введение

1.Беспроводные сенсорные сети

1.1История и сфера использования

1.2Технология

1.3Платформы

1.4Алгоритмы канального уровня

2.Алгоритмы маршрутизации в беспроводных сенсорных сетях

2.1Требования к алгоритмам маршрутизации в БСС

2.2Обзор алгоритмов маршрутизации в БСС

2.3Сравнение алгоритмов маршрутизации в БСС

3.Имитационное моделирование беспроводных сенсорных сетей

3.1Особенности моделирования БСС

3.2Обзор систем моделированияБСС.

3.3Система Castalia.

4.Анализ работоспособности беспроводных сенсорных сетей

4.1Модель надежности беспроводной сенсорной сети

4.1.1 Модель надежности передачи пакета данных между двумя узлами

4.1.2Модель надежности узла

4.1.3Модель надежности коммуникации между узлами

4.2Исследование надежности передачи пакета данных между двумя узлами в системе Castalia.

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

4.2.2 Влияния мощности радио-модуля на надежность коммуникационной среды между двумя узлами в системе Castalia

4.3Исследование надежности сбора информации сетью в системе Castalia

4.3.1Влияние помех на надежность сбора информации сетью в системе Castalia

Заключение

Библиографический список

Приложение А

ПриложениеБ

 


Введение

 

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

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

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

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

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

Первая глава содержит общий обзор БСС.

Во второй главе приведено описание и сравнительный анализ некоторых алгоритмов маршрутизации в БСС.

В третьей главе содержится обзор и сравнительный анализ современного программного обеспечения для имитационного моделирования БСС, подробно описывается система Castalia.

Четвёртая глава посвящена рассмотрению математических методов оценки надежности БСС, в ней описываются функциональные возможности системы Castalia, также описаны модули, разработанные для проведения моделирования. Представлены результаты моделирования влияния помех и мощности передачи радиосигнала на работоспособность БСС, приводятся графики и таблицы для иллюстрации полученных результатов.

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

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




Беспроводные сенсорные сети

 

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

 

Технология

 

Беспроводные сенсорные сети (англ. WSN — Wireless Sensor Network) состоят из миниатюрных вычислительных устройств — мотов, снабжённых сенсорами (датчиками температуры, давления, освещенности, уровня вибрации, местоположения и т. п.) и трансиверами, работающими в заданном радиодиапазоне. Гибкая архитектура, снижение затрат при монтаже выделяют беспроводные сети интеллектуальных датчиков среди других беспроводных и проводных интерфейсов передачи данных, особенно когда речь идет о большом количестве соединенных между собой устройств, сенсорная сеть позволяет подключать до 65000 устройств[24]. Постоянное снижение стоимости беспроводных решений, повышение их эксплуатационных параметров позволяют постепенно переориентироваться с проводных решений в системах сбора телеметрических данных, средств дистанционной диагностики, обмена информации. «Сенсорная сеть» является сегодня устоявшимся термином (англ. Sensor Networks), обозначающим распределенную, самоорганизующуюся, устойчивую к отказу отдельных элементов сеть из необслуживаемых и не требующих специальной установки устройств. Каждый узел сенсорной сети может содержать различные датчики для контроля внешней среды, микрокомпьютер и радиоприемопередатчик. Это позволяет устройству проводить измерения, самостоятельно проводить начальную обработку данных и поддерживать связь с внешней информационной системой.

Технология ретранслируемой ближней радиосвязи 802.15.4/ZigBee[11], известная как «Сенсорные сети», является одним из современных направлений развития самоорганизующихся отказоустойчивых распределенных систем наблюдения и управления ресурсами и процессами. Сегодня технология беспроводных сенсорных сетей, является единственной беспроводной технологией, с помощью которой можно решить задачи мониторинга и контроля, которые критичны к времени работы датчиков. Объединенные в беспроводную сенсорную сеть датчики образуют территориально-распределенную самоорганизующуюся систему сбора, обработки и передачи информации. Основной областью применения является контроль и мониторинг измеряемых параметров физических сред и объектов.

Принятый стандарт IEEE 802.15.4[11] описывает контроль доступа к беспроводному каналу и физический уровень для низкоскоростных беспроводных персональных сетей, то есть два нижних уровня согласно сетевой модели OSI. «Классическая» архитектура сенсорной сети основана на типовом узле, который включает в себя:

· радиотракт;

· процессорный модуль;

· элемент питания;

· различные датчики.

Использование в типовом узле сенсорной сети в качестве датчика второго трансивера, соответствующего стандарту ISO 24730-5, позволяет использовать сенсорную сеть не только для мониторинга параметров сред и объектов, но и для определения местонахождения и мониторинга передвижений объектов, снабженных специальными радиочастотными метками. Построенная из таких узлов сенсорная сеть образует беспроводную инфраструктуруRTLS.

Типовой узел может быть представлен тремя типами устройств:

· сетевойкоординатор (FFD— Fully Function Device);

· осуществляет глобальную координацию, организацию и установку параметров сети;

· наиболее сложный из трех типов устройств, требует наибольший объём памяти и источник питания;

· устройство с полным набором функций (FFD— Fully Function Device);

· поддержка 802.15.4;

· дополнительная память и энергопотребление позволяет выполнять роль координатора сети;

· поддержка всех типов топологий («точка-точка», «звезда», «дерево», «ячеистая сеть»);

· способность выполнять роль координатора сети;

· способность обращаться к другим устройствам в сети;

· устройство с ограниченным набором функций (RFD— Reduced Function Device);

· поддерживает ограниченный набор функций 802.15.4;

· поддержка топологий «точка-точка», «звезда»;

· не выполняет функции координатора;

· обращается к координатору сети и маршрутизатору;

 

Платформы

 

Из-заотсутствиячеткой стандартизациивсенсорных сетях, существует несколькоразличных платформ. Все платформы отвечают основным базовым требованиям ксенсорным сетям: малаяпотребляемаямощность, длительное времяработы, маломощные приемо-передатчикииналичие сенсоров. К основным платформам можноотнестиMicaZ, TelosB, Intel Mote 2.

 

Рисунок 1 Типичный узел MicaZ

 

MicaZ (рисунок 1):

· микропроцессор: Atmel ATmega128L;

· 7.3728 Мгц частота;

· 128 Кб флеш-памятидляпрограмм;

· 4 Кб SRAM дляданных;

· 2 UART’s;

· SPI шина;

· I2С шина;

· радио: ChipCon CC2420;

· внешняяфлеш-память: 512 Кб;

· 51-pin дополнительный коннектор;

· восемь 10-битовых аналоговых I/O;

· 21 цифровых I/O;

· трипрограммируемых LEDs;

· JTAG порт;

· питание отдвух батарей AA.

TelosB (рисунок 2):

· микропроцессор: MSP430 F1611;

· 8 Мгц частота;

· 48 Кб флеш-памятидляпрограмм;

· 10 Кб RAM дляданных;

· UART;

· SPI шина;

· встроенный 12-битовый ADC/DAC;

· DMA контроллер

· радио: ChipCon CC2420;

· внешняяфлеш-память: 1024 Кб;

· 16-pin дополнительный коннектор;

· трипрограммируемых LEDs;

· JTAG порт;

· опционально: Сенсоры освещенности, влажности, температуры.;

· питание отдвух батарей AA.

Intel Mote 2 (рисунок 3):

· 320/416/520 МГц PXA271 XScale микропроцессор;

· 32 МбайтаФлеш-памяти;

· 32 МбайтаОЗУ;

· mini-USB интерфейс;

· I-Mote2 коннектор длявнешнихустройств(31+21 pin);

· radio: ChipCon CC2420;

· светодиодные индикаторы;

· питание оттрех батарей AAA.

Рисунок 2 Типичная схема узла TelosB

 

Рисунок 3 Плата Intel Mote 2

 

Основным стандартом передачиданных всенсорных сетях являетсяIEE802.15.4, которые специальнобыл разработан длябеспроводных сетей смаломощнымиприемо-передатчиками.

Никакихстандартоввобластипрограммногообеспечениявсенсорных сетях нет. Существует несколькосотен различных протоколовобработкиипередачиданных, атакже систем управленияузлами. Наиболее распространенной операционной системой являетсясистемасоткрытым кодом – TinyOs. Многие разработчикичасто пишут свою системууправления, частонаязыке Java.Программауправлениясенсорногоузлаподуправлением операционной системы TinyOs пишетсянаязыке nesC.


1.4 Алгоритмы канального уровня

 

Любая среда передачи (радио эфир, Ethernet и т.д.) ограниченна в виду того, что одновременно ей может воспользоваться только один или ограниченное число пользователей.

Протоколы канального уровня (MAC - MediumAccessControl) занимаются управлением доступа к единой среде передачи данных

Классификация MAC протоколов[3,7]:

· Протоколы на основе конкуренции

· Узлы конкурируют за доступ к среде передачи

· Примеры: ALOHA (Pure and Slotted), CSMA

· Протоколы по расписанию

· Узлы передают в различных подканалах

· Примеры: FDMA, TDMA, CDMA

Свойства MAC протоколов:

· Избежание коллизий - основная задача MAC протоколов;

· Энергетическая эффективность -важное свойство в сенсорных сетях. MACконтролирует трансивер;

· Масштабируемость и адаптивность - MAC протоколы должны уметь адаптироваться;

· Эффективность использования канала - yе так важно в сенсорных сетях.

· Задержка - важность зависит от конкретного приложения;

· Пропускная способность - зависит от приложений. Goodput;

· Справедливость - в сенсорных сетях может быть неоднородное распределение трафика.

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

Энергетическая эффективность один из самых главным факторов в сенсорных сетях. Основные источники потерь энергии:

· Коллизии - атрибут «конкурентных» протоколов;

· Пассивное прослушивание канала - для маломощных трансиверов, затраты энергии на прием сообщения могут быть больше чем на его передачу;

· Overhearing - может быть доминирующим фактором при большой нагрузки и плотности узлов;

· Control Packet Overhead - уменьшаютэффективнуюgoodput.

· Рассмотримнаиболеепопулярные.

S-MAC: Co-ordinated Adaptive Sleeping. Комбинирование основных достоинств протоколов «по расписанию» (TDMA) и «конкурентных» протоколов (CSMA). Синхронизированное расписание. Расписание подобрано таким образом, что когда узлы хотят передать информацию, они просыпаются синхронно. Несинхронизированная передача. Когда узел проснулся и хочет передать информацию, он делает это с помощью алгоритма CSMA/CA.

Основной компромисс: жертвуя задержками/справедливостью улучшаем энергетическую эффективность. S-MAC пытается уменьшить затраты энергии за счет:

· Пассивный прием – периодическое засыпание.

· Коллизии – использование RTS/CTS

· Overhearing – выключение радио, когда передача не предназначается для этого узла.

· Служебные пакеты – передача сообщений

Достоинства:

· Значительно более эффективный чем обычный CSMA/CA;

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

Недостатки:

· Алгоритмически сложнее;

· Существенные затраты на организацию (расписание);

· Комбинирует обнаружение несущей, RTS/CTS и засыпание по расписанию в один MAC протокол, что может помешать при оптимизации под конкретные приложения.

B-MAC: Versatile Low-power medium access for sensor networks.

Разделение канального уровня и контроля доступа к среде, дает лучшую оптимизацию под конкретные приложения. Сон без расписания (Unscheduled sleep). Уменьшает количество служебной информации. Но передатчику необходимо больше усилий, чтобы пробудить приемник от сна. Пробуждение без расписания (Unscheduled wakeup) Временные интервалы между просыпаниями очень короткие. Может быть использован CSMA/CA или другие app-specific алгоритмы.

 




Требования к алгоритмам маршрутизации в БСС

 

В связи с необходимостью сокращения использования вычислительных ресурсов (радио, батарея, датчики), протоколы маршрутизации в беспроводных сенсорных сетях, должны удовлетворять следующим требованиям[12]:

1. Автономность. Удаление определенного узла сети не должно повлиять на ее работу. Так как в сети не должно быть центрального узла, любой может выполнять функции маршрутизации удаленного.

2. Энергоэффективность. Протоколы маршрутизации должны максимально эффективно использовать питание.

3. Масштабируемость. Беспроводные сенсорные сети состоят из сотен узлов, поэтому протоколы маршрутизациидолжны работать с этим количеством узлов

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

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

6. Мобильность. В многих случаях узлы могут перемещаться в процессе функционирования. Протоколы маршрутизации должны учитывать это.

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

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

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

3. Агрегация данных. Относительно близко расположенные узлы могут давать схожие данные, которые могут быть объединены с некоторыми допустимыми потерями точности.

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

· Централизованные алгоритмы: Они выполняются на узле, который обладает знанием обо всей сети. Эти алгоритмы довольно дороги в использовании из-за высокой стоимости передачи данных, для получения состояние всей сети.

· Распределенные алгоритмы: коммуникация осуществляется передачей сообщений.

· Местные алгоритмы: узлы используют данные, полученные из ближней области. С использованием этой информации, алгоритм может выполняться на одном узле.

Используемые алгоритмы являются важным фактором, для принятия во внимание при выбореалгоритма маршрутизации. Если используются местные алгоритмы, то важна высокая коммуникационная связность близкорасположенных узлов. При централизованных алгоритмах объединение сообщений является большим плюсом. Распределенные алгоритмы должны обеспечивать надежную связь между любыми двумя узлами сети. При выборе местных алгоритмов следует учитывать, что использование дополнительных средств определения положения (например, GPS) может повысить цену таклй сети значительно.

Классификация по способу расчёта путей.

· Proactive protocols - Все пути рассчитываются заранее, до того как они будут нужны;

· Reactive protocols - Пути рассчитываются по требованию;

· Hybrid protocols - Комбинация двух подходов.

 

Система Castalia

 

В связи с обширными возможностями моделирования (в том числе радиоканала) в дальнейшем будем использовать систему Castalia.

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

‑Усовершенствованная модель канала на основе эмпирических данных измерений:

· модель системы учитываетпотерив канале передачи данных, а не просто соединений между узлами;

· комплексная модель для изменения потерь в канале;

· полностью поддерживает подвижность узлов;

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

‑Усовершенствованная модель радио основан на реальных маломощных радио устройствах связи:

· вероятность получения зависит от SINR, размера пакета, типа модуляции. Модуляции PSK, FSK поддерживаются, пользовательские модуляции могут быть определены путем задания SNR-BER кривой;

· несколько уровней мощности передачи с индивидуальными вариациями могут задаваться;

· состояния с различным энергопотреблением и задержками переключения между ними поддерживаются;

· реалистичное моделирование RSSI несущей.

‑Расширенное моделирование измерительных устройств:

· очень гибкая физическая модель процесса измерения;

· поддержка шумов, смещений и потребления энергии для измерительного устройства.

‑ MAC протоколы доступны.

‑ Предназначена для адаптации и расширения.

Что касается последнего пункта, Castalia была разработана с самого начала, так что пользователи могут легко реализовать / импортировать свои алгоритмы и протоколы в то время как Castaliaберет на себя особенностимоделирования. Модульность, надежность и скорость Castalia частично заслугаOMNeT++, которая легла в основу Castalia.

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

Castalia использует OMNeT++ в качестве своей базы поэтому предполагается, что у вас есть четкое понимание основных понятий OMNeT хотя это и не требуется, особенно если вы хотите использовать Castalia без создания собственных протоколов / приложений

OMNeT основан на понятиях модулей и сообщений. Простой модуль является основной единицей исполнения. Он принимает сообщения от других модулей или непосредственно, и в соответствии с сообщением, он выполняет часть кода. Этот код может хранить состояние, которое изменяется при приеме сообщений и может отправить новые сообщения. Есть также составные модули. Составной модуль просто способ построения простых и / или других композитных модулей


Узел2
Физическая среда
Беспроводной канал
Узел1
УзелN

Рисунок 9 Структура модулей в Castalia

 

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

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


Радио
Канальный уровень
Приложение
Менеджер датчиков
Менеджер ресурсов
Беспроводной канал
Физический уровень
Маршрутизация
Менеджер положения  
положение
Любой модуль (чтение)
Беспроводной канал  

Рисунок 10 Структура модуля узла

 

Описание модулей осуществляется с использованием языка OMNeT++ NED. С помощью этого языка мы можем легко определить модули, т. е. определить имя модуля, параметры модуля и модуля интерфейса и возможную структуру подмодуля (если это композитный модуль). Сам код модуля пишется на языке C++.

 





Модель надежности узла

Определимрегламентобслуживаниясетикакрегулярныйспериодом  контрольи заменунеисправныхузлов. Ограничениенанадежностьузловбеспроводной сенсорной сетиобусловленоразрядомих батареивпроцессеработысети,атакжевозможностьюслучайноговыходаихизстроя, вызванного отказом аппаратного или программного обеспечения, внешними воздействиями и т.д.[20,21,23]

Запишемвыражениедляопределениявероятностиработоспособности  -гоузлана заданный момент времени в виде[16]:

 

 

где  - вероятность случайных отказов  -го узла, закон распределения которых можно в первом приближении принять экспоненциальным [21]:

 

 

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

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

 

 

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

 

 

 - интенсивность потока событий безуспешных передач пакета  -ым узломв адрес  -го узла, ее величина может быть получена:

Будемполагать,чтопоистечениивремени . смоментазаменыбатареиузелтеряет работоспособностьсвероятностью 1.Заменаразряженныхбатарейузловосуществляетсяс периодичностью  (одновременнодлявсехузлов)[16].Такимобразом,длявеличины можно записать:

 

 

где -количествопрошедших периодоврегламентныхработсначалаработысетидо последнейзаменыисточникапитания, –количествополныхпериодоврегламентныхработ, прошедших с момента замены источника питания до отказа узла.

Заключение

 

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

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

Полученные результаты в целом соответствуют результатам других исследователей. [16].

В процессе работы были подготовлены и приняты в печать тезисы доклада «Исследование энергоэффективности алгоритмов маршрутизации в беспроводных сенсорных сетях» на объединенную научнуюконференциюстудентов и аспирантов факультета компьютерных технологий и прикладной математики «Прикладная математика XXI века», проходившую в Краснодаре, 9–12 апреля 2013 г.



Библиографический список

 

1. Castalia Installation Guide URL: http://castalia.research.nicta.com.au/pdfs/Castalia%20-%20Installation.pdf

2. Castalia official site URL: http://castalia.research.nicta.com.au/

3. Castalia User's manual URL:http://castalia.research.nicta.com.au/pdfs/Castalia%20-%20User%20Manual.pdf

4. Chandra T.D., Toueg S. Unreliable failure detectors for reliable distributed systems. // J. ACM. 1996. V. 43. P. 225-267.

5. Delporte-Gallet C., Devismes S., Fauconnier H. Stabilizing leader election in partial synchronous systems with crash failures. // J. Parallel Distrib. Comput. – 2010. – 70. – P. 45 – 58.

6. E. Egea-López, J. Vales-Alonso, A. S. Martínez-Sala, P. Pavón-Mariño, J. García-Haro Simulation Tools for Wireless Sensor Networks // Summer Simulation Multiconference - SPECTS 2005 // – 2005. – P. 2 – 9.

7. Ezio Biglieri Coding for Wireless Channels (Information Technology: Transmission, Processing and Storage) –2005. – P. 428.

8. Fei Yu A Survey of Wireless Sensor Network Simulation Tools URL: http://www1.cse.wustl.edu/~jain/cse567-11/ftp/sensor/index.html

9. Fischer M.J., Lynch N.A., Paterson M.S. Impossibility of distributed consensus with one faulty process. // J. ACM. 1985. V 32. P. 374-382.

10. Garay J.A., Perry K.J. A continuum of failure models for distributed computing. // Proc. 6nd Int. Workshop on Distributed Algorithms (Haifa, 1992) / S. Zaks, A. Segall (eds.). P. 153-156.

11. IEEE Standards 802.15.4. Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs). — IEEE Computer Society, 2003.

12. Luis Javier García Villalba , Ana Lucila Sandoval Orozco, Alicia Triviño Cabrera, Cláudia Jacy Barenco Abbas Routing Protocols in Wireless Sensor Networks // Sensors // – 2009 – 9 – P. 399 – 421.

13. Pease M., Shostak R., Lamport L. Reaching agreement in the presence of faults. // J. ACM. 1984. V. 27. P. 228-234.

14. Roya N., Gub T., Das S.K. Supporting pervasive computing applications with active context fusion and semantic context delivery. // Pervasive and Mobile Computing – 2010. – 6. – P. 21 – 42.

15. Zhang M., Chan M.C., Ananda A.L. Connectivity monitoring in wireless sensor networks. // Pervasive and Mobile Computing – 2010. – 6. – P. 112 – 127.

16. Акимов Е.В., Кузнецов М.Н. Вероятностные математические модели для оценки надежности беспроводных сенсорных сетей // Электронный журнал «Труды МАИ». Выпуск № 40// URL: http://www.mai.ru/science/trudy/

17. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. – М.: Вильямс, 2000. — 384 с.

18. Гейер Дж. Беспроводные сети. Первый шаг. / Пер. с англ. – М.: Вильямc, 2005. – 192 с.

19. Дейтел Х., Дейтел П. Как программировать на С++. – М.: Бином-Пресс, 2008. – 1446 с.

20. Нечаев Д.Ю., Чекмарев Ю.В. Надежность информационных систем. – М.: ДМК Пресс, 2012. – 64 с.

21. Острейковский В.А. Теория надежности. – М.: Высшая школа, 2000. – 464 с.

22. Острейковский В.А. Теория надежности. Учебник для вузов. – М.: Высшая школа, 2003. – 457 с.

23. Половко А.М., Гуров С. В. Основы теории надежности. – СПб.: БХВ-Петербург 2006. – 560 с.

24. Смелянский Р. Л. Компьютерные сети. В 2 томах. Том 1. Системы передачи данных. – М.: Академия, 2011. – 304 с.

25. Страуструп Б. Язык программирования С++. – М.: Бином, 2008. – 1104 с.

26. Тель Ж. Введение в распределенные алгоритмы. Пер. с англ. В. А. Захарова. – М.: МЦНМО, 2009. – 616 с.

27. Ушаков И.А. Вероятностные модели надежности информационно-вычислительных систем. – М.: Радио и связь 1991. – 132 с.

28. Хьюз К., Хьюз Т. Параллельное и распределенное программирование на С++. Пер. с англ. – М.: Издательский дом Вильямс, 2004. – 672 с.

29. Шахнович И.А.Современные технологии беспроводной связи. – М.: Техносфера, 2006. – 288 с.

30. Шубин В.И., Красильникова О. С. Беспроводные сети передачи данных. – М.: Вузовская книга, 2012. – 104 с.

31. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. Пер. с англ. – М.: Издательский дом Вильямс, 2003. – 512 с.

 



Приложение А

 

Текстфайла omnetpp.ini.

[General]

include ../Parameters/Castalia.ini

sim-time-limit = 100s

SN.field_x = 30# meters

SN.field_y = 30# meters

SN.numNodes = 9

SN.deployment = "3x3"

# Removing variability from wireless channel

SN.wirelessChannel.bidirectionalSigma = 0

SN.wirelessChannel.sigma = 0

# Select a Radio and a default Tx power

SN.node[*].Communication.Radio.RadioParametersFile = "../Parameters/Radio/CC2420.txt"

SN.node[*].Communication.Radio.TxOutputPower = "-5dBm"

SN.node[*].ApplicationName = "interNodes"

[Config varyTxPower]

SN.node[*].Communication.Radio.TxOutputPower = ${TXpower="0dBm","-1dBm","-3dBm","-5dBm"}

[Config varySigma]

SN.wirelessChannel.sigma = ${Sigma=0,1,3,5}

Текстфайла interNodes.ned

simple interNodes like node.application.iApplication {

parameters:

string applicationID = default ("interNodes");

bool collectTraceInfo = default (false);

int packetHeaderOverhead = default (8);

int priority = default (1);

int constantDataPayload = default (8);

int packetSpacing = default (100);// ms

int packetsPerNode = default (100);

int packetSize = default (32);// bytes

gates:

output toCommunicationModule;

output toSensorDeviceManager;

input fromCommunicationModule;

input fromSensorDeviceManager;

input fromResourceManager;

}

Текстфайла interNodes.h

#ifndef _INTERNODES_H_

#define _INTERNODES_H_

#include "VirtualApplication.h"

using namespace std;

struct neighborRecord {

int id;

int timesRx;

int receivedPackets;

};

enum interNodesTimers {

SEND_PACKET = 1,

};

class interNodes: public VirtualApplication {

private:

// parameters and variables

int priority;

int packetHeaderOverhead;

bool printConnMap;

int constantDataPayload;

double packetSpacing;

int packetsPerNode;

int packetSize;

vector<neighborRecord> neighborTable;

int packetsSent;

int serialNumber;

int totalSNnodes;

double txInterval_perNode;

double txInterval_total;

protected:

void startup();

void finishSpecific();

void fromNetworkLayer(ApplicationPacket *, const char *, double, double);

void timerFiredCallback(int);

void updateNeighborTable(int nodeID, int theSN);

};

#endif

Текстфайла interNodes.cc

#include "interNodes.h"

Define_Module(interNodes);

void interNodes::startup()

{

packetSpacing = (double)par("packetSpacing") / 1000.0;

packetsPerNode = par("packetsPerNode");

packetSize = par("packetSize");

neighborTable.clear();

packetsSent = 0;

totalSNnodes = getParentModule()->getParentModule()->par("numNodes");

txInterval_perNode = packetsPerNode * packetSpacing;

txInterval_total = (txInterval_perNode * totalSNnodes);

if (strtod(ev.getConfig()->getConfigValue("sim-time-limit"), NULL) < txInterval_total) {

trace() << "ERROR: Total sim time should be at least = " << txInterval_total;

opp_error("\nError: simulation time not large enough for the conectivity map application\n");

}

double startTxTime = txInterval_perNode * self;

setTimer(SEND_PACKET, startTxTime);

}

void interNodes::fromNetworkLayer(ApplicationPacket * rcvPacket, const char *source, double rssi, double lqi)

{

updateNeighborTable(atoi(source), rcvPacket->getSequenceNumber());

}

void interNodes::timerFiredCallback(int timerIndex)

{

switch (timerIndex) {

case SEND_PACKET:{

if (packetsSent >= packetsPerNode)

break;

toNetworkLayer(createGenericDataPacket(0.0, packetsSent, packetSize), BROADCAST_NETWORK_ADDRESS);

packetsSent++;

setTimer(SEND_PACKET, packetSpacing);

break;

}

}

}

void interNodes::finishSpecific()

{

declareOutput("Packets received");

for (int i = 0; i < (int)neighborTable.size(); i++) {

collectOutput("Packets received", neighborTable[i].id,

"Success", neighborTable[i].receivedPackets);

}

}

void interNodes::updateNeighborTable(int nodeID, int serialNum)

{

int i = 0, pos = -1;

int tblSize = (int)neighborTable.size();

for (i = 0; i < tblSize; i++)

if (neighborTable[i].id == nodeID)

pos = i;

if (pos == -1) {

neighborRecord newRec;

newRec.id = nodeID;

newRec.timesRx = 1;

if ((serialNum >= 0) && (serialNum < packetsPerNode))

newRec.receivedPackets = 1;

neighborTable.push_back(newRec);

} else {

neighborTable[pos].timesRx++;

if ((serialNum >= 0) && (serialNum < packetsPerNode))

neighborTable[pos].receivedPackets++;

}

}



ПриложениеБ

 

ТекстфайлаDataToSink.ned

package node.application.DataToSink;

simple DataToSink like node.application.iApplication {

parameters:

string applicationID = default ("DataToSink");

bool collectTraceInfo = default (true);

int priority = default (1);

int packetHeaderOverhead = default (8);// in bytes

int constantDataPayload = default (12);// in bytes

int maxSampleInterval = default (60000);// in msec

int minSampleInterval = default (1000);// in msec

bool isSink = default (false);

gates:

output toCommunicationModule;

output toSensorDeviceManager;

input fromCommunicationModule;

input fromSensorDeviceManager;

input fromResourceManager;

}

ТекстфайлаDataToSink.h

#ifndef _DATATOSINK_H_

#define _DATATOSINK_H_

#include "VirtualApplication.h"

#include "Packet_m.h"

using namespace std;

enum DataToSinkTimers {

REQUEST_SAMPLE = 1,

SEND_DATA = 2,

};

class DataToSink: public VirtualApplication {

private:

double maxSampleInterval;

double minSampleInterval;

int routingLevel;

double lastSensedValue;

int currSentSampleSN;

double randomBackoffIntervalFraction;

bool sentOnce;

protected:

void startup();

void fromNetworkLayer(ApplicationPacket *, const char *, double, double);

void handleSensorReading(SensorReadingMessage *);

void timerFiredCallback(int);

};

#endif

ТекстфайлаDataToSink.cc

#include "DataToSink.h"

Define_Module(DataToSink);

void DataToSink::startup()

{

maxSampleInterval = ((double)par("maxSampleInterval")) / 1000.0;

minSampleInterval = ((double)par("minSampleInterval")) / 1000.0;

currSentSampleSN = 0;

randomBackoffIntervalFraction = genk_dblrand(0);

sentOnce = false;

setTimer(REQUEST_SAMPLE, maxSampleInterval * randomBackoffIntervalFraction);

}

void DataToSink::timerFiredCallback(int index)

{

switch (index) {

case REQUEST_SAMPLE:{

requestSensorReading();

setTimer(REQUEST_SAMPLE, maxSampleInterval);

break;

}

}

}

void DataToSink::fromNetworkLayer(ApplicationPacket * genericPacket,

const char *source, double rssi, double lqi)

{

DataToSinkDataPacket *rcvPacket = check_and_cast<DataToSinkDataPacket*>(genericPacket);

ValueReportData theData = rcvPacket->getExtraData();

if (isSink)

trace() << "Sink received from: " << theData.nodeID << " \tvalue=" << rcvPacket->getData();

}

void DataToSink::handleSensorReading(SensorReadingMessage * rcvReading)

{

// int sensIndex =rcvReading->getSensorIndex();

// string sensType(rcvReading->getSensorType());

double sensValue = rcvReading->getSensedValue();

// schedule the TX of the value

trace() << "Sensed = " << sensValue;

ValueReportData tmpData;

tmpData.nodeID = (unsigned short)self;

tmpData.locX = mobilityModule->getLocation().x;

tmpData.locY = mobilityModule->getLocation().y;

DataToSinkDataPacket *packet2Net =

new DataToSinkDataPacket("Value reporting pck", APPLICATION_PACKET);

packet2Net->setExtraData(tmpData);

packet2Net->setData(sensValue);

packet2Net->setSequenceNumber(currSentSampleSN);

currSentSampleSN++;

toNetworkLayer(packet2Net, SINK_NETWORK_ADDRESS);

sentOnce = true;

}

ТекстфайлаMultipathRingsRouting.ned

package node.communication.routing.multipathRingsRouting;

simple MultipathRingsRouting like node.communication.routing.iRouting {

parameters:

bool collectTraceInfo = default (false);

int maxNetFrameSize = default (0);// bytes, 0 means no limit

int netBufferSize = default (32);// number of messages

int netDataFrameOverhead = default (14);// bytes

int mpathRingsSetupFrameOverhead = default (13);// bytes

int netSetupTimeout = default (50);// msec

gates:

output toCommunicationModule;

output toMacModule;

input fromCommunicationModule;

input fromMacModule;

input fromCommModuleResourceMgr;

}

ТекстфайлаMultipathRingsRouting.h

#ifndef _MULTIPATHRINGSROUTING_H_

#define _MULTIPATHRINGSROUTING_H_

#include <map>

#include "VirtualRouting.h"

#include "MultipathRingsRoutingPacket_m.h"

#include "MultipathRingsRoutingControl_m.h"

#define NO_LEVEL-110

#define NO_SINK-120

using namespace std;

enum MultipathRingsRoutingTimers {

TOPOLOGY_SETUP_TIMEOUT = 1,

};

class MultipathRingsRouting: public VirtualRouting {

private:

int mpathRingsSetupFrameOverhead;// in bytes

double netSetupTimeout;

// multipathRingsRouting-related member variables

int currentSequenceNumber;

int currentSinkID;

int currentLevel;

int tmpSinkID;

int tmpLevel;

bool isSink;//is a .ned file parameter of the Application module

bool isConnected;//attached under a parent node

bool isScheduledNetSetupTimeout;

protected:

void startup();

void fromApplicationLayer(cPacket *, const char *);

void fromMacLayer(cPacket *, int, double, double);

void sendTopologySetupPacket();

void sendControlMessage(multipathRingsRoutingControlDef);

void timerFiredCallback(int);

void processBufferedPacket();

};

ТекстфайлаMultipathRingsRouting.cc

#include "MultipathRingsRouting.h"

Define_Module(MultipathRingsRouting);

void MultipathRingsRouting::startup()

{

netSetupTimeout = (double)par("netSetupTimeout") / 1000.0;

mpathRingsSetupFrameOverhead = par("mpathRingsSetupFrameOverhead");

// check that the Application module used has the boolean parameter "isSink"

cModule *appModule = getParentModule()->getParentModule()->getSubmodule("Application");

if (appModule->hasPar("isSink"))

isSink = appModule->par("isSink");

else

opp_error("\nMultiPathRings routing has to be used with an application that defines the parameter isSink");

currentLevel = tmpLevel = isSink ? 0 : NO_LEVEL;

currentSinkID = tmpSinkID = isSink ? self : NO_SINK;

isConnected = (isSink) ? true : false;

isScheduledNetSetupTimeout = false;

currentSequenceNumber = 0;

if (isSink)

sendTopologySetupPacket();

}

void MultipathRingsRouting::sendTopologySetupPacket()

{

MultipathRingsRoutingPacket *setupPkt =

new MultipathRingsRoutingPacket("Multipath rings routing setup packet", NETWORK_LAYER_PACKET);

setupPkt->setMultipathRingsRoutingPacketKind(MPRINGS_TOPOLOGY_SETUP_PACKET);

setupPkt->setSource(SELF_NETWORK_ADDRESS);

setupPkt->setDestination(BROADCAST_NETWORK_ADDRESS);

setupPkt->setSinkID(currentSinkID);

setupPkt->setSenderLevel(currentLevel);

toMacLayer(setupPkt, BROADCAST_MAC_ADDRESS);

}

void MultipathRingsRouting::sendControlMessage(multipathRingsRoutingControlDef kind)

{

MultipathRingsRoutingControlMessage *ctrlMsg =

new MultipathRingsRoutingControlMessage("Multipath routing control message",NETWORK_CONTROL_MESSAGE);

ctrlMsg->setMultipathRingsRoutingControlMessageKind(kind);

ctrlMsg->setLevel(currentLevel);

ctrlMsg->setSinkID(currentSinkID);

toApplicationLayer(ctrlMsg);

}

void MultipathRingsRouting::timerFiredCallback(int index)

{

if (index != TOPOLOGY_SETUP_TIMEOUT)

return;

isScheduledNetSetupTimeout = false;

if (tmpLevel == NO_LEVEL) {

setTimer(TOPOLOGY_SETUP_TIMEOUT, netSetupTimeout);

isScheduledNetSetupTimeout = true;

} else if (currentLevel == NO_LEVEL) {

//Broadcast to all nodes of currentLevel-1

currentLevel = tmpLevel + 1;

currentSinkID = tmpSinkID;

if (!isConnected) {

isConnected = true;

sendControlMessage(MPRINGS_CONNECTED_TO_TREE);

trace() << "Connected to " << currentSinkID << " at level " << currentLevel;

if (!TXBuffer.empty())

processBufferedPacket();

} else {

sendControlMessage(MPRINGS_TREE_LEVEL_UPDATED);

trace() << "Reconnected to " << currentSinkID << " at level " << currentLevel;

}

sendTopologySetupPacket();

}

tmpLevel = isSink ? 0 : NO_LEVEL;

tmpSinkID = isSink ? self : NO_SINK;

}

void MultipathRingsRouting::processBufferedPacket()

{

while (!TXBuffer.empty()) {

toMacLayer(TXBuffer.front(), BROADCAST_MAC_ADDRESS);

TXBuffer.pop();

}

}

void MultipathRingsRouting::fromApplicationLayer(cPacket * pkt, const char *destination)

{

string dst(destination);

MultipathRingsRoutingPacket *netPacket =

new MultipathRingsRoutingPacket("Multipath rings routing data packet", NETWORK_LAYER_PACKET);

netPacket->setMultipathRingsRoutingPacketKind(MPRINGS_DATA_PACKET);

netPacket->setSource(SELF_NETWORK_ADDRESS);

netPacket->setDestination(destination);

netPacket->setSinkID(currentSinkID);

netPacket->setSenderLevel(currentLevel);

encapsulatePacket(netPacket, pkt);

if (dst.compare(SINK_NETWORK_ADDRESS) == 0 || dst.compare(PARENT_NETWORK_ADDRESS) == 0) {

netPacket->setSequenceNumber(currentSequenceNumber);

currentSequenceNumber++;

if (bufferPacket(netPacket)) {

if (isConnected)

processBufferedPacket();

else

sendControlMessage(MPRINGS_NOT_CONNECTED);

} else {

//Here we could send a control message to upper layer informing that our buffer is full

}

} else {//++++ need to control flooding

toMacLayer(netPacket, BROADCAST_MAC_ADDRESS);

}

}

void MultipathRingsRouting::fromMacLayer(cPacket * pkt, int macAddress, double rssi, double lqi)

{

MultipathRingsRoutingPacket *netPacket = dynamic_cast <MultipathRingsRoutingPacket*>(pkt);

if (!netPacket)

return;

switch (netPacket->getMultipathRingsRoutingPacketKind()) {

case MPRINGS_TOPOLOGY_SETUP_PACKET:{

if (isSink)

break;

if (!isScheduledNetSetupTimeout) {

isScheduledNetSetupTimeout = true;

setTimer(TOPOLOGY_SETUP_TIMEOUT, netSetupTimeout);

tmpLevel = NO_LEVEL;

tmpSinkID = NO_SINK;

}

if (tmpLevel == NO_LEVEL || tmpLevel > netPacket->getSenderLevel()) {

tmpLevel = netPacket->getSenderLevel();

tmpSinkID = netPacket->getSinkID();

}

break;

}

case MPRINGS_DATA_PACKET:{

string dst(netPacket->getDestination());

string src(netPacket->getSource());

int senderLevel = netPacket->getSenderLevel();

int sinkID = netPacket->getSinkID();

if (dst.compare(BROADCAST_NETWORK_ADDRESS) == 0 ||

dst.compare(SELF_NETWORK_ADDRESS) == 0) {

// We are not filtering packets that are sent to this node directly or to

// broadcast network address, making application layer responsible for them

toApplicationLayer(pkt->decapsulate());

} else if (dst.compare(SINK_NETWORK_ADDRESS) == 0) {

if (senderLevel == currentLevel + 1) {

if (self == sinkID) {

// Packet is for this node, if filter passes, forward it to application

if (isNotDuplicatePacket(pkt))

toApplicationLayer(decapsulatePacket(pkt));

else

trace() << "Discarding duplicate packet from node " << src;

} else if (sinkID == currentSinkID) {

// We want to rebroadcast this packet since we are not its destination

// For this, a copy of the packet is created and sender level field is

// updated before calling toMacLayer() function

MultipathRingsRoutingPacket *dupPacket = netPacket->dup();

dupPacket->setSenderLevel(currentLevel);

toMacLayer(dupPacket, BROADCAST_MAC_ADDRESS);

}

}

} else if (dst.compare(PARENT_NETWORK_ADDRESS) == 0) {

if (senderLevel == currentLevel + 1 && sinkID == currentSinkID) {

// Packet is for this node, if filter passes, forward it to application

if (isNotDuplicatePacket(pkt))

toApplicationLayer(decapsulatePacket(pkt));

else

trace() << "Discarding duplicate packet from node " << src;

}

}

break;

}

}

}

Текстфайла omnetpp.ini.

[General]

include ../Parameters/Castalia.ini

sim-time-limit = 600s

SN.field_x = 100# meters

SN.field_y = 100# meters

SN.numNodes = 36

SN.deployment = "6x6"

SN.node[*].Communication.Radio.RadioParametersFile = "../Parameters/Radio/CC2420.txt"

SN.node[*].Communication.RoutingProtocolName = "MultipathRingsRouting"

SN.node[*].Communication.MACProtocolName = "TMAC"

SN.node[*].ApplicationName = "DataToSink"

SN.node[*].Communication.Routing.collectTraceInfo = true

SN.node[3].Application.isSink = true

[Config varyTxPower]

SN.node[*].Communication.Radio.TxOutputPower = ${TXpower="0dBm","-1dBm","-3dBm","-5dBm"}

[Config varySigma]

SN.wirelessChannel.sigma = ${Sigma=0,1,3,5}

Размещено на Allbest.ru

Что делать?

Лучшим вариантом для тебя будет заказать написание работы у профессиональных авторов. Можешь узнать стоимость прямо сейчас, расчет и консультация бесплатно - https://nauchniestati.ru/stoimost-raboty/

Специалисты сделают всё за тебя: составят план работы для согласования с преподавателем, напишут работу по ГОСТу без плагиата с актуальными источниками (в том числе, зарубежными). В работе будет: анализ проблемы, новизна исследования, цель, задачи, методы, исследование (расчеты) , апробация, выводы – всё, что нужно для оценки “отлично”.

Какие плюсы?

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

Нет ограничений по срокам, предметам и времени. Самую быструю работу делали за 30 минут.

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

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

 

Дальше начинается та работа, которую ты искал…

 

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО «КубГУ»)

Кафедра вычислительных технологий

Магистерская диссертация А нализ работоспособности беспроводнойсенсорной сети

 

Работу выполнил - Бондарь Роман Александрович

Факультет компьютерных технологий и прикладной математики

Направление магистерской подготовки 010300.68

Фундаментальные информатика и информационные технологии

Научный руководитель, доктор ф.-м. наук, профессор - А.В. Смирнова

Научный руководитель, канд. ф.-м. наук, доцент - Е.В. Кособуцкая

Нормоконтролер,канд. физ.-мат. наук, доцент - Е.А. Данилов

 

Краснодар 2013



Содержание

 

Введение

1.Беспроводные сенсорные сети

1.1История и сфера использования

1.2Технология

1.3Платформы

1.4Алгоритмы канального уровня

2.Алгоритмы маршрутизации в беспроводных сенсорных сетях

2.1Требования к алгоритмам маршрутизации в БСС

2.2Обзор алгоритмов маршрутизации в БСС

2.3Сравнение алгоритмов маршрутизации в БСС

3.Имитационное моделирование беспроводных сенсорных сетей

3.1Особенности моделирования БСС

3.2Обзор систем моделированияБСС.

3.3Система Castalia.

4.Анализ работоспособности беспроводных сенсорных сетей

4.1Модель надежности беспроводной сенсорной сети

4.1.1 Модель надежности передачи пакета данных между двумя узлами

4.1.2Модель надежности узла

4.1.3Модель надежности коммуникации между узлами

4.2Исследование надежности передачи пакета данных между двумя узлами в системе Castalia.

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

4.2.2 Влияния мощности радио-модуля на надежность коммуникационной среды между двумя узлами в системе Castalia

4.3Исследование надежности сбора информации сетью в системе Castalia

4.3.1Влияние помех на надежность сбора информации сетью в системе Castalia

Заключение

Библиографический список

Приложение А

ПриложениеБ

 


Введение

 

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

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

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

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

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

Первая глава содержит общий обзор БСС.

Во второй главе приведено описание и сравнительный анализ некоторых алгоритмов маршрутизации в БСС.

В третьей главе содержится обзор и сравнительный анализ современного программного обеспечения для имитационного моделирования БСС, подробно описывается система Castalia.

Четвёртая глава посвящена рассмотрению математических методов оценки надежности БСС, в ней описываются функциональные возможности системы Castalia, также описаны модули, разработанные для проведения моделирования. Представлены результаты моделирования влияния помех и мощности передачи радиосигнала на работоспособность БСС, приводятся графики и таблицы для иллюстрации полученных результатов.

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

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




Беспроводные сенсорные сети

 

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

 

Дата: 2019-05-29, просмотров: 279.