MQTT

MQTT (от MQ Telemetry Transport, где MQ означает «message queues», как в названии продукта IBM MQ) — легковесный сетевой протокол обмена сообщениями, основанный на модели публикации-подписки для машинного взаимодействия (M2M) и очередей сообщений.

Предназначен для соединений с удалёнными устройствами, имеющими ограниченные ресурсы или низкую пропускную способность сети, например, в интернете вещей (IoT). Требует транспортного протокола с упорядоченной, безошибочной, двунаправленной связью — обычно TCP/IP. Является открытым стандартом OASIS и рекомендацией ISO (ISO/IEC 20922).

Общие сведения
MQTT
англ. MQTT
Область использования Интернет вещей, IIoT, Умный дом[1]
Дата появления 1999
Место появления Херсли, Англия[2]
Автор понятия Энди Стэнфорд-Кларк, Арлен Ниппер[3]

История

Энди Стэнфорд-Кларк (IBM) и Арлен Ниппер (на тот момент работавший в Arcom, позже Eurotech, Inc.) разработали первую версию протокола в 1999 году. Изначально он создавался для решения задачи американской нефтяной компании ConocoPhillips по мониторингу состояния нефте- и газопроводов в реальном времени в составе промышленной системы управления SCADA[4]. Целью было создание эффективного по использованию полосы пропускания, легковесного и экономящего заряд батареи протокола, поскольку устройства были подключены через дорогие и нестабильные спутниковые каналы связи[4][5].

Исторически «MQ» в «MQTT» происходит от IBM MQ (тогда «MQSeries»), где означает «Message Queue». Однако сам протокол реализует обмен сообщениями по модели публикации-подписки (без очередей, несмотря на название)[6]. В спецификации, открытой IBM как версия 3.1, протокол назывался «MQ Telemetry Transport»[7][8]. В последующих версиях, выпускаемых OASIS, протокол официально называется просто «MQTT», хотя технический комитет носит название «OASIS Message Queuing Telemetry Transport Technical Committee». С 2013 года «MQTT» не расшифровывается как аббревиатура[6][9].

В 2013 году компания IBM передала спецификацию MQTT v3.1 в организацию по стандартизации OASIS с уставом, допускающим только незначительные изменения. После этого версия 3.1.1 была выпущена 29 октября 2014 года[10][11], а в 2016 году протокол был опубликован как международный стандарт ISO/IEC 20922[12]. Более значительное обновление — версия MQTT 5 с рядом новых функций[13] — было опубликовано 7 марта 2019 года.

Ключевую роль в стандартизации протокола в рамках OASIS сыграли редакторы спецификаций. Редакторами версии 3.1.1 выступили Эндрю Бэнкс (Andrew Banks) и Рахул Гупта (Rahul Gupta) из IBM. Над версией 5.0 работала расширенная группа редакторов: Эндрю Бэнкс, Кен Боргдейл (Ken Borgdale), Рахул Гупта (все из IBM) и Эд Бриггс (Ed Briggs) из Microsoft[14].

MQTT-SN

MQTT-SN (MQTT for Sensor Networks) — версия протокола MQTT, адаптированная для сенсорных сетей и устройств с ограниченными ресурсами, которые работают в сетях без поддержки TCP/IP, таких как Zigbee или BLE[15]. Протокол использует шлюзы для трансляции сообщений MQTT-SN в стандартный формат MQTT, обеспечивая интеграцию с существующей IoT-инфраструктурой[16]. Ключевыми особенностями MQTT-SN являются оптимизация для беспроводных сред с низкой пропускной способностью и высокими потерями, а также поддержка спящего режима для устройств с низким энергопотреблением[17].

Первые версии протокола (1.0 и 1.1) появились в 2007 и 2008 годах соответственно. 14 ноября 2013 года была выпущена спецификация версии 1.2, разработанная Энди Стэнфорд-Кларком и Хонг Линь Труонгом из IBM. В этой версии, в частности, была добавлена поддержка сообщений длиной более 255 байт[18]. Эта версия оставалась последней официальной спецификацией на протяжении многих лет.

В 2017 году технический комитет OASIS MQTT отложил работу по стандартизации MQTT-SN, чтобы сосредоточиться на выпуске MQTT 5.0[19]. После выхода MQTT 5.0 в 2019 году возникла необходимость в обновлении MQTT-SN для лучшей совместимости. В конце 2020 года в рамках OASIS началась работа над новой версией протокола, условно названной MQTT-SN 2.0[20]. 6 апреля 2021 года устав технического комитета был официально обновлён, чтобы включить разработку MQTT-SN как стандарта OASIS[21].

По состоянию на 2024 год, работа над стандартом MQTT-SN 2.0 всё ещё продолжается, а версия 1.2 остаётся последней опубликованной спецификацией[21]. Целью обновления является приведение протокола в соответствие с возможностями MQTT 5.0, включая выравнивание кодов ошибок, улучшенную аутентификацию и добавление новых опций подписки[20].

Общее описание

Протокол MQTT определяет два типа сетевых сущностей: брокер сообщений и множество клиентов. MQTT-брокер — это сервер, который принимает все сообщения от клиентов и перенаправляет их соответствующим клиентам-получателям[22]. MQTT-клиент — любое устройство (от микроконтроллера до полноценного сервера), использующее библиотеку MQTT и подключающееся к брокеру по сети[23].

Информация организована в иерархию тем (topics). Когда издатель (publisher) имеет новые данные для распространения, он отправляет управляющее сообщение с данными подключённому брокеру. Брокер затем рассылает информацию всем клиентам, подписанным на эту тему. Издателю не требуется знать количество или местоположение подписчиков; подписчики, в свою очередь, не должны быть настроены на конкретных издателей.

Если брокер получает сообщение по теме, на которую нет подписчиков, он отбрасывает сообщение, если только издатель не пометил его как сохраняемое (retained message). Сохраняемое сообщение — это обычное MQTT-сообщение с установленным флагом retained. Брокер хранит последнее сохраняемое сообщение и соответствующий уровень QoS для выбранной темы. Каждый клиент, подписывающийся на шаблон темы, совпадающий с темой сохраняемого сообщения, получает его сразу после подписки. Брокер хранит только одно сохраняемое сообщение на тему[24]. Это позволяет новым подписчикам сразу получать актуальное значение, не дожидаясь следующего обновления от издателя.

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

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

Минимальное управляющее сообщение MQTT может быть размером всего 2 байта. Сообщение может содержать до 256 мегабайт данных. Определено 14 типов управляющих сообщений, используемых для подключения и отключения клиента от брокера, публикации данных, подтверждения получения и контроля соединения между клиентом и сервером.

MQTT использует протокол TCP для передачи данных. Вариант MQTT-SN применяется для других транспортов, таких как UDP или Bluetooth.

MQTT передаёт учётные данные в открытом виде и не содержит встроенных средств безопасности или аутентификации. Защита может быть обеспечена с помощью TLS, который шифрует и защищает передаваемую информацию от перехвата, модификации или подделки.

Стандартный нешифрованный порт MQTT — 1883. Для защищённого соединения используется порт 8883[25].

Области применения

Благодаря своей легковесности, эффективности и низкому потреблению ресурсов, протокол MQTT нашёл широкое применение в различных отраслях, став де-факто стандартом для Интернета вещей (IoT) и межмашинного взаимодействия (M2M). Ключевые области применения включают:

  • Интернет вещей (IoT): Основная сфера применения MQTT. Протокол используется для связи между многочисленными устройствами, такими как интеллектуальные датчики, носимые устройства и другие IoT-гаджеты, с облачными сервисами и между собой. Его эффективность и низкое энергопотребление делают его идеальным для устройств с ограниченным временем автономной работы.
  • Промышленный интернет вещей (IIoT) и автоматизация: В промышленности MQTT применяется для мониторинга и управления оборудованием в режиме реального времени[26]. Датчики, установленные на станках, трансформаторах и другом оборудовании, передают данные, что позволяет оперативно реагировать на нештатные ситуации, сокращая простои и предотвращая поломки[26].
  • Умный дом: В системах «умного дома» протокол обеспечивает взаимодействие между различными устройствами, такими как лампочки, выключатели, датчики температуры и движения.
  • Мониторинг окружающей среды: MQTT используется для сбора данных с удалённых и маломощных датчиков, которые отслеживают климатические показатели, сейсмическую активность и другие параметры окружающей среды[26].
  • Транспорт и логистика: Одним из первых применений протокола была передача данных с датчиков на нефтепроводах через спутниковую связь. Сегодня он также используется в различных транспортных системах[27].
  • Здравоохранение: Протокол находит применение в сфере здравоохранения для удалённого мониторинга состояния пациентов и сбора данных с медицинских устройств[27].

MQTT-брокер — это программное обеспечение, работающее на компьютере (локально или в облаке), может быть как самостоятельным, так и размещённым у стороннего провайдера. Существуют как открытые, так и проприетарные реализации.

Брокер действует как почтовое отделение. MQTT-клиенты не используют прямой адрес получателя, а применяют строку темы (topic). Любой подписчик получает копию всех сообщений по этой теме. Несколько клиентов могут подписываться на одну тему у одного брокера (модель «один ко многим»), а один клиент может подписываться на темы у нескольких брокеров («многие к одному»).

Каждый клиент может как отправлять, так и получать данные, публикуя и подписываясь, то есть устройства могут публиковать данные датчиков и одновременно получать управляющие команды или конфигурацию (MQTT — двунаправленный протокол связи). Это облегчает обмен данными, управление и контроль устройств. Клиент не может отправить одно и то же сообщение сразу в несколько тем — для этого требуется отдельная публикация для каждой темы.

Архитектура брокера MQTT позволяет разделить клиентские устройства и серверное приложение. Таким образом, клиенты не знают информации друг о друге. MQTT, при соответствующей настройке, может использовать шифрование TLS с сертификатами, а также защиту по имени пользователя и паролю. Дополнительно соединение может требовать сертификата, который клиент должен предоставить и который должен совпадать с копией на сервере.

В случае сбоя программное обеспечение брокера и клиенты могут автоматически переключиться на резервный/автоматический брокер. Резервные брокеры также могут использоваться для распределения нагрузки между несколькими серверами — локально, в облаке или в гибридной конфигурации.

Брокер может поддерживать как стандартный MQTT, так и совместимые спецификации, например Sparkplug[28]. Это возможно на одном сервере, одновременно и с одинаковым уровнем безопасности.

Брокер отслеживает всю информацию о сессии устройства в режиме «постоянных сессий» (persistent sessions). В этом состоянии брокер хранит как информацию о соединении каждого клиента, так и темы подписки, а также сообщения по темам с QoS 1 или 2[29].

Основные преимущества MQTT-брокера:

  1. Исключение уязвимых и небезопасных клиентских соединений (при правильной настройке).
  2. Возможность масштабирования от одного устройства до тысяч.
  3. Управление и отслеживание состояния клиентских соединений, включая учётные данные и сертификаты (при правильной настройке).
  4. Снижение нагрузки на сотовые или спутниковые сети без ущерба для безопасности (при правильной настройке).

Современные возможности

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

MQTT поверх QUIC

Ключевой инновацией стала поддержка протокола QUIC в качестве транспортного уровня вместо традиционного TCP. Это обеспечивает значительные преимущества для мобильных и нестабильных сетей, характерных для IoT: ускоренное установление соединения, устойчивость к смене IP-адреса клиентом (например, при переключении с Wi-Fi на сотовую сеть) и уменьшение задержек[30][31]. Пионерами в реализации этой возможности стали брокеры EMQX и NanoMQ[31].

Расширенная интеграция данных

Современные брокеры всё чаще выступают в роли центральных узлов для маршрутизации данных в корпоративные системы. Например, EMQX обеспечивает встроенную интеграцию с базами данных и хранилищами, такими как Snowflake и Amazon S3, а также шлюз для протокола NATS[32]. HiveMQ предлагает корпоративные расширения для интеграции с Google Cloud Pub/Sub и Microsoft SQL Server[33], а коммерческая версия Pro Mosquitto от Cedalo — мосты для интеграции с MongoDB и Kafka[34].

Внедрение искусственного интеллекта (AI)

В июне 2025 года с выходом версии EMQX Enterprise 5.10 в брокерах появились функции на базе искусственного интеллекта[35]. Они включают интеграцию с большими языковыми моделями (например, GPT-4) для анализа и обобщения MQTT-сообщений непосредственно в брокере, а также генератор SQL-правил на естественном языке, позволяющий создавать логику обработки данных без написания кода[32].

Улучшения в области безопасности и управления

Ведущие брокеры усилили функции безопасности и управления. HiveMQ получил сертификацию SOC 2 и внедрил поддержку SSO и детализированный журнал аудита[36]. EMQX расширил контроль доступа, добавив авторизацию на основе метаданных клиента (IP-адрес, Client ID), и представил функцию «Cluster Linking» для эффективного объединения кластеров в разных регионах[37]. В промышленном интернете вещей (IIoT) брокеры стали центральным элементом архитектур Unified Namespace (UNS) и стандарта Sparkplug, унифицирующих обмен данными между производственным оборудованием и IT-системами[38].

Connect

undefined

Ожидает установления соединения с сервером и создаёт связь между узлами.

Disconnect

Ожидает завершения работы MQTT-клиента и разрыва сессии TCP/IP.

Publish

Сразу возвращает управление приложению после передачи запроса MQTT-клиенту.

Версия 5.0

В 2019 году OASIS опубликовала официальный стандарт MQTT 5.0. Версия 5.0 включает следующие основные новые функции[39]:

  • Коды причин: подтверждения теперь поддерживают коды возврата, указывающие причину сбоя.
  • Разделяемые подписки: позволяют распределять нагрузку между клиентами, снижая риск перегрузки.
  • Время жизни сообщения: сообщения могут иметь срок действия и удаляются, если не доставлены за это время.
  • Псевдонимы тем: имя темы может быть заменено одним числом.

Развитие и перспективы

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

Одним из ключевых направлений развития стала работа по использованию протокола QUIC в качестве транспортного уровня для MQTT вместо традиционного TCP[40]. Это нововведение призвано улучшить скорость установки соединения, уменьшить задержки и, что особенно важно для мобильных IoT-устройств, обеспечить устойчивость к смене сети клиентом (например, при переключении с Wi-Fi на сотовую связь) без разрыва сессии.

В сообществе также обсуждаются усовершенствования, которые могут войти в будущую версию протокола, условно называемую MQTT 5.1. К ним относятся предложения по внедрению более гибких фильтров подписок и возможности пакетной отправки сообщений для снижения накладных расходов при передаче большого количества небольших пакетов[40].

Другим направлением является разработка расширений для решения задач, для которых стандартный MQTT подходит не лучшим образом. Например, ведётся работа над механизмами для передачи больших файлов (таких как обновления прошивок), которые позволят передавать данные по частям с возможностью возобновления, используя существующую инфраструктуру MQTT[40].

Качество обслуживания

Каждое соединение с брокером может указывать уровень QoS[41]. Уровни классифицируются по возрастанию накладных расходов:

  • Не более одного раза (At most once) — сообщение отправляется только один раз, клиент и брокер не подтверждают доставку (fire and forget).
  • Не менее одного раза (At least once) — отправитель повторяет отправку до получения подтверждения (acknowledged delivery).
  • Ровно один раз (Exactly once) — отправитель и получатель используют двухуровневое подтверждение, чтобы гарантировать получение только одной копии сообщения (assured delivery).

Это поле не влияет на обработку передачи данных TCP; оно используется только между отправителями и получателями MQTT.

Безопасность

Поскольку протокол MQTT не предписывает обязательное шифрование, безопасность передачи данных полностью зависит от правильной конфигурации и использования протоколов транспортного уровня, таких как TLS[42]. При отсутствии TLS учётные данные и сообщения передаются в открытом виде, что делает систему уязвимой для атак типа «человек посередине»[43]. Неправильно настроенные брокеры, доступные через интернет, могут раскрывать конфиденциальные данные неавторизованным подписчикам[42].

Безопасность протокола и его реализаций неоднократно становилась предметом исследований. Например, в 2020 году итальянскими исследователями была продемонстрирована атака типа «медленный отказ в обслуживании» (slow DoS) на протокол (CVE-2020-13849)[44]. В последующие годы было выявлено множество других уязвимостей.

2021

В 2021 году, по данным «Лаборатории Касперского», было обнаружено 33 уязвимости в MQTT, 18 из которых были классифицированы как критические[45]. Исследователи из Synopsys выявили DoS-уязвимости в трёх популярных брокерах с открытым исходным кодом[46]:

  • RabbitMQ (CVE-2021-22116): чрезмерное потребление памяти из-за специально созданных сообщений.
  • EMQ X (CVE-2021-33175): отказ в обслуживании из-за вредоносных пакетов.
  • VerneMQ (CVE-2021-33176): исчерпание памяти из-за некорректно сформированных пакетов.

Также были обнаружены уязвимости в Eclipse Mosquitto: CVE-2021-41039, при которой клиент MQTTv5 с большим количеством пользовательских свойств мог вызвать чрезмерную нагрузку на процессор[47], и CVE-2021-28166, исправленная в версии 2.0.10[48].

2022

В феврале 2022 года «Лаборатория Касперского» опубликовала отчёт, в котором подчеркнула риски использования MQTT в носимых устройствах и телемедицине, отметив, что многие из ранее выявленных уязвимостей оставались неисправленными[43]. В этом году были зарегистрированы следующие уязвимости:

  • F5 BIG-IP (CVE-2022-35240): удалённый неаутентифицированный злоумышленник мог вызвать отказ в обслуживании в компоненте Message Routing MQTT[49].
  • Servisnet Tessa (CVE-2022-22832): уязвимость позволяла получить учётные данные MQTT без аутентификации[50].
  • Eclipse Mosquitto: в августе была исправлена проблема, приводившая к сбою брокера в версиях с 2.0.0 по 2.0.14[48].

2023

В 2023 году продолжилось выявление уязвимостей, в основном в брокере Eclipse Mosquitto:

  • CVE-2023-0809: DoS-атака через чрезмерное выделение памяти на брокере[48].
  • CVE-2023-3592: утечка памяти при отправке клиентом MQTTv5 пакета CONNECT с некорректными свойствами в «завещании» (will message)[48].
  • CVE-2023-28366: утечка памяти, вызываемая отправкой множества сообщений с QoS 2 и дублирующимися идентификаторами[51].

Кроме того, были обнаружены уязвимости, затрагивающие целые системы, например, CVE-2023-3028, которая позволяла получить доступ к телеметрии парка транспортных средств[52], и CVE-2023-1083, позволявшая неаутентифицированному злоумышленнику отправлять команды на устройства, зная имя топика[53].

2024

В 2024 году были выявлены уязвимости как в серверных, так и в клиентских реализациях MQTT:

  • Eclipse Mosquitto (CVE-2024-8376): утечка памяти или сбой, вызываемые определённой последовательностью пакетов[54].
  • libmosquitto (CVE-2024-10525): переполнение буфера в клиентской библиотеке, которое могло привести к сбою приложения или выполнению произвольного кода[55].
  • CVE-2024-6786: уязвимость обхода каталога (path traversal) в MQTT-сообщениях, позволяющая читать произвольные файлы в системе[56].
  • SiPass integrated AC5102 (CVE-2024-52285): обнаружены открытые URL-адреса MQTT без аутентификации, что позволяло получить доступ к конфиденциальным данным[56].

2025

В 2025 году уязвимости были обнаружены в ряде промышленных и потребительских продуктов:

  • Rockwell Automation FactoryTalk Optix (CVE-2025-9161): отсутствие санитаризации URI позволяло загружать удалённые плагины Mosquitto, что могло привести к удалённому выполнению кода[57].
  • SunGrow iSolarCloud (CVE-2025-29756): недостаточные ограничения на подписку к топикам позволяли аутентифицированному пользователю перехватывать сообщения от всех устройств в системе[58].
  • Маршрутизаторы TOTOLINK: выявлен ряд критических уязвимостей в обработчике MQTT-пакетов (например, CVE-2025-8170, CVE-2025-7952)[56].
  • Устройства ABB RMC-100 (CVE-2025-6071): использование жёстко закодированного криптографического ключа позволяло расшифровывать данные, передаваемые по MQTT[56].

Кластеризация

Кластеризация MQTT — это техника, применяемая для обеспечения высокой доступности, отказоустойчивости и масштабируемости внедрений MQTT[59]. Как эффективный и легковесный протокол обмена сообщениями, кластеризация MQTT позволяет создавать устойчивую сеть взаимосвязанных брокеров, обеспечивая непрерывную и надёжную доставку сообщений даже при аппаратных сбоях или сетевых сбоях.

Примечания

  1. What is MQTT? Amazon Web Services. Дата обращения: 30 июля 2024.
  2. The 20-Year Anniversary of the Genesis of MQTT. Inductive Automation. Дата обращения: 30 июля 2024.
  3. MQTT: основы, применение и безопасность. Хабр. Дата обращения: 30 июля 2024.
  4. 1 2 Протокол MQTT: история создания, сферы применения, преимущества и недостатки. MKA.RU. Дата обращения: 30 июля 2024.
  5. Getting Started with MQTT. HiveMQ (24 апреля 2020). Дата обращения: 30 июля 2024.
  6. 1 2 Team, The HiveMQ Introducing the MQTT Protocol – MQTT Essentials: Part 1 (англ.). HiveMQ. Дата обращения: 26 сентября 2021.
  7. MQTT v3.1 and MQTT v3.1.1 Differences. OASIS Message Queuing Telemetry Transport (MQTT) TC (12 февраля 2015). Дата обращения: 19 августа 2021.
  8. MQTT V3.1 Protocol Specification. Eurotech, International Business Machines Corporation (IBM) (2010). Дата обращения: 15 декабря 2020.
  9. OASIS MQTT Technical Committee Minutes of for the meeting of Thursday, 25th April 2013 Teleconference.
  10. MQTT Version 3.1.1 (29 октября 2014). Дата обращения: 30 июля 2024.
  11. 6 facts why it's worth upgrading to the brand new MQTT 3.1.1 version (30 октября 2014). Дата обращения: 30 июля 2024.
  12. MQTT — протокол для промышленного интернета вещей. Хабр (12 июня 2019). Дата обращения: 30 июля 2024.
  13. Differences between 3.1.1 and 5.0. GitHub. Дата обращения: 30 июля 2024.
  14. MQTT Version 5.0. OASIS (7 марта 2019). Дата обращения: 30 июля 2024.
  15. MQTT for Sensor Networks (MQTT-SN). MQTT.org. Дата обращения: 30 июля 2024.
  16. Введение в MQTT-SN (MQTT для сенсорных сетей). Arduino-Tex.ru. Дата обращения: 30 июля 2024.
  17. Connecting MQTT-SN Devices Using EMQX. EMQ. Дата обращения: 30 июля 2024.
  18. MQTT-SN Protocol Specification Version 1.2 (14 ноября 2013). Дата обращения: 30 июля 2024.
  19. MQTT-SN standardization postponed. Model-Based Testing (1 марта 2017). Дата обращения: 30 июля 2024.
  20. 1 2 Simon Johnson. MQTT-SN standardization progress. GitHub (17 апреля 2021). Дата обращения: 30 июля 2024.
  21. 1 2 MQTT-SN: The Smart Choice for IIoT? HiveMQ (29 мая 2024). Дата обращения: 30 июля 2024.
  22. Yuan, Michael Getting to know MQTT. IBM Developer. Дата обращения: 13 октября 2019.
  23. Client, Broker / Server and Connection Establishment - MQTT Essentials: Part 3. HiveMQ (17 июля 2019). Дата обращения: 13 октября 2019.
  24. Retained Messages – MQTT Essentials: Part 8. HiveMQ (2 марта 2015). Дата обращения: 13 октября 2019.
  25. FAQ – Frequently Asked Questions (амер. англ.). MQTT.org. Дата обращения: 19 марта 2020.
  26. 1 2 3 MQTT протокол передачи данных в интернете вещей. Xelent. Дата обращения: 30 июля 2024.
  27. 1 2 Роль MQTT-протокола и уровней QoS в IIoT: ключевые особенности и преимущества. IPC2U (2024). Дата обращения: 30 июля 2024.
  28. MQTT Sparkplug/Tahu. www.cirrus-link.com. Дата обращения: 5 ноября 2019.
  29. Cope, Stephen. MQTT For Complete Beginners. — Wydawca nieznany, 2020. — P. 17. — ISBN 9798779030762.
  30. Overcoming Address Change With MQTT Over QUIC. IoT For All. Дата обращения: 30 июля 2024.
  31. 1 2 MQTT over QUIC. EMQ. Дата обращения: 30 июля 2024.
  32. 1 2 EMQ Launches EMQX Enterprise 5.10 with AI-driven MQTT Workflows, NATS Gateway, and Enhanced Data Integration. PR Newswire. Дата обращения: 30 июля 2024.
  33. HiveMQ Security. HiveMQ. Дата обращения: 30 июля 2024.
  34. Pro Mosquitto Release. Cedalo. Дата обращения: 30 июля 2024.
  35. EMQX Enterprise 5.10.0. EMQ (10 июня 2025). Дата обращения: 30 июля 2024.
  36. Security. HiveMQ. Дата обращения: 30 июля 2024.
  37. What's New in EMQX 5.0. EMQ. Дата обращения: 30 июля 2024.
  38. MQTT Market Trends for 2024: Cloud, Unified Namespace, Sparkplug, Kafka Integration. Kai Wähner (8 декабря 2023). Дата обращения: 30 июля 2024.
  39. What is MQTT? Definition and Details (англ.). www.paessler.com. Дата обращения: 9 июня 2020.
  40. 1 2 3 MQTT Trends for 2025 and Beyond. EMQ. Дата обращения: 30 июля 2024.
  41. IBM Knowledge Center - IBM MQ - Using MQTT with IBM Integration Bus - Quality of service and connection management (амер. англ.). www.ibm.com. Дата обращения: 30 января 2018.
  42. 1 2 IoT Security: A simple guide to the most common IoT security topics (pdf). IT-Wirtschaft (февраль 2021). Дата обращения: 1 августа 2024.
  43. 1 2 Thirty-three new vulnerabilities found in wearable MQTT protocol. ITWeb (3 февраля 2022). Дата обращения: 1 августа 2024.
  44. CVE-2020-13849. MITRE Corporation. Дата обращения: 1 августа 2024.
  45. «Лаборатория Касперского» обнаружила 33 уязвимости в протоколе MQTT. Anti-Malware.ru (3 февраля 2022). Дата обращения: 1 августа 2024.
  46. Three Open-Source MQTT Message Brokers Found Vulnerable Against A DoS, CyRC Alerted. SecureBlink (25 июня 2021). Дата обращения: 1 августа 2024.
  47. CVE-2021-41039. NIST. Дата обращения: 1 августа 2024.
  48. 1 2 3 4 Security. mosquitto.org. Дата обращения: 1 августа 2024.
  49. K28405643: BIG-IP Message Routing MQTT vulnerability CVE-2022-35240. F5. Дата обращения: 1 августа 2024.
  50. Servisnet Tessa MQTT Broker - Unauthenticated Credential Disclosure. Exploit-DB. Дата обращения: 1 августа 2024.
  51. Eclipse Mosquitto CVEs. OpenCVE. Дата обращения: 1 августа 2024.
  52. CVE-2023-3028. NIST. Дата обращения: 1 августа 2024.
  53. CVE-2023-1083. NIST. Дата обращения: 1 августа 2024.
  54. CVE Search Results for "mosquitto". CVE.org. Дата обращения: 1 августа 2024.
  55. CVE-2024-10525. Red Hat. Дата обращения: 1 августа 2024.
  56. 1 2 3 4 CVE Search Results for "mqtt". CVE.org. Дата обращения: 1 августа 2024.
  57. Remote Code Execution in FactoryTalk Optix MQTT Broker. GitHub Advisory Database. Дата обращения: 1 августа 2024.
  58. CVE-2025-29756. NIST. Дата обращения: 1 августа 2024.
  59. High availability MQTT Cluster - Bevywise Networks (англ.). www.bevywise.com. Дата обращения: 22 декабря 2023.

Ссылки

  • mqtt.org (англ.) — официальный сайт MQTT