Protocolos de comunicação do dispositivo - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Protocolos de comunicação do dispositivo

AWS IoT Core suporta dispositivos e clientes que usam os protocolos MQTT e MQTT over WebSocket Secure (WSS) para publicar e assinar mensagens, e dispositivos e clientes que usam o protocolo HTTPS para publicar mensagens. Todos os protocolos são compatíveis com IPv4 e IPv6. Esta seção descreve as diferentes opções de conexão para dispositivos e clientes.

TLS 1.2 e TLS 1.3

AWS IoT Core usa TLS versão 1.2 e TLS versão 1.3 para criptografar todas as comunicações. Ao conectar dispositivos ao AWS IoT Core, os clientes podem enviar a extensão Server Name Indication (SNI), que não é obrigatória, mas é altamente recomendada. Para usar atributos como registro de várias contas, domínios personalizados e endpoints da VPC, é necessário usar a extensão SNI. Para obter mais informações, consulte Segurança de transporte em AWS IoT.

Os AWS IoT SDKs de dispositivos oferecem suporte a MQTT e MQTT via WSS e aos requisitos de segurança das conexões do cliente. Recomendamos usar os AWS IoT SDKs de dispositivos para conectar clientes à AWS IoT.

Protocolos, mapeamentos de porta e autenticação

A forma como um dispositivo ou cliente se conecta ao agente de mensagens usando um endpoint de dispositivo depende do protocolo usado. A tabela a seguir lista os protocolos que os endpoints do AWS IoT dispositivo suportam e os métodos e portas de autenticação que eles usam.

Protocolos, autenticação e mapeamentos de porta
Protocolo Operações compatíveis Autenticação Porta Nome do protocolo ALPN

Acabou o MQTT WebSocket

Publicar/assinar Signature versão 4 443

N/D

Acabou o MQTT WebSocket

Publicar/assinar Autenticação personalizada 443

N/D

MQTT

Publicar/assinar

Certificado do cliente X.509

443

x-amzn-mqtt-ca

MQTT Publicar/assinar Certificado do cliente X.509 8883 N/D

MQTT

Publicar/assinar

Autenticação personalizada

443

mqtt

HTTPS

Somente publicação

Signature versão 4

443

N/D

HTTPS

Somente publicação

Certificado do cliente X.509

443

x-amzn-http-ca

HTTPS Somente publicação Certificado do cliente X.509 8443 N/D
HTTPS Somente publicação Autenticação personalizada 443 N/D
Application Layer Protocol Negotiation (ALPN)

Clientes que se conectam na porta 443 com autenticação de certificado de cliente X.509 devem implementar a extensão TLS de negociação de protocolo de camada de aplicativo (ALPN) e usar o nome do protocolo ALPN listado no ALPN ProtocolNameList enviado pelo cliente como parte da mensagem. ClientHello

Na porta 443, o endpoint IoT:Data-ATS suporta ALPN x-amzn-http-ca HTTP, mas o endpoint IoT:Jobs não.

Na porta 8443 HTTPS e na porta 443 MQTT com ALPN x-amzn-mqtt-ca, a autenticação personalizada não pode ser usada.

Os clientes se conectam aos endpoints Conta da AWS de seus dispositivos. Consulte AWS IoT dados do dispositivo e endpoints de serviço para ver informações sobre como encontrar os endpoints do dispositivo da sua conta.

nota

AWS Os SDKs não exigem o URL inteiro. Eles exigem apenas o nome do host do endpoint, como a pubsub.pyamostra do AWS IoT Device SDK for Python on. GitHub Transmitir o URL inteiro conforme fornecido na tabela a seguir pode gerar um erro, como nome de host inválido.

Conectando-se a AWS IoT Core

Protocolo

Endpoint ou URL

MQTT

iot-endpoint

MQTT via WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

Escolher um protocolo para a comunicação do seu dispositivo

Para a maioria das comunicações dos dispositivos de IoT por meio dos endpoints do dispositivo, convém usar os protocolos MQTT ou MQTT via WSS; no entanto, os endpoints do dispositivo também oferecem suporte a HTTPS. A tabela a seguir compara como AWS IoT Core usa os dois protocolos para comunicação do dispositivo.

AWS IoT protocolos de dispositivos side-by-side

Atributo

MQTT

HTTPS

Suporte para publicação/assinatura

Publicação e assinatura

Somente publicação

Compatibilidade com o SDK

AWS Os SDKs de dispositivos oferecem suporte aos protocolos MQTT e WSS

Não há suporte para SDK, mas você pode usar métodos específicos de linguagem para fazer solicitações HTTPS

Suporte à qualidade de serviço

Níveis 0 e 1 de QoS do MQTT

A QoS é compatível enviando um parâmetro de string de consulta ?qos=qos em que o valor pode ser 0 ou 1. Você pode adicionar essa string de consulta para publicar uma mensagem com o valor de QoS desejado.
Pode receber mensagens perdidas enquanto o dispositivo estava off-line Sim Não

Suporte a campo de clientId

Sim

Não

Detecção de desconexão do dispositivo

Sim

Não

Comunicações seguras

Sim. Consulte Protocolos, mapeamentos de porta e autenticação

Sim. Consulte Protocolos, mapeamentos de porta e autenticação

Definições de tópico

Aplicativo definido

Aplicativo definido

Formato dos dados de mensagem

Aplicativo definido

Aplicativo definido

Sobrecarga do protocolo Menor Mais alto
Consumo de energia Menor Mais alto

Limites de duração da conexão

Não é garantido que as conexões HTTPS durem mais do que o tempo necessário para receber e responder às solicitações.

A duração da conexão MQTT depende do atributo de autenticação usado. A tabela a seguir lista a duração máxima da conexão em condições ideais para cada atributo.

Duração da conexão MQTT por atributo de autenticação

Atributo

Duração máxima *

Certificado do cliente X.509

1 a 2 semanas

Autenticação personalizada

1 a 2 semanas

Signature versão 4

Até 24 horas

* Não garantido

Com certificados X.509 e autenticação personalizada, a duração da conexão não tem um limite rígido, mas pode ser de apenas alguns minutos. Interrupções de conexão podem ocorrer por vários motivos. A lista a seguir contém alguns dos motivos mais comuns.

  • Interrupções na disponibilidade de Wi-Fi

  • Interrupções na conexão do provedor de serviços de Internet (ISP)

  • Patches de serviço

  • Implantações de serviços

  • Autoescalabilidade do serviço

  • Host de serviço indisponível

  • Problemas e atualizações do balanceador de carga

  • Erros no lado do cliente,

Seus dispositivos devem implementar estratégias para detectar desconexões e reconectar-se. Para obter mais informações sobre eventos de desconexão e orientações sobre como lidar com eles, consulte Eventos de conexão/desconexão em Eventos de ciclo de vida.