СРАВНЕНИЕ ПРОТОКОЛОВ ПЕРЕДАЧИ ДАННЫХ В ИНТЕРНЕТЕ ВЕЩЕЙ

DOI: https://doi.org/10.23670/IRJ.2022.115.1.007

СРАВНЕНИЕ ПРОТОКОЛОВ ПЕРЕДАЧИ ДАННЫХ В ИНТЕРНЕТЕ ВЕЩЕЙ

Научная статья

Курмаев Т.И.*

ORCID: 0000-0002-2327-8246, Московский Университет имении С.Ю. Витте, Москва, Россия

* Корреспондирующий автор

Аннотация

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

В данной статье представлен сравнительный анализ и оценка производительности протоколов передачи данных HTTP и MQTT на основе пропускной способности и размера сообщения. Протокол MQTT показал наилучшие результаты.

Ключевые слова: интернет вещей, передача данных, протоколы передачи данных, HTTP, MQTT.

A COMPARISON OF DATA TRANSFER PROTOCOLS IN THE INTERNET OF THINGS

Research article

Kurmaev T.I.*

ORCID: 0000-0002-2327-8246, Witte Moscow State University, Moscow, Russia

* Corresponding author

Abstract

The Internet of Things is a rapidly developing concept of data transmission and collection between smart devices. The scope of application of this concept has a wide range: smart homes, healthcare, transport, logistics, etc. Every year the number of connected devices increases and it is expected that over the next ten years this number will reach several billion. At the same time, there is a problem of data transmission over wireless networks between devices that differ in their architecture and capabilities.

This article presents a comparative analysis and evaluation of the performance of the HTTP and MQTT data transfer protocols based on the bandwidth and message size. The MQTT protocol demonstrates the best results.

Keywords: Internet of Things, Data Transmission, Data Transmission Protocols, HTTP, MQTT.

Введение

Скачок в развитии вычислительных и коммуникационных технологий за последние годы оказал влияние на появление носимых устройств, беспилотных автомобилей и платформ, которые агрегируют от них данные. Концепция взаимодействия таких устройств друг с другом или с внешней средой называется Интернетом Вещей. Впервые данный термин ввел основатель исследовательской группы Auto-ID Labs Кевин Эштон в 1999 году. Результатом работы исследовательской группы Auto-ID Labs было изобретение технологии RFID [1]. Суть работы RFID-меток заключается в том, что посредством использования радиосигналов на них можно записывать информацию, которую позже можно считать специальным устройством и передать по сети Интернет.

Появление технологии разработки микроэлектромеханических систем (МЭМС) [2, C. 7] привело к уменьшению размеров датчиков передачи информации, что, в свою очередь, повлияло на количество подключаемых к Интернету Вещей устройств: к 2008 году их количество превысило население земли и по прогнозам к 2030 году составит более 24,1 миллиардов устройств [3].

Архитектура Интернета Вещей представляет собой четыре основных уровня:

• Физический уровень

• Сетевой уровень

• Сервисный уровень

• Прикладной уровень

Из-за своей неоднородности связь Интернета Вещей является самой важной функцией этой концепции. Именно поэтому для неё были разработаны различные протоколы передачи данных, среди которых можно выделить основные:

1) HTTP - Протокол передачи гипертекста Hypertext Transfer Protocol (HTTP) представляет собой наиболее распространенный способ передачи ресурсов в Интернете [4]. HTTP определяет формат и назначение сообщений, которыми обмениваются Web-компоненты, такие как клиенты и серверы. и способ интерпретации полей каждой строки сообщения.

2) CoAP - Концепция CoAP основана на имитации и замене тяжелых элементов HTTP и использования легкого эквивалента для Интернета Вещей. HTTP требует более мощных и ориентированных на сервисы систем [5, C. 1]. Возможности CoAP можно суммировать следующим образом:

• Схож с HTTP

• Безопасность реализована с помощью DTLS

• Асинхронный обмен сообщениями

• Работает поверх UDP

3) XMPP - Протокол с открытым исходным кодом для обмена сообщениями в режиме реального времени. Этот коммуникационный протокол Интернета вещей для промежуточного программного обеспечения, ориентированного на сообщения, основан на языке XML. Это позволяет осуществлять обмен структурированными, но расширяемыми данными в режиме реального времени между двумя или более сетевыми устройствами [6].

4) MQTT - Телеметрический транспорт очереди сообщений (Message Queue Transport Telemetry) - это протокол обмена сообщениями, предназначенный для работы на устройствах с ограниченными вычислительными ресурсами [7]. Протокол использует гибкий механизм маршрутизации и асинхронную связь поверх стека TCP/IP, основанную на парадигме публикации-подписки. MQTT состоит из трех основных компонентов: подписчика, издателя и брокера. Подписчик может повторно запрашивать и получать сообщения от издателя. Издатель связывается с брокером, чтобы отправлять сообщения из определенной темы своим подписчикам. Наконец, брокер получает сообщения от издателей и пересылает их подписчикам, заинтересованным в данной теме.

Исследование

Целью данной работы являлось исследование протоколов HTTP и MQTT внутри беспроводной сети, cравнение скорости передачи данных, их объем и пропускная способность шлюза. Данные протоколы были выбраны для сравнения поскольку удовлетворяют запросам реализации умного помещения при использовании выбранного оборудования. Однако, важно отметить, что у каждого из этих протоколов есть ряд ограничений в контексте применения их для Интернета Вещей:

• HTTP протокол не подходит для промышленных решений, где нужно совершать распределенные вычисления с высокими нагрузками.

• HTTP не содержит информации о навигации передаваемых ресурсов, что затрудняет автоматизацию процессов на сервере и его анализ.

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

• MQTT не подходит для систем с кратковременной работой, когда информация может передаваться всего несколько раз в сутки (Например, показатели счетчиков ЖКХ).

В качестве шлюза Интернета Вещей было выбрано устройство Raspberry PI 4 Model B, которое представляет собой мини-компьютер с возможностью подключения периферийных устройств по USB, GPIO, RS485, RS232, CanBus и 1-Wire [8]. Ключевой особенностью этого устройства является его гибкость настраивания и возможность передачи данных по беспроводной сети.

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

device ld: "0e3{:hld0-1504-4325-432f-6643df61319814 datetime:"2020-05-21T26:53:16Z", values:[

{Type:"float"jName:"humidity" ..Value:"24.231837"}J {Type : "float" j Name: "CarboriDioxide", Value: "66.95458"}, {Type: "float" ,Name: "Pressure'^Value: "119.7031"}., {Type : "float" ^Name: "Temperature" ,Value : "27.708824"}.,

]

Рис. 1 - Объектный вид отправляемого сообщения

Идентификационный номер представляет собой набор символов, который позволит систематизировать полученные данные и упростит их поиск в базе данных. Дата представлена согласно стандарту ISO 8601-2 [9]. Массив значений представляет собой массив объектов, внутри которого для каждого из датчиков определен тип данных передаваемого значения, его название и само значение. Все значения отправляемого сообщения являются строками. В контексте исследования данное сообщение представляет собой полученную информацию от конечных датчиков, необходимую для отправки от шлюза Интернета Вещей на сервер.

Для исследования выбранных протоколов было создано два приложения на NodeJS. Первое представляет собой обычное клиент-серверное приложение с возможностью отправки JSON-объекта от устройства на сервер. Его реализация заключается в написании API, которое будет принимать конечные запросы, и клиентского приложения, которое будет запущено на Raspberry PI 4 Model B, и с определенным интервалом будет отправлять сообщения на сервер.

Второе приложение представляет собой MQTT брокер с использованием внешней NPM библиотеки - Mosca [10]. MQTT издатель и подписчик данных с использованием внешней NPM библиотеки - MQTT.JS [11]. Его реализация заключается в написании брокера, его настроек и определения событий, который срабатывают при получении

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

В ходе исследования было проведено два эксперимента. В первом случае сообщение отправлялось 1 раз в течении 10 секунд на протяжении нескольких минут. На основе этих данных рассчитывались средние показатели для HTTP и MQTT протоколов. Во втором случае вид отправляемого сообщения был изменен. Массив значений, который раннее содержал лишь четыре записи с информацией от датчиков, был преобразован в массив значений, который содержал в себе десять массивов с четырьмя значениями. Таким образом исследовалось влияние увеличения исходной информации при отправке данных. Пропускная способность рассчитывалась для десяти сообщений по формуле:

Q=^,

где I - информационный объем, а T - время передачи данных. Результаты исследования отражены в таблице 1.

Таблица 1 - Результаты исследования

Протокол Размер одного сообщения, Байт Размер десяти сообщений, Байт Средняя скорость передачи данных, Мс Формат данных Пропускная способность, Байт/мс

HTTP 405 4221 135 JSON 31

MQTT 327 3917 27 Buffer 145

Заключение

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

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

Конфликт интересов Conflict of Interest

Не указан. None declared.

Список литературы / References

1. Roberty M. History of RFID / M. Roberty // RFID Journal - 2005 - [Electronic resource]. URL: https://www.rfidjoumal.com/the-history-of-rfid-technology

2. Beeby S. MEMS Mechanical Sensors / S. Beeby. - ARTECH HOUSE - 2004, 281 p

3. Wegner P. IoT Platform Companies Landscape 2021/2022: Market consolidation has started. / P. Wegner Wegner P. // IoT Analytics -2021 - [Electronic resource] URL: https://iot-analytics.com/iot-platform-companies-landscape/

4. Benjamin D. HTTP 2.0 Specification / D. Benjamin // W3 - 1995 - [Electronic resource]. URL: https://www.w3.org/MarkUp/html-spec/

5. Naik N. Choice of effective messaging protocols for iotsystems: Mqtt, coap, amqp and http / N. Naik // Systems EngineeringSymposium (ISSE), 2017 IEEE International. IEEE, 2017, pp. 1-7.

6. Saint-Andre P. XMPP Specification / P. Saint-Andre // XMPP Official documentation -2021 - [Electronic resource]. URL: https://xmpp.org/

7. Banks A. MQTT version 5 - Introduced 2019 : OASIS Standard / A. Banks and R. Gupta.

8. Configuration of Raspberry PI 4 Model B // Raspbery PI Official documentation of product-2021- [Electronic resource]. URL: https://www.raspberrypi.com/documentation/computers/configuration.html

9. ISO 8601-2 Standard. International date and time standard - Introduced 2019 : International Organization for Standardization

10. Collina M.. Mosca broker / M. Collina // NPM Package-2021 - [Electronic resource]. URL: https://www.npmjs.com/package/mosca

11. Collina M. MQTT.JS Library / M. Collina // NPM Package-2021 - [Electronic resource]. URL: https://www.npmjs.com/package/mqtt