Существует много протоколов обмена информацией — от распространенного HTTP до редко встречающегося PeSIT. Несмотря на это, для интернета вещей разработали отдельный протокол — MQTT. Разберемся, где и как его применяют.

Схема работы и особенности протокола MQTT

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

Сообщения в MQTT передают между тремя участниками — издателями, брокером и подписчиками:

  • Издатели — отправители сообщений, например датчики, установленные в термометрах и других IoT-устройствах.
  • Брокер (MQTT-broker) — центральный узел MQTT, который отвечает за взаимодействие между издателями и подписчиками. Брокер получает данные от издателей, обрабатывает их, передает подписчикам и контролирует доставку. Обычно в качестве брокера выступает серверное ПО (MQTT Server) или контроллер.
  • Подписчики — конечные получатели данных от датчиков, например аналитическая система, развернутая в облаке.
Описание MQTT-протокола: издатели и подписчики (их еще называют MQTT-клиентами) не знают о существовании друг друга, они общаются только с MQTT-брокером

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

У MQTT-протокола несколько особенностей, посмотрим на основные:

  • MQTT — бинарный протокол. При передаче данных в условиях медленной и нестабильной связи нужно экономить каждый бит. Поэтому данные пересылают в максимально компактном виде.
  • У MQTT нет встроенных механизмов защиты данных при передаче, но для обхода этого ограничения успешно применяют SSL.
  • MQTT использует TCP/IP для организации соединения и передачи данных — благодаря этому опять же экономятся байты.
  • Протокол оснащен функцией LWT (Last Will and Testament — «последняя воля и завещание»). Она уведомляет все стороны об аварийном отключении сети — это функция важна, если соединение нестабильно.

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

Особенности доставки сообщений

У данных разная ценность и приоритет доставки, поэтому в MQTT предусмотрены флаги Quality of Service — QoS:

  • QoS 0 — сообщение доставляют не более одного раза. Если доставка прервалась, то сообщение может потеряться — повторных попыток не будет.
  • QoS 1 — сообщение доставляют минимум один раз, а получатель подтверждает доставку. В таком случае сообщения могут дублироваться.
  • QoS 2 — сообщение доставляют только один раз, несмотря на проблемы и помехи. Из-за сбоя доставка может задержаться, но сообщение все равно дойдет до адресата, например после восстановления связи.

Чем хуже качество связи, тем сложнее обрабатывать QoS. Поэтому QoS 0 используют, когда данных много, они передаются регулярно и потеря одного или нескольких сообщений ни на что не влияет.

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

Применение протокола MQTT: мониторинг оборудования, сред и отправка важных данных

Посмотрим, где чаще всего применяют протокол MQTT:

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

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

  2. Системы мониторинга среды и конструкций

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

  3. Высоконадежные системы работы с важными данными

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

Что стоит знать о протоколе MQTT

  1. MQTT — протокол, придуманный для IoT, где издатели передают данные подписчику через брокера (MQTT-сервер). Издателей и подписчиков еще называют MQTT-клиентами (MQTT Clients).
  2. Протокол минимально нагружает вычислительные мощности умных устройств и работает в условиях плохой связи.
  3. В настройках MQTT предусмотрены флаги QoS, от них зависит приоритетность доставки сообщения.
  4. Протокол используют в системах мониторинга оборудования, сред и конструкций, а также в системах работы с важными данными.