MQTT: протокол передачи данных в интернете вещей
Существует много протоколов обмена информацией — от распространенного HTTP до редко встречающегося PeSIT. Несмотря на это, для интернета вещей разработали отдельный протокол — MQTT. Разберемся, где и как его применяют.
Схема работы и особенности протокола MQTT
MQTT — специализированный протокол публикации небольших наборов данных в интернете вещей. Основная сфера его применения — доставка небольших сообщений, например показателей сенсоров.
Сообщения в MQTT передают между тремя участниками — издателями, брокером и подписчиками:
- Издатели — отправители сообщений, например датчики, установленные в термометрах и других IoT-устройствах.
- Брокер (MQTT-broker) — центральный узел MQTT, который отвечает за взаимодействие между издателями и подписчиками. Брокер получает данные от издателей, обрабатывает их, передает подписчикам и контролирует доставку. Обычно в качестве брокера выступает серверное ПО (MQTT Server) или контроллер.
- Подписчики — конечные получатели данных от датчиков, например аналитическая система, развернутая в облаке.
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:
-
На крупных предприятиях умные датчики устанавливают на станках, трансформаторах, кранах и погрузчиках. Они мониторят работу промышленных устройств и передают данные в центральную аналитическую систему.
Благодаря этому компании могут отслеживать работу оборудования в реальном времени, прогнозировать его износ и оценивать эффективность работы предприятия.
-
Системы мониторинга среды и конструкций
MQTT используют для анализа климатических показателей, сейсмической активности и устойчивости зданий. Это позволяет предсказывать природные катастрофы и катаклизмы, предотвращать разрушение построек.
-
Высоконадежные системы работы с важными данными
Хотя протокол MQTT изначально создавали для интернета вещей, его используют в биллингах мобильных операторов и провайдеров. Им важно передавать информацию о движении денег на счетах клиентов, не теряя ее.
Что стоит знать о протоколе MQTT
- MQTT — протокол, придуманный для IoT, где издатели передают данные подписчику через брокера (MQTT-сервер). Издателей и подписчиков еще называют MQTT-клиентами (MQTT Clients).
- Протокол минимально нагружает вычислительные мощности умных устройств и работает в условиях плохой связи.
- В настройках MQTT предусмотрены флаги QoS, от них зависит приоритетность доставки сообщения.
- Протокол используют в системах мониторинга оборудования, сред и конструкций, а также в системах работы с важными данными.