MQTT вводный учебник (а)

Начало введены MQTT

краткий

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

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

 

 

Во-вторых, технические характеристики,

Из-за вещей, это очень особая среда, поэтому MQTT следующие принципы проектирования:

  • (1) обтекаемой, без добавления несущественных функций;
  • (2) публикация / подписка режим (Pub / Sub), для облегчения обмена сообщениями между датчиками;
  • (3) позволяет динамически создавать тему, нулевой эксплуатацию и техническое обслуживание;
  • (4), чтобы перевести сумму до минимума, чтобы улучшить эффективность передачи;
  • (5) с низкой пропускной способностью, высокая задержка, нестабильная сеть и другие факторы во внимание;
  • (6) поддерживает непрерывный контроль сеанса;
  • (7) способность понимать клиента вычисления могут быть низкими;
  • (8) обеспечивают качество управления услугами;
  • (9) при условии, агностические данных, а не типов силы и формата передачи данных, сохранении гибкости.

В-третьих, основные характеристики

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

  • (1) с помощью публикации / подписок сообщений модели, предоставляя много распределения сообщений разъединяют приложения.

    Это похоже на XMPP, но информация избыточности MQTT гораздо меньше, чем XMPP ,, потому что XMPP использует формат XML для передачи текстовых данных.

  • (2) загружать содержимое маски передачи сообщений.

  • (3) с использованием протокола TCP / IP обеспечивает подключение к сети.

    Mainstream MQTT основан на соединении TCP для данных тужиться, но и имеет UDP на основе версии, которая называется MQTT-SN. Поскольку две версии, основанные на различных соединений, каждый с различными сильными и слабыми сторонами естественно.

  • (4) Есть три качества пресс-релизе службы:

    «В лучшем случае один раз», пресс-релиз полностью зависит от базовой сети TCP / IP. Происходят отсутствует или дублировать сообщения. Этот уровень может быть использован в следующих случаях данные датчиков окружающей среды, потеря прочитанной записи не имеет значения, потому что будет отправлена ​​во второй раз вскоре после этого. Это способ подтолкнуть генерал-майоров АРР, если интеллектуальное устройство отсутствует, когда сообщение толчок, толчок мимо не получили, не получит сеть снова.

    «По крайней мере, один раз», чтобы гарантировать, что сообщение достигает, но может произойти сообщение повторяется.

    «Только один раз», чтобы гарантировать, что сообщение достигает один раз. В некоторых из более жестких требований к системе биллинга, вы можете использовать этот уровень. В биллинговой системе, сообщение повторяется или отсутствует, приведет к неправильным результатам. Этот пресс-релиз высокого качества обслуживание также может быть использовано, чтобы подтолкнуть APP мгновенных сообщений, гарантируя, что пользователи получают и будут получать только один раз.

  • (5) небольшой ВЛ мала (заголовок фиксированной длины составляет 2 байта), протокол обмена сведено к минимуму, чтобы уменьшить сетевой трафик.

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

  • (6) с использованием характеристик завещания для информирования заинтересованных сторон механизмов абортированных клиента.

    Последняя воля: Это является свидетельством механизм для других устройств для отправки последние слова одного и того же субъекта в устройстве уведомления разрывалось.

    Завещание: механизм будет функционировать аналогичен последнюю волю.

Четыре, MQTT принцип соглашения

4.1 Реализация протокола MQTT

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

MQTT передается в сообщении: тема (тема) и нагрузки (полезной нагрузки) в двух частях:

  • (1) Тема, можно понять, как тип сообщения, после абонентской подписки (Subscribe), вы будете получать содержание сообщения, тема (полезная нагрузка);
  • (2) полезная нагрузка, может быть понята как содержание сообщения, содержание относится к конкретным абонентам необходимо использовать.

4.2 приложения сети передачи сообщений и

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

Когда данные приложения передаются по сети MQTT, MQTT будет связан с качеством обслуживания (QoS) и названием темы (тема) даже актуально.

4,3 MQTT клиент

Применение приложение или устройство MQTT соглашение, всегда установить сетевое соединение с сервером. Клиенты могут:

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

4.4 сервера MQTT

MQTT сервер под названием «Message Agent» (брокер), может быть приложение или устройство. Он расположен на выпуске новостей и абонентов между ними, он может:

  • (1) получение сетевого соединения от клиента;
  • (2) прием клиента применения информации, опубликованной;
  • (3) Обработка подписки и отписки запрос от клиента;
  • сообщения приложения (4) пересылки к подписавшимся клиентам.

4,5 соглашение MQTT подписаться, тему разговора

Во-первых, подписка (Подписка)

Подписываться на темы, которые содержат фильтры (Тема фильтра) и максимальное качество обслуживания (QoS). Подписка будет ассоциироваться с сессией (Session). Сеанс может содержать несколько подписок. Каждая сессия Каждая подписка имеет различные тематические фильтры.

Во-вторых, сессия (Session)

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

В-третьих, название предмета (Имя темы)

В сочетании с сообщением приложения ярлыка, который соответствует подписчику теги. Каждый клиент-сервер отправляет сообщение подписываться на конец тега матча.

В-четвертых, при условии фильтры (Тема фильтра)

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

В-пятых, нагрузка (Payload)

Конкретное сообщение абонент получил контент.

4.6 Метод протокола MQTT

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

  • (1) соединение. Ожидание, чтобы установить соединение с сервером.
  • (2) Отключить. MQTT ожидания для клиента, чтобы завершить работу, и отсоединен от TCP / IP сессии сервера.
  • (3) Абонемент. Ожидание завершения подписки.
  • (4) UNSUBSCRIBE. Ожидание сервера, чтобы отменить один или несколько клиентов подписываться на темы.
  • (5) Опубликовать. MQTT клиент посылает сообщение с запросом, поток возвращается к завершению прикладной программы передачи.

Пять, MQTT структура пакета протокола

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

  • (1) фиксация головы (фиксированный заголовок). MQTT присутствует во всех пакетах, идентификатор класса пакета представляет собой тип пакета и пакет.
  • (2) переменная головка (переменная заголовка). MQTT присутствует в части пакета, тип пакета определяет, имеется ли переменная заголовка и содержимое специфические.
  • (3) тело сообщения (полезная нагрузка). MQTT присутствует в части пакета, содержание конкретного полученного клиентом.

5,1 MQTT Железы

MQTT железа присутствует во всех пакетах, следующая структура:

5.1.1 типы пакетов MQTT

Позиция: Байт 1 в битах 7-4.

Фаза в 4-битовое беззнаковое целое, тип и значения а описывается следующим образом:

5.1.2 флаг

Позиция: Байт 1 в битах 3-0.

Без использования флага типа сообщения, флаг используется в качестве резервного бита. Если неверный флаг получен, приемник должен от подключения к сети:

(1) DUP: распространять копии сообщения. Он используется для обеспечения надежной передачи сообщения, если он установлен в 1, увеличиваются в следующем MESSAGEID больше, и требует подтверждения ответа на сообщение, чтобы убедиться, что передача завершена, но не для обнаружения повторно переданного сообщения.

(2) QoS: Качество пресс-релизе службы, а именно: обеспечить, чтобы количество доставки сообщений

O00: самое большее один раз, а именно: <= 1. 

O01: по крайней мере один раз, а именно: >. = 1 

Ø10: один раз, т.е .: = 1. 

Ø11: Зарезервировано

(3) СОХРАНИТЬ: Опубликовано сохранение идентичности, указывает на то, что сервер, который вы хотите сохранить информацию о толчок, если есть появились новые абоненты, восприняли новость толкнул его, если он отодвинул выпуск текущих абонентов. 5.1.3 остальных длины (длина оставшейся)

Адрес: Байт 2.

Второй байт заголовка фиксированной переменной длины, который хранит общий размер заголовка сообщения и тела, но непосредственно не сохраняются. Этот байт расширен, сохранением механизма, для хранения длины первых 7 бит, один используются в качестве идентификатора. Когда последний бит равен 1, это указывает на недостаточную длину, необходимо использовать два байта продолжают сохранять. Например, чтобы вычислить следующий размер 0

5.2 переменная головка MQTT

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

Многие типы пакета данных включает в себя поле идентификации пакета 2-байтовое, эти типы пакетов имеют: PUBLISH (QoS> 0), PUBACK, PUBREC, PUBREL, PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK.

Тело сообщения 5.3 Payload

Часть MQTT позиции Payload пакет сообщений, содержащий CONNECT, ПОДПИСКА, SUBACK, UNSUBSCRIBE четыре типа сообщений:

  • (1) CONNECT, основное содержание тела сообщения: Клиент ClientID, подписаться на тему, сообщение, и имя пользователя и пароль.
  • (2) ПОДПИСАТЬСЯ содержимое тела сообщения подписаться на ряд тем и QoS.
  • (3) SUBACK, сообщение сервера содержимого тела, чтобы идентифицировать и реагировать на темы и QoS ПОДПИСАТЬСЯ применяется для.
  • (4) UNSUBSCRIBE, содержание тела сообщения с подпиской нитей.

 

рекомендация

отwww.cnblogs.com/qingmuchuanqi48/p/12446680.html