Protocolli di dispositivo di comunicazione - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Protocolli di dispositivo di comunicazione

AWS IoT Core supporta dispositivi e client che utilizzano i protocolli MQTT e MQTT over WebSocket Secure (WSS) per pubblicare e sottoscrivere messaggi e dispositivi e client che utilizzano il HTTPS protocollo per pubblicare messaggi. Tutti i protocolli supportano IPv4 eIPv6. In questa sezione vengono descritte le diverse opzioni di connessione per dispositivi e client.

TLSversioni del protocollo

AWS IoT Core utilizza TLSla versione 1.2 e TLSla versione 1.3 per crittografare tutte le comunicazioni. È possibile configurare versioni di TLS policy aggiuntive per l'endpoint configurando TLS le impostazioni nelle configurazioni del dominio. Quando collegano i dispositivi a AWS IoT Core, i client possono inviare l'estensione Server Name Indication (SNI), necessaria per funzionalità come la registrazione di più account, gli endpoint configurabili, i domini personalizzati e gli endpoint. VPC Per ulteriori informazioni, vedere Protezione del trasporto in AWS IoT.

Il AWS IoT Dispositivo SDKs supporto MQTT WSS e MQTT oltre i requisiti di sicurezza delle connessioni client. Si consiglia di utilizzare il AWS IoT Dispositivo SDKs per connettere i client a AWS IoT.

Protocolli, mappature delle porte e autenticazione

Il modo in cui un dispositivo o un client si connette al broker di messaggi è configurabile utilizzando un tipo di autenticazione. Per impostazione predefinita o quando non viene inviata alcuna SNI estensione, il metodo di autenticazione si basa sul protocollo dell'applicazione, sulla porta e sull'TLSestensione Application Layer Protocol Negotiation (ALPN) utilizzati dai dispositivi. La tabella seguente elenca l'autenticazione prevista in base a porta, porta eALPN.

Mappature tra protocolli, autenticazione e porte
Protocollo Operazioni supportate Autenticazione Porta ALPNnome del protocollo

MQTTfinita WebSocket

Pubblicazione, sottoscrizione Signature Version 4 443

N/D

MQTTsopra WebSocket

Pubblicazione, sottoscrizione Autenticazione personalizzata 443

N/D

MQTT

Pubblicazione, sottoscrizione

Certificato client X.509

443

x-amzn-mqtt-ca

MQTT Pubblicazione, sottoscrizione Certificato client X.509 8883 N/D

MQTT

Pubblicazione, sottoscrizione

Autenticazione personalizzata

443

mqtt

HTTPS

Solo pubblicazione

Signature Version 4

443

N/D

HTTPS

Solo pubblicazione

Certificato client X.509

443

x-amzn-http-ca

HTTPS Solo pubblicazione Certificato client X.509 8443 N/D
HTTPS Solo pubblicazione Autenticazione personalizzata 443 N/D
Negoziazione del protocollo a livello di applicazione () ALPN

Quando si utilizzano configurazioni endpoint predefinite, i client che si connettono alla porta 443 con l'autenticazione tramite certificato client X.509 devono implementare l'TLSestensione Application Layer Protocol Negotiation (ALPN) e utilizzare il nome del ALPN protocollo riportato nell'e-mail ALPN ProtocolNameList inviata dal client come parte del messaggio. ClientHello

Sulla porta 443, l'endpoint IoT:Data- ATS supporta, ma l'endpoint IoT:Jobs no. ALPN x-amzn-http-ca HTTP

Sulla porta 8443 HTTPS e sulla porta 443 con, l'autenticazione personalizzata non può essere utilizzata. MQTT ALPN x-amzn-mqtt-ca

I client si connettono agli endpoint dei Account AWS propri dispositivi. Consulta AWS IoT dati del dispositivo e endpoint di servizio per informazioni su come trovare gli endpoint del dispositivo dell'account.

Nota

AWS SDKsnon richiedono il tuttoURL. Richiedono solo il nome host dell'endpoint, ad pubsub.pyesempio per AWS IoT Device for SDK Python on. GitHub Il passaggio dell'intero URL come indicato nella tabella seguente può generare un errore, ad esempio un nome host non valido.

Connessione a AWS IoT Core

Protocollo

Endpoint o URL

MQTT

iot-endpoint

MQTTfinita WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

Scelta di un protocollo applicativo per la comunicazione del dispositivo

Per la maggior parte delle comunicazioni dei dispositivi IoT attraverso gli endpoint del dispositivo, ti consigliamo di utilizzare i protocolli Secure MQTT o MQTT over WebSocket Secure (WSS); tuttavia, supportano anche gli endpoint del dispositivo. HTTPS

La tabella seguente confronta il modo in cui AWS IoT Core vengono utilizzati i due protocolli di alto livello (MQTTeHTTPS) per la comunicazione tra dispositivi.

AWS IoT protocolli del dispositivo (MQTTe) HTTPS side-by-side

Funzionalità

MQTT

HTTPS

Supporto pubblicazione/sottoscrizione

Pubblicazione e sottoscrizione

Solo pubblicazione

Supporto di SDK

AWS SDKsSupporto MQTT e WSS protocolli dei dispositivi

Nessun SDK supporto, ma puoi utilizzare metodi specifici della lingua per effettuare richieste HTTPS

Supporto Qualità del servizio

MQTTLivelli QoS 0 e 1

QoS è supportato passando un parametro di stringa di query ?qos=qos dove il valore può essere 0 o 1. È possibile aggiungere questa stringa di query per pubblicare un messaggio con il valore QoS desiderato.
È possibile ricevere messaggi mancanti mentre il dispositivo era offline No

Supporto del campo clientId

No

Rilevamento disconnessione dispositivo

No

Sicurezza delle comunicazioni

Sì. Consulta Protocolli, mappature delle porte e autenticazione

Sì. Consulta Protocolli, mappature delle porte e autenticazione

Definizioni degli argomenti

Applicazione definita

Applicazione definita

Formato dei dati del messaggio

Applicazione definita

Applicazione definita

Sovraccarico del protocollo Più basso Più alto
Consumo energetico Più basso Più alto

Scelta di un tipo di autenticazione per la comunicazione con il dispositivo

Puoi configurare il tipo di autenticazione per il tuo endpoint IoT utilizzando endpoint configurabili. In alternativa, utilizza la configurazione predefinita e determina in che modo i dispositivi si autenticano con la combinazione di protocollo applicativo, porta ed estensione. ALPN TLS Il tipo di autenticazione scelto determina il modo in cui i dispositivi si autenticheranno durante la connessione durante la connessione a. AWS IoT Core Esistono cinque tipi di autenticazione:

certificato X.509

Autentica i dispositivi utilizzando i certificati client X.509, che AWS IoT Core convalidano l'autenticazione del dispositivo. Questo tipo di autenticazione funziona con Secure MQTT (MQTTover) e protocolli. TLS HTTPS

Certificato X.509 con autorizzatore personalizzato

Autentica i dispositivi utilizzando certificati client X.509 ed esegui azioni di autenticazione aggiuntive utilizzando un autorizzatore personalizzato, che riceverà le informazioni sul certificato client X.509. Questo tipo di autenticazione funziona con Secure MQTT (over) e protocolli. MQTT TLS HTTPS Questo tipo di autenticazione è possibile solo utilizzando endpoint configurabili con autenticazione personalizzata X.509. Non vi è alcuna opzione ALPN.

AWS Signature versione 4 (SigV4)

Autentica i dispositivi utilizzando Cognito o il tuo servizio di backend, supportando la federazione sociale e aziendale. Questo tipo di autenticazione funziona con MQTT WebSocket Secure (WSS) e protocolli. HTTPS

Autorizzatore personalizzato

Autentica i dispositivi configurando una funzione Lambda per elaborare le informazioni di autenticazione personalizzate inviate a. AWS IoT Core Questo tipo di autenticazione funziona con i protocolli Secure MQTT (MQTToverTLS) e MQTT over WebSocket Secure (WSS). HTTPS

Impostazione predefinita

Autentica i dispositivi in base alla porta e/o all'estensione del protocollo di negoziazione a livello di applicazione (ALPN) utilizzata dai dispositivi. Alcune opzioni di autenticazione aggiuntive non sono supportate. Per ulteriori informazioni, consulta Protocolli, mappature delle porte e autenticazione.

La tabella seguente mostra tutte le combinazioni supportate di tipi di autenticazione e protocolli applicativi.

Combinazioni supportate di tipi di autenticazione e protocolli applicativi
Tipo di autenticazione Sicuro MQTT (MQTTfinitoTLS) MQTTsu WebSocket Secure (WSS) HTTPS Predefinita
certificato X.509
Certificato X.509 con autorizzatore personalizzato
AWS Signature versione 4 (SigV4)
Autorizzatore personalizzato
Impostazione predefinita

Limiti di durata della connessione

HTTPSNon è garantito che le connessioni durino più a lungo del tempo necessario per ricevere e rispondere alle richieste.

MQTTla durata della connessione dipende dalla funzionalità di autenticazione utilizzata. La tabella seguente elenca la durata massima della connessione nelle condizioni ideali per ciascuna caratteristica.

MQTTdurata della connessione in base alla funzione di autenticazione

Funzionalità

Durata massima *

Certificato client X.509

1—2 settimane

Autenticazione personalizzata

1—2 settimane

Signature Version 4

Fino a 24 ore

* Non garantito

Con i certificati X.509 e l'autenticazione personalizzata, la durata della connessione non ha limiti rigidi, ma può durare pochi minuti. Per vari motivi si possono verificare interruzioni di connessione. L'elenco seguente contiene alcuni dei motivi più comuni.

  • Interruzioni di disponibilità Wi-Fi

  • interruzioni della connessione del provider di servizi Internet (ISP)

  • Patch di servizi

  • Implementazioni di servizi

  • Scalabilità automatica del servizio

  • Host del servizio non disponibile

  • Problemi e aggiornamenti del bilanciamento del carico

  • Errori lato client

I dispositivi devono implementare strategie per rilevare le disconnessioni e la riconnessione. Per informazioni sulla disconnessione di eventi e indicazioni su come gestirli, consulta Eventi di connessione/disconnessione in Eventi del ciclo di vita.