Найти в Дзене
INTELVISION

Протокол MQTT: принципы работы, архитектура и применение

MQTT (Message Queuing Telemetry Transport) — это легкий publish-subscribe-протокол для передачи сообщений между устройствами в условиях ограниченной полосы пропускания и ненадежных сетей. Разработанный в 1999 году Энди Стэнфордом-Кларком (IBM) и Арленом Ниппером (Eurotech), MQTT стал стандартом де-факто для IoT благодаря своей простоте и эффективности. В 2014 году OASIS стандартизировал MQTT v3.1.1 (ISO/IEC 20922), а позже выпустил MQTT v5.0 с улучшенной функциональностью. MQTT (Message Queuing Telemetry Transport) был создан в 1999 году инженерами Энди Стэнфордом-Кларком (IBM) и Арленом Ниппером (Eurotech) для решения задачи мониторинга нефтепроводов в удаленных районах. Проект требовал минимального расхода энергии (устройства работали на батареях годами) и устойчивости к нестабильным спутниковым каналам связи. Изначально протокол назывался "SCADA Protocol", затем "MQ Integrator", и только позже получил имя MQTT (хотя аббревиатура неофициально расшифровывается как Message Queuing Tele
Оглавление

MQTT (Message Queuing Telemetry Transport) — это легкий publish-subscribe-протокол для передачи сообщений между устройствами в условиях ограниченной полосы пропускания и ненадежных сетей. Разработанный в 1999 году Энди Стэнфордом-Кларком (IBM) и Арленом Ниппером (Eurotech), MQTT стал стандартом де-факто для IoT благодаря своей простоте и эффективности. В 2014 году OASIS стандартизировал MQTT v3.1.1 (ISO/IEC 20922), а позже выпустил MQTT v5.0 с улучшенной функциональностью.

История возникновения MQTT

MQTT (Message Queuing Telemetry Transport) был создан в 1999 году инженерами Энди Стэнфордом-Кларком (IBM) и Арленом Ниппером (Eurotech) для решения задачи мониторинга нефтепроводов в удаленных районах. Проект требовал минимального расхода энергии (устройства работали на батареях годами) и устойчивости к нестабильным спутниковым каналам связи.

Изначально протокол назывался "SCADA Protocol", затем "MQ Integrator", и только позже получил имя MQTT (хотя аббревиатура неофициально расшифровывается как Message Queuing Telemetry Transport, в спецификациях OASIS это не закреплено).

В 2010 году MQTT начал набирать популярность в IoT-сфере благодаря открытости и адаптивности. В 2013 году IBM и Eurotech передали MQTT v3.1 в OASIS для стандартизации. В 2014 году вышла версия MQTT v3.1.1 (стандарт ISO/IEC 20922), а в 2019 году — MQTT v5.0 с расширенной функциональностью.

Архитектура MQTT

MQTT использует модель publish-subscribe, где клиенты не обмениваются данными напрямую, а взаимодействуют через брокер. Основные компоненты:

  • Publishers — устройства, отправляющие сообщения в топики.
  • Subscribers — устройства, получающие сообщения по подписке.
  • Broker — сервер, управляющий подключениями, подписками и маршрутизацией сообщений.

Каждое сообщение содержит топик (например, sensors/temperature), по которому брокер определяет, кому его доставить. Клиенты могут подписаться на топики с wildcards: + (одноуровневый) и # (многоуровневый).

-2

Форматы пакетов и QoS

MQTT работает поверх TCP/IP и использует бинарные пакеты. Заголовок включает:

◾ Тип пакета (CONNECT, PUBLISH, SUBSCRIBE и др., всего 14 типов).

◾ Флаги (dup, QoS, retain).

◾ Длина оставшихся данных (переменная).

Уровни QoS (Quality of Service):

0️⃣ QoS 0 (At most once) — сообщение отправляется без подтверждения.

1️⃣ QoS 1 (At least once) — брокер подтверждает получение, но возможны дубли.

2️⃣ QoS 2 (Exactly once) — гарантирует однократную доставку через 4-этапный handshake.

Безопасность и аутентификация

MQTT поддерживает:

✔ TLS/SSL для шифрования трафика (порт 8883).

✔ Аутентификацию через логин/пароль в CONNECT-пакете.

✔ Механизм клиентских сертификатов.

Уязвимости:

➖ Отсутствие шифрования по умолчанию (порт 1883).

➖ Возможность подмены сообщений при MITM-атаках.

➖ Утечки данных через топики (например, $SYS/ в Mosquitto).

Применение MQTT в IoT и промышленности

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

1. Умные дома (Home Assistant, OpenHAB)

MQTT широко используется в системах домашней автоматизации, таких как Home Assistant и OpenHAB. Протокол позволяет легко добавлять новые устройства (датчики, умные розетки, камеры) без изменения архитектуры системы.

Примеры использования:

Управление освещением (включение/выключение, диммирование).
Мониторинг температуры, влажности, CO₂.
Управление климатом (термостаты, кондиционеры).
Системы безопасности (датчики движения, камеры, сигнализации).

2. Промышленные системы (SCADA, IIoT)

В промышленности MQTT применяется в SCADA (диспетчерское управление) и IIoT (Industrial IoT). Поддержка QoS (Quality of Service) гарантирует доставку критически важных сообщений, а также возможность подключения тысяч датчиков и устройств к одному брокеру.

Примеры использования:

Мониторинг состояния оборудования (вибрация, температура, износ).
Управление производственными линиями (PLC, роботы, конвейеры).
Сбор данных с датчиков (давление, расход, уровень жидкости).
Прогнозирующее обслуживание (Predictive Maintenance) – анализ данных для предотвращения поломок.

3. Телеметрия автомобилей (Tesla и другие)

MQTT используется в автомобильной телеметрии для передачи данных между бортовыми системами и облачными сервисами. Низкий объем передаваемых данных экономит трафик и снижает задержки.

Примеры использования:

Tesla – передача данных о состоянии батареи, пробеге, местоположении.
Коммерческий транспорт – мониторинг расхода топлива, стиля вождения, маршрутов.
Автономные автомобили – обмен данными между машинами (V2V) и инфраструктурой (V2I).

MQTT — простыми словами

MQTT — это как "СМС для умных устройств". Он помогает гаджетам (датчикам, лампочкам, телефонам) обмениваться короткими сообщениями даже при плохом интернете.

Например:

Задача: Датчик на окне сообщает, что окно открыто.

  1. Датчик (publisher) шлет брокеру:

- Топик: myhome/window/kitchen

- Сообщение: open

2. Ваш смартфон (subscriber) получает это сообщение и пишет: "Закрой окно на кухне!"

MQTT — оптимальный выбор для IoT благодаря низкому оверхеду, гибкости и поддержке QoS. Развитие стандарта (v5.0) расширяет его применение в промышленности и облачных системах. Благодаря своей простоте и эффективности, MQTT остается одним из ключевых протоколов для современных IoT-решений.

Щелкните здесь, и запланируйте подробный ДЕМО с экспертами, чтобы узнать, как INTELVISION может помочь вам в создании интеллектуального здания.

Читайте наши статьи👀 и подписывайтесь на канал☝