5
Материалы Международной научно-технической конференции, 20 – 24 ноября 2017 г. МОСКВА INTERMATIC – 2 0 1 7, часть 4 МИРЭА МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT НА ОСНОВЕ ПРОТОКОЛА ОБМЕНА СООБЩЕНИЯМИ MQTT © 2017 г. С.Г. МАЙХУБ Московский технологический университет (МИРЭА) e-mail: [email protected] Введение Для обмена сообщениями между IoT–устройствами в больших сетях могут ис- пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые коммуни- кации обеспечиваться проводными и беспроводными технологиями (802.15.4,6LoWPAN), Ethernet, Wi-Fi, RFID, zigbee, Bluetooth, GSM, GPRS, GPS, 3G и т.д. Протокол MQTT используется для обеспечения различных коммуникаций: меж- ду IoT–устройствами; между IoT-–устройством и сервером; между разнесенными IoT– устройствами через интернет. Нас будет интересовать сбор данных в беспроводной сенсорной IoT–сети по протоколу MQTT, т.е. между устройствами через интернет и/или между IoT-устройством и сервером (MQTT – Брокер). В первом разделе рассмотрены протоколы выбранного стека IoT, использован- ные в построении модели сбора данных, в том числе, протокол маршрутизации RPL, протокол 6LoWPAN, протокол MQTT. Во втором разделе будет приведена модель сбора данных, а в третьем будут показаны реализованная модель в среде Cooja, и ре- зультаты измерения занимаемой памяти IoT–устройств этой модели. 1. Стек протоколов для модели сбора данных в IoT–сетях Стек используемых протоколов показан на рис. 1. На физическом (Physical Layer) и канальном (Data Link Layer) уровнях используется протокол IEEE 802.15.4, уровень адаптации (Adaptation Layer) образован протоколом 6LoWPAN, на сетевом уровне применены IPv6 и RPL, на транспортном (Transport Layer) – TCP, а на приклад- ном (Application Layer) – MQTT. Рис. 1. Используемый стек протоколов IoT. 991

МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

Материалы Международной научно-технической конференции, 20 – 24 ноября 2017 г.

МОСКВА INTERMATIC – 2 0 1 7, часть 4 МИРЭА

МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT НА ОСНОВЕ ПРОТОКОЛА ОБМЕНА СООБЩЕНИЯМИ MQTT

© 2017 г. С.Г. МАЙХУБ

Московский технологический университет (МИРЭА)

e-mail: [email protected]

Введение Для обмена сообщениями между IoT–устройствами в больших сетях могут ис-

пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые коммуни-кации обеспечиваться проводными и беспроводными технологиями (802.15.4,6LoWPAN), Ethernet, Wi-Fi, RFID, zigbee, Bluetooth, GSM, GPRS, GPS, 3G и т.д.

Протокол MQTT используется для обеспечения различных коммуникаций: меж-ду IoT–устройствами; между IoT-–устройством и сервером; между разнесенными IoT–устройствами через интернет. Нас будет интересовать сбор данных в беспроводной сенсорной IoT–сети по протоколу MQTT, т.е. между устройствами через интернет и/или между IoT- устройством и сервером (MQTT – Брокер).

В первом разделе рассмотрены протоколы выбранного стека IoT, использован-ные в построении модели сбора данных, в том числе, протокол маршрутизации RPL, протокол 6LoWPAN, протокол MQTT . Во втором разделе будет приведена модель сбора данных, а в третьем будут показаны реализованная модель в среде Cooja, и ре-зультаты измерения занимаемой памяти IoT–устройств этой модели.

1. Стек протоколов для модели сбора данных в IoT–сетях

Стек используемых протоколов показан на рис. 1. На физическом (Physical Layer) и канальном (Data Link Layer) уровнях используется протокол IEEE 802.15.4, уровень адаптации (Adaptation Layer) образован протоколом 6LoWPAN, на сетевом уровне применены IPv6 и RPL, на транспортном (Transport Layer) – TCP, а на приклад-ном (Application Layer) – MQTT.

Рис. 1. Используемый стек протоколов IoT.

991

Page 2: МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

Рабочая группа ROLL (Routing Over Low-power and Lossy Links) организации IETF стандартизовала протокол маршрутизации RPL (Routing Protocol for Low-Power and Lossy Networks) для узлов с ограниченными ресурсами [2] [3]. Этот протокол ори-ентирован на IPv6–сети и обеспечивает надежную топологию маршрутизации на кана-лах с потерями. В его основе лежит направленный ациклический граф расстояния DODAG (Distance Oriented Directed Acyclic Graph), поддерживающий, по крайней мере, один маршрут для каждого узла к корню.

Протокол 6LoWPAN (IPv6 over Low power WPAN) специфицирует передачу IPv6–пакетов через сети с технологией канального уровня 802.15.4 [4], [5], [6]. Он обеспечи-вает функции сжатия заголовков, фрагментацию пакетов и доставку пакетов в режиме «мульти-хоп» на канальном уровне.

Открытый протокол MQTT [7] представляет собой протокол типа Подпис-чик/Издатель (Subscribe/Publish), работающий над протоколом транспортного уровня TCP . Размер его заголовка составляет всего 2 байта, что делает его особенно эффективным для межмашинного взаимодействия (М2М) в IoT–сетях. Протокол MQTT учитывает такие особенности устройств БСС, как ограниченные ресурсы процессора, памяти и пропускной способности.

Архитектура MQTT базируется на трёх компонентах: 1 – MQTT–брокер (Сервер) ; 2 – Набор издателей MQTT; 3 – Набор подписчиков MQTT.

Схема работы протокола MQTT приведена на рис. 2. Первичные данные MQTT–издатели посредством сообщений (PUBLISH) направляют в определенный то-пик MQTT–брокеру. MQTT–подписчики посредством сообщений (SUBSCRIBE) инфор-мируют брокера о своей заинтересованности в определенных данных (топиках). Если существует соответствие между желанием подписчика и топиком издателя, то брокер передаст подписчику соответствующие данные.

Рис. 2. Схема MQTT [8]. Протокол MQTT поддерживает три схемы качества обслуживания (Quality of

Service- QoS) [1]: 1-Схема QoS 0 (At most once); 2-Схема QoS 1 (At least once); 3-Схема QoS 2 (Exactly once).

2. Модель сбора данных по протоколу MQTT

Модель сбора данных в БСС по протоколу MQTT показана на рис. 3. В соответ-ствии с ней узлы БСС являются MQTT–издателями и периодически посылают (напри-мер, каждые 45 сек.) данные к узлу сбора (Sink), выполняющего роль MQTT–подписчика.

992

Page 3: МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

Рис. 3. Модель сбора данных.

На рис. 4 показано, как происходят операции подписки и публикации в этой мо-

дели .

Рис. 4. Операции подписки и публикации MQTT.

Операция подписки заключается в послании сообщений (SUBSCRIBE), а опера-

ция публикации в послании сообщений (PUBLISH). На рис. 4 не показаны сообщения подтверждения получения (Acknowledgements), наличие которых зависит от того, ка-кая схема QoS, использована протоколом MQTT.

3. Моделирование в Cooja процесса сбора данных по протоколу MQTT Операционная система Contiki представляет собой облегченную ОС с открытым

кодом для маломощных микроконтроллеров IoT-устройств [9]. Программная среда Cooja представляет собой симулятор для Contiki. Основным предназначением среды

Издатель (узел_1)

Sink (Подписчик) Брокер

SUBSCRIBE: MIREA_WSN/Room_1/status

PUBLISH: MIREA_WSN/Room_1/status

Издатель (узел_2)

… PUBLISH: MIREA_WSN/Room_1/status

PUBLISH: MIREA_WSN/Room_1/status

PUBLISH: MIREA_WSN/Room_1/status

Sink (Подписчик-

MQTT) Брокер

Интернет

Border Router

БСС Издатель- MQTT

Сообшения MQTT (PUBLISH)

993

Page 4: МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

Cooja является симуляция поведения ОС Contiki , позволяющая разработчику протес-тировать свой код до внедрения. Симулятор Cooja поддерживает различные аппарат-ные платформы IoT.

В зависимости от энергопотребления в IoT–платформах можно выделить сле-дующие группы:

• Ultra-low power (Zolertia z1 (cpu-16 bit); Wismote; Skymote (cpu-16bit)); • Medium power (Arduino device (ESP8266 (cpu-32-bit)); • More powerful (Raspberry pi) . В данной работе была выбрана платформа Zolertia Z1 [10], состоящая из 16-

разрядного ultra-low power микроконтроллера (16 MHz MSP430 RISC MCU, ROM 92 KB, RAM 8 KB), радиочипа CC2420, работающего в диапазоне 2,4 ГГц.

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

• Сеть с технологией канального уровня 6LoWPAN/802.15.4; o Узел (1) представляет собой граничный маршрутизатор (Border router), иг-

рающий роль корня DODAG для протокола RPL и обеспечивающий под-ключение сети 6LoWPAN/802.15.4 к локальной сети, в которой работает MQTT–брокер;

o Узлы (2-3-4-5) представляют собой набор MQTT-издателей. • MQTT–брокер реализован на ноутбуке с установленной программой

Mosquitto, являющейся открытой реализацией брокера MQTT [11]; • Ноутбук также играет роль MQTT–подписчика.

Рис. 5. Сеть 802.15.4 в Cooja.

Для программирования MQTT–клиентов в Cooja использовалась модифициро-ванная программа (Mqtt-Demo.c) по названию (mqtt-data-collection.c), а для граничного маршрутизатора– программа (border-router.c). Обе программы входят в состав Contiki.

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

Одна из задач моделирования состояла в получении оценок использованной памяти ROM, RAM узлов, получаемых посредством команды (size mqtt-data-collection.z1) в терминале Contiki. В табл. 1 приведены размеры секций памяти. Вели-чина использования RAM определяется путем суммирования секций data (инициали-зированные данные) и bss (неинициализированные данные), а ROM – путем суммиро-вания секций text (исполняемый код) и data.

994

Page 5: МОДЕЛЬ СБОРА ДАННЫХ В СЕТЯХ IoT ПРОТОКОЛА … · пользоваться протоколы MQTT, DDS, AMQP, JMS, REST, CoAP [1], а сетевые

Таблица 1 Размеры секций использованной памяти

Программы Contiki (Firmware) Text (B) Data (B) Bss (B) ROM (kB) RAM (kB)

mqtt-data-collection.z1 54737 336 7144 53.78 7.30

Относительно объема памяти платформы Z1 (ROM 92 КБ) и (RAM 8 kB), было установлено, что программа (mqtt-data-collection.c) использует 58.46% ROM и 91.3 % RAM. И мы заметили уменьшение этих значений, изменив код программы, т.е. после удаления ненужных команд или уменьшения размера отправляемых данных (payload).

Заключение

В докладе обратили внимание на протокол MQTT, который представляет собой протокол обмена сообщениями для IoT. В симуляторе Cooja, построили модель сбора данных с использованием реализации протокола MQTT в ОС Contiki , и получили оцен-ку использованной памяти ROM, RAM узлов Z1.

СПИСОК ЛИТЕРАТУРЫ

1. Foster, "Messaging Technologies for the Industrial Internet and the Internet of Things", Messaging Technologies Whitepaper, Version 1.6 – June 2014.

2. Vasseur J., Agarwal N., Hui J., Shelby Z., Bertrand P. and Chauvenet C., "RPL: The IP routing protocol designed for low power and lossy networks", Internet Protocol for Smart Objects (IPSO) Alliance, 2011.

3. Al Fuqaha A., Guizani M., Mohammadi M., Aldehari M., Ayyash M., "Internet of Things: A Survey on Enabling Technologies, Protocols and Applications", IEEE Communications Surveys & Tutorials, 2015.

4. Palattella M.R., Accettura N., Vilajosana X., Watteyne T., Grieco L.A. , Boggia G. and Dohler M. "Standardized Protocol Stack for the Internet of (Important) Things", Communi-cations Surveys & Tutorials, IEEE, vol. 15, pp. 1389-1406, 2013.

5. Al Fuqaha A., Guizani M., Mohammadi M., Aldehari M., Ayyash M., "Internet of Things: A Survey on Enabling Technologies, Protocols and Applications", IEEE Communications Surveys & Tutorials, 2015.

6. Shelby Z., Bormann C., "6LoWPAN: The Wireless Embedded Internet", John Wiley & Sons Ltd, 2009.

7. OASIS, "MQTT Version 3.1.1." 29 October 2014. [электронный ресурс].URL: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html (дата обращения 21.09.2017).

8. Patierno P. (2014, June) "IoT Protocols Landscape" .[электронный ресурс]. URL:http://www.slideshare.net/paolopat/io-t-protocols-landscape.

9. Dunkels, B. Gronvall and T. Voigt, " Contiki - a lightweight and flexible operating system for tiny networked sensors", Local Computer Networks, 2004.

10. [Электронный ресурс]. URL: http://zolertia.sourceforge.net/wiki/images/e/e8/Z1_RevC_Datasheet.pdf (дата об-ращения: 25 .09.2017).

11. [Электронный ресурс]. URL: http://mosquitto.org/ (дата обращения: 25 .09.2017).

995