Скачиваний:
131
Добавлен:
23.01.2020
Размер:
1.91 Mб
Скачать

Протокол MQTT

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

MQTT и другие модели pub/sub также являются временно-независимыми. Это означает, что сообщение, опубликованное одним клиентом, подписчиком может прочитать и ответить на него в любое время. Абонент может находиться в месте с очень низким энергопотреблением/ограниченной полосой пропускания (например, Sigfox communication) и ответить на сообщение через несколько минут или часов. Из-за отсутствия физических и временных отношений модели pub/sub очень хорошо подходят для повышения производительности.

Протокол MQTT

Максимально допустимый размер пакета в MQTT составляет 256 Мб. Однако, по факту максимальный размер полезной нагрузки данных зависит от облака и брокера.

MQTT определяет дополнительный объект под названием Последняя воля и завещание (LWT). LWT – это сообщение, которое указывает клиент во время фазы подключения. LWT содержит тему «Последняя воля», QoS и фактическое сообщение. Если клиент неправильно отключается от брокерского соединения (например, тайм-аут keep-alive, ошибка ввода-вывода или клиент закрывает сеанс без отключения), тогда брокер обязан транслировать сообщение LWT всем другим подписанным на эту тему клиентам.

Протокол MQTT-SN (Sensor network)

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

Для MQTT-SN не требуется стек TCP/IP. Его можно использовать по последовательному соединению где накладные расходы очень малы.

В качестве альтернативы он может использоваться протокол UDP, который требует меньше ресурсов, чем TCP.

Протокол MQTT-SN

шлюзы – в MQTT-SN шлюз несет ответственность за преобразование протокола из MQTT-SN в MQTT и наоборот (хотя возможны и другие переводы). Шлюзы также могут быть агрегирующими или прозрачными;

форвардеры – маршрут между датчиком и шлюзом MQTT-SN может проходить по множеству путей и пересекать несколько маршрутизаторов.

Узлы между исходным клиентом и шлюзом MQTT-SN называются форвардерами , они просто повторно инкапсулируют кадры MQTT-SN в новые и неизменные кадры MQTT-SN, которые отправляются в пункт назначения до тех пор, пока они не достигнут правильного шлюза MQTT-SN

клиенты – клиенты ведут себя так же, как в MQTT, могут подписываться и публиковать данные;

брокеры – брокеры ведут себя так же, как в MQTT.

Протокол MQTT-SN

шлюзы – в MQTT-SN шлюз несет ответственность за преобразование протокола из MQTT-SN в MQTT и наоборот (хотя возможны и другие переводы). Шлюзы также могут быть агрегирующими или прозрачными;

форвардеры – маршрут между датчиком и шлюзом MQTT-SN может проходить по множеству путей и пересекать несколько маршрутизаторов.

Узлы между исходным клиентом и шлюзом MQTT-SN называются форвардерами , они просто повторно инкапсулируют кадры MQTT-SN в новые и неизменные кадры MQTT-SN, которые отправляются в пункт назначения до тех пор, пока они не достигнут правильного шлюза MQTT-SN

клиенты – клиенты ведут себя так же, как в MQTT, могут подписываться и публиковать данные;

брокеры – брокеры ведут себя так же, как в MQTT.

Форвардер MQTT-SN

Различия между MQTT и MQTT-SN

в MQTT-SN есть три сообщения CONNECT, а в MQTT – одно. Дополнительные два используются для передачи темы «Will» и сообщения «Will»;

MQTT-SN может работать через упрощенную среду и UDP;

имена тем заменяются короткими двухбайтовыми сообщениями с идентификатором темы. Это необходимо для лучшего использования пропускной способности в беспроводных сетях;

предварительно определенные идентификаторы тем и короткие имена тем могут использоваться без какой-либо регистрации. Чтобы использовать эту функцию, клиент и сервер должны использовать один и тот же идентификатор темы;

Различия между MQTT и MQTT-SN

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

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

Ограниченный протокол приложений

(CoAP)

Ограниченный протокол приложений (CoAP) является разработкой IETF (RFC7228). Рабочая группа IETF Constrained RESTful Environments (CoRE) создала первый проект протокола в июне 2014 г., но еще несколько лет работала над его созданием. Он создан в качестве протокола связи для устройств с ограниченными вычислительными ресурсами. Протокол уникален, поскольку он впервые разработан для обмена данными типа машина-машина (M2M) между граничными узлами (без шлюзов). Он также поддерживает работу с HTTP с использованием прокси. Это преобразование HTTP является встроенным средством для получения данных через интернет.

Соседние файлы в папке Лекции