MQTT (Message Queuing Telemetry Transport) — это лёгкий протокол обмена сообщениями по принципу «издатель-подписчик» (publish-subscribe), специально разработанный для устройств с ограниченными ресурсами и сетей с низкой пропускной способностью или высокой задержкой. Широко используется в IIoT и IoT.
🎯 Ключевые особенности MQTT:
- Минимальный оверхед: Заголовок сообщения всего 2 байта
- Publish-Subscribe архитектура: Издатели и подписчики не знают друг о друге, общение через брокер
- Три уровня QoS (Quality of Service):
- QoS 0: At most once (отправил и забыл)
- QoS 1: At least once (гарантированная доставка, возможны дубли)
- QoS 2: Exactly once (гарантированная доставка без дублей)
- Работа поверх TCP/IP: Но может использоваться и поверх других транспортов
- Поддержка постоянных сессий: Брокер запоминает подписки клиента
- Will Message: Предсмертное сообщение, которое брокер отправит, если клиент неожиданно отключится
🏗️ Архитектура MQTT:
- MQTT Брокер (Broker): Центральный хаб, который принимает сообщения от издателей и распределяет их подписчикам (Mosquitto, HiveMQ, EMQX)
- MQTT Клиент (Client): Устройство или приложение, которое может быть издателем, подписчиком или и тем и другим
- Топик (Topic): Иерархическая строка, по которой фильтруются сообщения (например, «factory/machine1/temperature»)
- Сообщение (Message): Полезная нагрузка (payload), которая передаётся через топик
🏭 Применение в промышленности:
- Удалённый мониторинг оборудования через сотовые сети с ограниченным трафиком
- Сбор данных с распределённых датчиков на большой территории
- Мобильные приложения для операторов (получение уведомлений в реальном времени)
- Интеграция с облачными IIoT-платформами (AWS IoT, Azure IoT Hub используют MQTT)
- Обмен данными между цехами и офисом через существующую IT-инфраструктуру
🔒 Безопасность MQTT:
- TLS/SSL шифрование: Для защиты данных в transit (MQTTS)
- Аутентификация: Логин/пароль, клиентские сертификаты
- Авторизация: Контроль доступа к топикам (ACL)
- Изоляция брокера: Размещение в DMZ, VPN для доступа
⚖️ Сравнение с другими протоколами:
- vs HTTP: MQTT легче, поддерживает push-уведомления, лучше для связи «машина-машина»
- vs OPC UA: MQTT проще и легче, но OPC UA имеет семантическую модель и встроенную безопасность
- vs Modbus: MQTT более гибкий, не привязан к master-slave архитектуре
📚 Практическое руководство: IIoT: промышленный интернет вещей
📖 Все термины: Глоссарий «Алгоритм»
