
- •Основы проектирования кибер- физических систем
- •Высокий уровень разработки
- •Протоколы высокого уровня
- •Презентации к лекциям доступны по ссылке:
- •Протоколы, основанные на сообщениях
- •Протоколы, основанные на сообщениях
- •Протокол MQTT
- •Протокол MQTT
- •Протокол MQTT
- •Протокол MQTT
- •Протокол MQTT
- •Протокол MQTT-SN (Sensor network)
- •Протокол MQTT-SN
- •Протокол MQTT-SN
- •Форвардер MQTT-SN
- •Различия между MQTT и MQTT-SN
- •Различия между MQTT и MQTT-SN
- •Ограниченный протокол приложений
- •Архитектура CoAP
- •Архитектура CoAP
- •Архитектура CoAP
- •Архитектура CoAP
- •STOMP
- •AMQP
- •А как там дела в промышленности?
Протокол 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 является встроенным средством для получения данных через интернет.