MQTT , полное название (Message Queuing Telemetry Transport), — это не слишком старый протокол связи. Первоначально он был разработан для сред с ограниченными сетевыми условиями, поэтому имеет характеристики низкой пропускной способности и низких накладных расходов. Объем кода также невелик, а сам MQTT построен на протоколе TCP и обеспечивает более глубокую защиту для надежности передача информации.
Поэтому во встраиваемой сфере протокол связи MQTT уже занимает незаменимую часть, ведь большинству встраиваемых устройств для обмена данными требуется именно такой протокол. Доступных ресурсов для встраиваемых устройств и различных плагинов не так много. Способ подключения к Интернету также уступает обычным мобильным телефонам и персональным компьютерам. Это низкоскоростной метод связи, и большой объем потребляемого трафика слишком велик для устройств 4G/NB-IOT, которые потребляют трафик.
Глубокие возможности протокола MQTT
Далее следует поговорить о глубоких возможностях протокола MQTT.
1. Распространение информации по принципу «один ко многим»
Прежде всего, это протокол, основанный на подписке и публикации, поэтому он может публиковать сообщения «один ко многим». Существует множество сценариев применения этой функции. Ограниченное вещание позволяет серверу гибко управлять устройством, которым он хочет управлять, и сервер может это сделать. Предоставление нескольких тем, на которые можно подписаться, чрезвычайно важно.
Потому что для сервера получение и обработка данных — основная задача. Однако по мере увеличения количества устройств и функциональных линий устройств логика обработки сервера будет увеличиваться в геометрической прогрессии. Одни и те же полученные данные могут быть полностью загружены разными типами устройств. Разная информация, поэтому, когда можно предоставить несколько тем подписки и тем публикации, можно различить это логическое различие, что очень удобно для разработчиков.
2. Различные базовые протоколы
Вторая особенность протокола MQTT заключается в том, что он основан на TCP/IP. Это протокол, основанный на верхнем уровне. Большинство людей, с которыми мы сейчас общаемся, на самом деле разработаны на основе протокола TCP, но на самом деле у него есть версия, основанная на UDP. , называемый MQTT-SN, но все знают, что TCP ориентирован на соединение, а UDP не ориентирован на соединение, поэтому в зависимости от различных типов базовых протоколов характеристики MQTT должны быть разными.
Для широко используемого протокола MQTT (основанного на TCP) он имеет очень важную функцию, обеспечивающую надежность сообщений: QoS .
QoS делится на три уровня:
QoS 0 фактически эквивалентен MQTT без дополнительной защиты информации. Поскольку он основан на протоколе TCP, надежность его сообщений полностью зависит от протокола TCP. QoS 1 означает, что он обещает отправить его получателю хотя бы один раз. Это защита информации на уровне MQTT, а не только на уровне протокола TCP. Наконец, QoS 2 гарантирует, что сообщение будет доставлено пункту назначения только один раз.
Поскольку для QoS 1 сообщение может быть отправлено несколько раз из-за отсутствия обратной связи, и получатель также может получить сообщение несколько раз. По этой причине сообщение, передаваемое с помощью QoS 2 , имеет уникальный идентификатор, и сообщение с уникальным идентификатором сообщения будет храниться дважды, сначала от отправителя, а затем от получателя. Уровень QoS 2 имеет самые высокие издержки в сети, поскольку два потока необходимы между отправителем и получателем.
В настоящее время протокол MQTT действительно широко используется. Его можно найти во встроенном сельском хозяйстве, промышленности и инфраструктурном оборудовании, но он сам по себе является протоколом.
Фактически, как часть передачи данных в приложениях Интернета вещей, он играет не менее важную роль, чем метод беспроводной передачи данных. Будь то беспроводной модуль 4G, модуль NB-IOT, модуль Wi-Fi , модуль lora , модуль Bluetooth , модуль zigbee и т. д., передача данных относится к передаче данных, но протоколы — это душа верхнего уровня. Разные протоколы имеют разные сценарии применения и играют разные роли.