Найти в Дзене

Протоколы Интернета вещей (какая-то небольшая часть из них)

Оглавление

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

  • на нижнем уровне (уровне доступа к сети) располагаются технологии: пакетной передачи данных Ethernet, связи для коммуникации в беспроводной локальной сетевой зоне, беспроводных персональных сетях, беспроводных сетях масштаба города и другие;
  • на сетевом уровне технологии адресации: IPv4 и IPv6;
  • на транспортном уровне протоколы передачи данных: TCP и UDP.
Стек протоколов системы Интернета вещей
Стек протоколов системы Интернета вещей

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

Устройства в системе Интернета вещей должны согласовывать различные аспекты для успешного обмена данными. Использование правильного протокола в соответствии с окружающей средой и используемыми устройствами имеет важное значение. Это может повысить безопасность системы IoT в целом.

Основные, широко используемые стандартизированные протоколы Интернета вещей:

  1. Constrained Application Protocol (CoAP). Ограниченный протокол уровня приложения.
  2. Extensible Messaging and Presence Protocol (XMPP). Расширяемый протокол обмена сообщениями и присутствия.
  3. Advanced Message Queuing Protocol (AMQP). Расширенный протокол очередности сообщений.
  4. Message Queuing Telemetry Transport (MQTT). Протокол телеметрической передачи очереди сообщений.
  5. Data Distribution Service (DDS). Служба распространения данных.

Использование стандартизированных протоколов на IoT-платформах значительно ускоряют внедрение и разработку новых систем и приложений Интернета вещей за счет четко определенного описания работы и предъявляемых требований.

Constrained Application Protocol

CoAP – это ограниченный протокол уровня приложения, созданный рабочей группой The Internet Engineering Task Force (IETF) Constrained RESTful Environments (CoRE) в июне 2014 г. Стандарт протокола описан в документе RFC 7252 «The CoAP».

Данный протокол основан на технологии «запрос-ответ». Такая реализация предусматривает наличие вызывающей стороны («Клиент» на рисунке), которая инициирует запросы к конкретной службе, размещённой на удалённом сервере («Сервер» на рисунке).

Шаблон «запрос-ответ»
Шаблон «запрос-ответ»

Протокол CoAP предназначен для взаимодействия устройств с ограниченными ресурсами и устройств с низким энергопотреблением, например датчиков малой мощности, выключателей, клапанов, которые управляются или контролируются удаленно через сеть Интернет.

CoAP разработан на основе протокола HTTP, что делает эти протоколы совместимыми и обеспечивает взаимодействие устройств IoT с сервисами и пользователями сети Интернет. Взаимодействие происходит напрямую (ситуация «B» на рисунке) либо через преобразователь CoAP-прокси (ситуация «А» на рисунке).

Взаимодействия с использованием протокола CoAP
Взаимодействия с использованием протокола CoAP

Протокол CoAP работает поверх транспортного протокола UDP, что позволяет уменьшить требования к пропускной способности и повысить гибкость взаимодействия. А для обеспечения безопасного соединения используется шифрование сообщений по протоколу DTLS (Datagram Transport Layer Security). Также есть поддержка работы поверх протоколов TCP и SCTP, но без дополнительных механизмов безопасности.

Протокол CoAP работает поверх транспортного протокола UDP, что позволяет уменьшить требования к пропускной способности и повысить гибкость взаимодействия. А для обеспечения безопасного соединения используется шифрование сообщений по протоколу DTLS (Datagram Transport Layer Security). Также есть поддержка работы поверх протоколов TCP и SCTP, но без дополнительных механизмов безопасности.

Extensible Messaging and Presence Protocol

XMPP – расширяемый протокол обмена сообщениями и информацией о присутствии, стандартизированный IETF. Описан в документах: RFC 6120 «XMPP: Core», RFC 6121 «XMPP: Instant Messaging and Presence», RFC 6122 «XMPP: Address format».

Протокол XMPP предназначен для обмена данными в режиме реального времени. XMPP в основном предназначен для обмена мгновенными сообщениями и обнаружения онлайн-присутствия в небольших частных сетях.

XMPP работает поверх транспортного протокола TCP с обеспечением защищенности передачи данных в сети за счет использования криптографических протоколов TLS/SSL.

Данный протокол не поддерживает технологию «quality of service» (QoS), что делает его непрактичным для межмашинного взаимодействия.

Большое преимущество использования протокола XMPP – это то, что любой человек может создать свой собственный сервер в сети, который подобен почтовому серверу. Это помогает компаниям и отдельным людям создавать свои собственные способы общения на основании данной технологии (адресация вида «name@domain.com») и обеспечивать взаимодействие между отдаленными, чаще всего независимыми точками, например в случае взаимодействия двух абонентов. Так, например, возможно подключить домашние смарт-устройства (умный электрощит, умную кофемашину и другие) к серверу для получения доступа к ним с телефона.

Пример взаимодействия устройств с использованием XMPP
Пример взаимодействия устройств с использованием XMPP

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

Message Queuing Telemetry Transport

MQTT – протокол телеметрической передачи очереди сообщений, используемых для сбора данных малого размера от множества узлов из-за снижения нагрузки на канал связи за счет организации очередей (QoS). Описан в спецификации OASIS Message Queuing Telemetry Transport (MQTT) Version 5.0.

MQTT специализируется на низкоскоростных средах с высокой задержкой, поэтому хорошо подходит для систем межмашинного взаимодействия (M2M).

Протокол MQTT работает над протоколом управления передачей TCP и использует функции безопасности TLS/SSL для обеспечения надежности и предотвращения потери данных.

Используется для обмена сообщениями между устройствами по принципу «издатель-подписчик», позволяет устройствам посылать и получать данные при возникновении некоторого события. Для доставки сообщений используются следующие шаблоны:

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

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

Упрощенная схема обмена сообщениями MQTT
Упрощенная схема обмена сообщениями MQTT

Advanced Message Queuing Protocol

AMQP – расширенный протокол очередности сообщений, обеспечивающий асинхронную систему обмена сообщениями (подобно XMPP) независимых подсистем, сервисов или приложений. Описан в спецификации OASIS Advanced Message Queuing Protocol (AMQP) Version 1.0.

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

Безопасность в AMQP поддерживается за счет использования криптографических протоколов защиты транспортного уровня TLS/SSL и работы поверх протокола TCP. Также возможно использование аутентификации на основе SASL (Simple Authentication and Security Layer).

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

Пример построение взаимодействия сервисов на базе AMQP представлен на рисунке. Здесь ключевым устройством является брокер AMQP, состоящий из трех сущностей: биржи, очереди и привязки. Сообщения, отправленные брокеру, сначала отправляются на биржу. Затем биржа направляет сообщения в очередь, которая связана с биржей с помощью специальных правил (привязок). Далее, потребители получают сообщения из очереди двумя способами:

  • они могут быть подписаны на нее (ситуация «А» на рисунке);
  • пользователь может получить сообщения вручную отправив запрос в очередь (ситуация «B» на рисунке).
Пример взаимодействия на базе протокола AMQP
Пример взаимодействия на базе протокола AMQP

Data Distribution Service

DDS – служба распространения данных, которая реализует связь между сенсорными узлами (датчиками) для отправки и приема данных, событий и команд среди конечных узлов в режиме реального времени. Протокол описан в спецификации Object Management Group / DDS v1.4 – the DDS specification.

DDS применяется на участке между сенсорными узлами.

Протокол DDS на участке между датчиками
Протокол DDS на участке между датчиками

Данный протокол распределяет данные между устройствами и ориентирован на шаблон «издатель-подписчик», при этом передача сообщений производится по шине с использованием метода «запрос-ответ».

Принцип работы: узлы-издатели создают тему, основанную на собираемой информации (например: температура, местоположение, давление) и публикуют шаблоны. Узлам, заинтересовавшимся в данных разделах (узлы-подписчики), DDS прозрачно доставляет созданные шаблоны. В качестве транспортного протокола используется UDP.

В отличие от других протоколов, рассмотренных ранее, использующих модель «издатель-подписчик» (MQTT и AMQP), DDS основана на архитектуре без брокера (промежуточного узла) и использует многоадресную рассылку для достижения отличного качества обслуживания (QoS), многоадресную передачу, перестраиваемую надёжность и всеобъемлющую избыточность.

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