Протоколы и схемы передачи данных

Для сравнения были выбраны два протокола передачи данных: MqTT и COAP. В таблице 4 приведена сравнительная характеристика  двух протоколов передачи данных.

Таблица 4 – Сравнительная характеристика протоколов передачи данных 

Критерий сравнения

CoAP

MQTT

Модель, используемая для отправки сообщений

Запрос – Ответ; Подписчик- Издатель

Подписчик- Издатель

RESTful

Да

Нет

Протокол передачи данных

UDP

TCP

Размер заголовков

4 байта

2 байта

Количество типов используемых сообщений

4

16

Тип сообщения

Асинхронный; Синхронных

Асинхронный

Количество уровней надежности передачи

2

3

Стандартный протокол защиты

IPSEC или DTLS

 

Нет стандарта для защиты

Сфера применения

Используется для настройки сообщений в сетях общего пользования

Является стандартом для сообщения в IoT


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

Существует несколько базовых понятий, которые необходимо знать, чтобы понимать, как работает протокол MQTT:

  1. Публикация/подписка
  2. Сообщения
  3.  Топики
  4.  Брокер

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

Работа подписок детально представлена на рисунке:

Подписка. http://wikihandbk.com/wiki. Дата доступа: 29.09.2020

Сообщения – это информация, обмен которой осуществляется между устройствами. Это могут быть и инструкции, и обычные данные.

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

Топик для офисной лампы представлен на рисунке:


Топик для лампы http://wikihandbk.com/wikiДата доступа: 29.09.2020

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

Работа брокера представлена на рисунке:

Брокер. http://wikihandbk.com/wikiДата доступа: 29.09.2020

Существует разные программы-брокеры. В частности, в нашем случае наиболее полезен брокер Mosquitto, который можно установить на Raspberry Pi.

MQTT позволяет отправлять команды клиенту (вроде Node-RED), с его помощью управляя различными устройствами, а также считывать данные с датчиков и публиковать их на клиенте (вроде Node-RED). На рисунке 19 представлена данная схема взаимодействия устройств с использованием MQTT.


Схема передачи данных. http://wikihandbk.com/wikiДата доступа: 29.09.2020