Преимущества и недостатки iot протоколов XMPP, CoAP и MQTT

Автоматизированное тестирование: основная стратегия тестирования приложений IoT
24.10.2019
Интеграция облачных ограниченных вычислений в IoT
29.10.2019

Технология связи в реальном времени является абсолютным требованием для разработки приложений Интернета вещей (IoT). Сегодня устройства IoT используют три основных протокола реального времени: XMPP, CoAP и MQTT. Интересно, что XMPP начал свою жизнь как Jabber, открытый протокол обмена мгновенными сообщениями.

XMPP

The eXtensible Messaging and Presence Protocol (XMPP) — это протокол связи TCP, основанный на XML, который обеспечивает обмен структурированными данными практически в реальном времени между двумя или более подключенными устройствами. Стандартные функции XMPP включают информацию о наличии и содержании списка контактов. Хотя обе функции изначально были предназначены для обмена мгновенными сообщениями, они применяются в приложениях для IoT. Отчасти благодаря своему открытому типу и основам XML, XMPP был расширен для использования в системах публикации-подписки, что идеально подходит для приложений IoT.

Существует несколько основных преимуществ использования XMPP в качестве протокола связи IoT.

Основным преимуществом является децентрализованный тип XMPP. Он работает подобно электронной почте, работая в распределенной сети агентов передачи, а не полагаясь на один центральный сервер или брокера (как это делают CoAP и MQTT). Как и в случае с электронной почтой, любой может легко запустить свой собственный сервер XMPP, что позволяет производителям устройств создавать и управлять своей собственной сетью. Этот сервер может быть изолирован во внутренней сети компании протоколами безопасной аутентификации с использованием встроенного шифрования TLS.

У XMPP есть и несколько недостатков.

Одним из самых больших недостатков является отсутствие сквозного шифрования. Еще одним недостатком является отсутствие качества обслуживания (QoS). Обеспечение доставки сообщений еще более важно в мире IoT, чем в мире обмена мгновенными сообщениями.

 

CoAP

The Constrained Application Protocol (CoAP) был специально разработан для того, чтобы устройства с ограниченными ресурсами могли обмениваться данными через Интернет, используя UDP вместо TCP. Разработчики могут взаимодействовать с любым устройством с поддержкой CoAP так же, как и с устройством, использующим традиционный API на основе REST. CoAP особенно полезен для связи с маломощными датчиками и устройствами, которыми необходимо управлять через Интернет.

CoAP — это простой протокол запросов/ответов (опять же, очень похожий на REST), который следует традиционной модели клиент/сервер. Клиенты могут отправлять GET, PUT, POST и DELETE запросы. В пакетах CoAP используются битовые поля для максимизации эффективности памяти, они используют сопоставления строк и целых чисел, чтобы пакеты данных были достаточно маленькими для передачи и интерпретации на устройстве. Все сообщения CoAP могут быть помечены как «подтверждаемые» или «не подтверждаемые», служащие в качестве QoS на уровне приложений. Хотя шифрование SSL/TLS недоступно по протоколу UDP, в CoAP используется аналогичная защита транспортного уровня датаграмм (DTLS).

Уровень шифрования по умолчанию эквивалентен 3,072-битному ключу RSA. Несмотря на все это, CoAP предназначен для работы на микроконтроллерах с оперативной памятью всего 10 КБ.

Один из недостатков CoAP: этот протокол используется для обмена «один к одному». Хотя доступны расширения, которые делают возможным групповое вещание, это не является неотъемлемой частью протокола. Возможно, еще более важным недостатком является отсутствие очереди сообщений публикации-подписки.

 

MQTT

Message Queue Telemetry Transport (MQTT) — — это протокол обмена сообщениями с публикацией и подпиской. Подобно CoAP, он был построен с учетом ограниченных ресурсов устройств. Облегченная структура пакетов MQTT предназначена для экономии как памяти, так и мощности. Подключенное устройство подписывается на тему, размещенную на брокере MQTT. Каждый раз, когда другое устройство или служба публикует данные в теме, все подписанные устройства автоматически получают обновленную информацию.

Основными преимуществами MQTT являются очередь сообщений публикации-подписки и широковещательные возможности «многие ко многим». Отправка сообщений с ограниченной полосой пропускания туда и обратно использует длительное исходящее TCP-соединение с брокером MQTT. Недостатком наличия постоянно включенного соединения является то, что оно ограничивает время, в течение которого устройства могут быть переведены в спящий режим. Если устройство в основном спит, то можно использовать другой протокол MQTT: MQTT-S, который работает с UDP вместо TCP.

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

 

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

Translate »