Выбор протокола связи для устройств

Центр Интернета вещей позволяет устройствам использовать следующие протоколы для обмена данными на стороне устройства:

Примечание.

Центр Интернета вещей имеет ограниченную поддержку функций для MQTT. Если для решения требуется поддержка MQTT версии 3.1.1 или v5, рекомендуется использовать поддержку MQTT в Сетка событий Azure. Дополнительные сведения см. в разделе "Сравнение поддержки MQTT" в Центр Интернета вещей и сетке событий.

Сведения о поддержке протоколов, используемых компонентами Центра Интернета вещей, см. Руководство по обмену данными между устройством и облаком и руководстве по обмену данными между облаком и устройством.

Ниже в таблице приведены общие рекомендации по выбору протокола.

Протокол Когда следует выбрать этот протокол
MQTT
MQTT через WebSocket.
Используйте на всех устройствах, которые не требуют подключения к нескольким устройствам, каждый из которых имеет собственные учетные данные для каждого устройства, по одному и тому же подключению TLS.
AMQP
AMQP через WebSocket;
Используйте на собственных или облачных шлюзах, чтобы воспользоваться преимуществами мультиплексирования подключений на устройствах.
HTTPS Используется для устройств, которые не поддерживают другие протоколы.

При выборе протокола для связи на стороне устройства учитывайте следующие факторы:

  • Шаблон сообщения из облака на устройство. HttpS не имеет эффективного способа реализации отправки сервера. Таким образом, при использовании HTTPS устройства опрашивает Центр Интернета вещей для сообщений из облака на устройство. Этот подход неэффективен для устройства и Центра Интернета вещей. Согласно текущим рекомендациям для протокола HTTPS каждое устройство должно выполнять опрос не реже, чем раз в 25 минут. Если HTTPS получает много результатов, регулируются запросы в Центре Интернета вещей. Протоколы MQTT и AMQP поддерживают отправку сообщений по инициативе сервера при получении сообщений из облака на устройство. Они позволяют незамедлительно передавать сообщения из Центра Интернета вещей на устройство. Если задержка доставки является проблемой, лучше использовать протокол MQTT или AMQP. Для редко подключаемых устройств также подходит протокол HTTPS.

  • Шлюзы поля. MQTT и HTTPS поддерживают только одно удостоверение устройства (идентификатор устройства и учетные данные) для каждого TLS-подключения. По этой причине эти протоколы не поддерживаются для сценариев шлюза полей, требующих мультиплексирования сообщений, используя несколько удостоверений устройств в одном подключении или пуле вышестоящий подключений к Центр Интернета вещей. Такие шлюзы могут использовать для взаимодействия с вышестоящими устройствами протокол с поддержкой нескольких удостоверений устройств на одно подключение, например AMQP.

  • Устройства с небольшим количеством ресурсов. Библиотеки MQTT и HTTPS уступают по объему библиотекам AMQP, Таким образом, если устройство имеет ограниченные ресурсы (например, менее 1 МБ ОЗУ), эти протоколы могут быть единственной доступной реализацией протокола.

  • Обход сети. Стандартный протокол AMQP использует порт 5671, а MQTT ожидает передачи данных на порту 8883. Использование этих портов может вызвать проблемы в сетях, которые поддерживают только протокол HTTPS. В этом сценарии следует использовать протокол MQTT через WebSockets, AMQP через WebSockets или HTTPS.

  • Объем полезных данных. MQTT и AMQP — это двоичные протоколы, позволяющие передавать более компактные полезные данные, чем HTTPS.

Предупреждение

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

Внимание

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

  • протоколы HTTPS, MQTT через WebSockets и AMQP через WebSockets;
  • передача файлов (по всем протоколам).

Эти возможности обычно доступны на устройствах, использующих проверку подлинности X.509 с помощью отпечатка пальца. Дополнительные сведения о проверке подлинности на основе сертификата X.509 с помощью Центра Интернета вещей см. в разделе Поддерживаемые сертификаты X.509.

Номера портов

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

Протокол Порт
MQTT 8883
MQTT через WebSocket. 443
AMQP 5671
AMQP через WebSocket; 443
HTTPS 443

IP-адрес центра Интернета вещей может быть изменен без предварительного уведомления. Сведения об устранении последствий изменений IP-адресов центра Интернета вещей в решении и устройствах Интернета вещей см. в разделе "Рекомендации" Центр Интернета вещей IP-адресов.

Следующие шаги

Дополнительные сведения о том, как Центр Интернета вещей реализует протокол MQTT, см. в статье "Обмен данными с центром Интернета вещей" с помощью протокола MQTT.