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 protocollo HTTPS per pubblicare messaggi. Tutti i protocolli supportano IPv4 e IPv6. In questa sezione vengono descritte le diverse opzioni di connessione per dispositivi e client.

TLS 1.2 e TLS 1.3

AWS IoT Core utilizza TLS versione 1.2 e TLS versione 1.3 per crittografare tutte le comunicazioni. Quando si connettono i dispositivi a AWS IoT Core, i client possono inviare l'estensione Server Name Indication (SNI), che non è obbligatoria ma vivamente consigliata. Per utilizzare funzionalità come la registrazione con più account, i domini personalizzati e gli endpoint VPC, è necessario utilizzare l'estensione SNI. Per ulteriori informazioni, consulta Transport Security in. AWS IoT

AWS IoT SDK per dispositivi supportano MQTT e MQTT su WSS e supportano i requisiti di sicurezza delle connessioni client. Si consiglia di utilizzare il AWS IoT SDK per dispositivi 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 utilizzando un endpoint del dispositivo dipende dal protocollo utilizzato. La tabella seguente elenca i protocolli supportati dagli endpoint del AWS IoT dispositivo e i metodi di autenticazione e le porte che utilizzano.

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

MQTT su WebSocket

Pubblicazione, sottoscrizione Signature Version 4 443

N/D

MQTT finito 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
Application Layer Protocol Negotiation (ALPN)

I client che si connettono alla porta 443 con l'autenticazione del certificato client X.509 devono implementare l'estensione TLS Application Layer Protocol Negotiation (ALPN) e utilizzare il nome del protocollo ALPN elencato nell'ALPN ProtocolNameList inviato dal client come parte del messaggio. ClientHello

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

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

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

Nota

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

Connessione a AWS IoT Core

Protocollo

Endpoint o URL

MQTT

iot-endpoint

MQTT su WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

Scegliere un protocollo per la comunicazione del dispositivo

Per la maggior parte delle comunicazioni dei dispositivi IoT tramite gli endpoint del dispositivo, è necessario utilizzare MQTT o MQTT tramite i protocolli WSS; tuttavia, gli endpoint del dispositivo supportano anche HTTPS. La tabella seguente confronta il modo in cui AWS IoT Core vengono utilizzati i due protocolli per la comunicazione tra dispositivi.

AWS IoT protocolli dei dispositivi side-by-side

Funzionalità

MQTT

HTTPS

Supporto pubblicazione/sottoscrizione

Pubblicazione e sottoscrizione

Solo pubblicazione

Supporto SDK

AWS Gli SDK dei dispositivi supportano i protocolli MQTT e WSS

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

Supporto Qualità del servizio

QoS MQTT livelli 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

Limiti di durata della connessione

Le connessioni HTTPS non durano più a lungo del tempo necessario per ricevere e rispondere alle richieste.

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

Durata della connessione MQTT per caratteristica 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 fornitore 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.