Home >Промышленный Интернет вещей>Промышленный Интернет вещей
Подробное объяснение протокола MQTT

 

MQTT (Message Queuing Telemetry Transport) — это облегченный протокол обмена сообщениями, основанный на методе публикации/подписки в соответствии со стандартом ISO. MQTT обычно использует TCP/IP (протокол управления передачей/Интернет-протокол) в качестве транспорта, но также можно использовать и другие двунаправленные транспортные средства. MQTT обычно используется для связи между устройствами и приложениями, такими как Интернет вещей и умные дома. В области встраиваемых систем MQTT уже играет незаменимую роль, поскольку большинству встраиваемых устройств для обмена данными требуется именно такой протокол.

 

MQTT broker

Скорочтение:

Основные возможности протокола MQTT

Глубокие возможности MQTT

   01 Распространение информации «один ко многим»

   02 Различные базовые протоколы

   03 Надежность сообщений

Две основные версии MQTT

   01 псевдоним темы

   02 Работа по подписке

   03 Будут новости

   04 Обработка ошибок

   05 контроль потока

   06 Производительность и эффективность

Каковы преимущества протокола MQTT для Интернета вещей?

   01 Простота в эксплуатации

   02 Безопасно и надежно

   03 Двусторонний обмен сообщениями

   04 Масштабный обмен сообщениями

 

 

Основные возможности протокола MQTT

(1) Открытый протокол сообщений, простой и легкий в реализации.

(2) Модель публикации и подписки, публикация сообщений «один ко многим».

(3) Основанное на сетевом соединении TCP/IP, оно обеспечивает упорядоченное двустороннее соединение без потерь.

(4) 1-байтовый фиксированный заголовок и 2-байтовое контрольное сообщение минимизируют накладные расходы на передачу и обмен протоколами, эффективно уменьшая сетевой трафик.

(5) Качество обслуживания сообщений обеспечивает гарантию надежной передачи.

 

Глубокие возможности MQTT


01 Распространение информации «один ко многим»

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


MQTT,Publish, MQTT Broker, Subscribe

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

 

02Различные базовые протоколы

Вторая особенность MQTT на самом деле заключается в том, что он основан на TCP/IP. Ему суждено стать протоколом верхнего уровня. Большинство людей, с которыми мы сейчас общаемся, на самом деле разработаны на основе протокола TCP, но на самом деле он есть версия, основанная на UDP. Она называется MQTT-SN, но все знают, что TCP ориентирован на соединение, а UDP не ориентирован на соединение, поэтому в зависимости от различных типов базовых протоколов характеристики, отображаемые MQTT, определенно различаются.

 

03Надежность сообщений

Для широко используемого протокола MQTT имеется очень важная функция обеспечения надежности сообщений — QoS (качество обслуживания).QoS можно разделить на три уровня: QoS 0, QoS 1 и QoS 2.

 

QoS 0 фактически эквивалентен MQTT без дополнительной защиты информации. Поскольку он основан на протоколе TCP, надежность его сообщений полностью зависит от протокола TCP. QoS 1 означает, что он обещает отправить его получателю хотя бы один раз.Это защита информации на уровне MQTT, а не только на уровне протокола TCP. Наконец, QoS 2 гарантирует, что сообщение будет доставлено пункту назначения только один раз.

MQTT,MQTT sever, MQTT client

Поскольку для QoS 1 сообщение может быть отправлено несколько раз из-за отсутствия обратной связи, получатель также может получить сообщение несколько раз. По этой причине сообщение, передаваемое QoS 2, имеет уникальный идентификатор, а сообщение с уникальным идентификатором Идентификатор сообщения сохраняется дважды: сначала от отправителя, а затем от получателя. Уровень QoS 2 имеет самые высокие издержки в сети, поскольку между отправителем и получателем требуются два потока.

 

Две основные версии MQTT

MQTT имеет две основные версии: v3 и v5. Принципы этих двух версий в основном одинаковы, но между ними есть некоторые ключевые различия. Различия между ними будут представлены ниже.


01 псевдоним темы

Темы — это основная концепция MQTT, которая используется для определения содержания и целей сообщений. В MQTT v3 тема — это простая строка, структурированная как серия слов, разделенных косой чертой. Например, тема MQTT v3 может иметь вид датчики/температура/комната1, где датчики – это тема верхнего уровня, температура — это подтема, а комната1 — конкретное устройство в подтеме.


MQTT,MQTT packet

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

 

02Работа по подписке

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


MQTT,EMQ

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

 

03 Будут новости

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


MQTT,MOTT 5.0, MOTT 3.1&3.1.1

Will Properties — это новое поле в MQTT v5. Различные типы сообщений имеют разные свойства. Например, сообщения CONNECT имеют такие атрибуты, как максимальная длина сообщения и интервал окончания сеанса, а сообщения SUBSCRIBE имеют такие атрибуты, как идентификаторы подписки. Более того, по сравнению с MQTT v3, содержание волевых сообщений стало более гибким и может содержать любую тему и любое содержание сообщения.

 

04 Обработка ошибок

MQTT v5 поддерживает более подробный механизм обработки ошибок, который позволяет обнаруживать и решать проблемы с помощью кодов ошибок и их причин. В то же время в MQTT v5 также представлено новое управляющее сообщение — сообщение Disconnect, которое может помочь клиентам и серверам лучше обрабатывать ошибочные ситуации.

 

05 контроль потока

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


 MQTT

Максимальный размер пакета: MQTT v5 позволяет клиенту и серверу согласовывать максимальный размер пакета во время рукопожатия. Как показано на рисунке ниже, этот максимальный размер сообщения можно использовать для управления максимальным размером сообщения, передаваемого между клиентом и сервером, чтобы предотвратить перегрузку сети и высокую нагрузку из-за передачи слишком больших сообщений.

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

 

06Производительность и эффективность

По сравнению с MQTT v3, MQTT v5 лучше справляется с крупномасштабной передачей данных и повышает эффективность и производительность связи. Например, MQTT v5 поддерживает такие функции, как пакетная публикация (Batch Publish) и предварительная выборка (Message Prefetch), которые могут значительно снизить накладные расходы на связь MQTT.

 

Короче говоря, MQTT v5 имеет больше новых функций и безопасности, чем MQTT v3. Однако следует отметить, что MQTT v5 добавляет много новых функций и концепций по сравнению с MQTT v3. Поэтому при использовании MQTT v5 вам необходимо иметь глубокое понимание новых функций протокола MQTT, чтобы вы могли лучше использовать этот новый протокол.Создавайте надежные приложения.

 

Каковы преимущества протокола MQTT для Интернета вещей?

 

01Простота в эксплуатации

Начать работу MQTT можно быстро и легко: доступны миллионы готовых клиентских приложений и почти столько же брокеров.

 

02Безопасно и надежно

Многие устройства Интернета вещей используют радиосоединения для передачи и сбора данных, а это означает, что соединения не всегда надежны. MQTT может разрешить хранить сообщения в брокере до тех пор, пока устройство не будет готово к их приему. Благодаря QoS (качество обслуживания) MQTT может ставить сообщения в очередь, гарантируя, что они дойдут до места назначения и, при необходимости, гарантируя, что они прибудут только один раз.

 

03 Двусторонний обмен сообщениями

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

 

04 Масштабный обмен сообщениями

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

MQTT,MQTT broker

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



Recommend