Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Protocolos de comunicación de dispositivos
AWS IoT Core admite dispositivos y clientes que utilizan los protocolos MQTT y MQTT over WebSocket Secure (WSS) para publicar y suscribirse a mensajes, dispositivos y clientes que utilizan el protocolo HTTPS para publicar mensajes y la API de mensajería directa para enviar mensajes a clientes conectados específicos. Todos los protocolos son compatibles con IPv4 e IPv6. En esta sección se describen las diferentes opciones de conexión para dispositivos y clientes.
Versiones del protocolo TLS
AWS IoT Core utiliza la versión 1.2 de
Los AWS IoT SDK de dispositivos admiten MQTT y MQTT a través de WSS y cumplen los requisitos de seguridad de las conexiones de los clientes. Recomendamos utilizar los AWS IoT SDK de dispositivos para conectar los clientes a AWS IoT.
Protocolos, asignaciones de puertos y autenticación
La forma en que un dispositivo o cliente se conecta al agente de mensajes se puede configurar con un tipo de autenticación. De forma predeterminada o cuando no se envía ninguna extensión SNI, el método de autenticación se basa en el protocolo de aplicación, el puerto y la extensión TLS de negociación del protocolo de capa de aplicación (ALPN) que utilizan los dispositivos. En la siguiente tabla se muestra la autenticación esperada en función del puerto y la ALPN.
| Protocolo | Operaciones admitidas | Autenticación | Puerto | Nombre del protocolo ALPN |
|---|---|---|---|---|
|
MQTT sobre WebSocket |
Publicar, suscribirse | Signature Version 4 | 443 |
N/A |
|
MQTT terminado WebSocket |
Publicar, suscribirse | Autenticación personalizada | 443 |
N/A |
|
MQTT |
Publicar, suscribirse |
X.509 certificado de cliente |
443† |
|
| MQTT | Publicar, suscribirse | X.509 certificado de cliente | 8883 | N/A |
|
MQTT |
Publicar, suscribirse |
Autenticación personalizada |
443† |
|
|
HTTPS |
Solo publicar |
Signature Version 4 |
443 |
N/A |
|
HTTPS |
Solo publicar |
X.509 certificado de cliente |
443† |
|
| HTTPS | Solo publicar | X.509 certificado de cliente | 8443 | N/A |
| HTTPS | Solo publicar | Autenticación personalizada | 443 | N/A |
Negociación de protocolo de capa de aplicación (ALPN)
† Al usar las configuraciones de punto final predeterminadas, los clientes que se conecten al puerto 443 con la autenticación mediante certificado de X.509 cliente deben implementar la extensión TLS de negociación de protocolos de nivel de ClientHello
En el puerto 443, el IoT:Data-ATS punto final admite el protocolo HTTP ALPN x-amzn-http-ca, pero el punto final no. IoT:Jobs
En el puerto 8443 HTTPS y el puerto 443 MQTT con ALPN x-amzn-mqtt-ca, no se puede utilizar la autenticación personalizada.
Los clientes se conectan a los puntos finales de sus dispositivos. Cuenta de AWS Consulte AWS IoT dispositivos, datos y puntos finales de servicio para obtener información sobre cómo encontrar los puntos de conexión de los dispositivos de su cuenta.
nota
AWS Los SDK no requieren la URL completa. Solo requieren el nombre de host del punto final, como el pubsub.py ejemplo del SDK de AWS IoT dispositivo para Python on. GitHub
|
Protocolo |
Punto de enlace o URL |
|---|---|
|
MQTT |
|
|
MQTT a través de WSS |
|
|
HTTPS |
|
Elección de un protocolo de aplicación para la comunicación entre dispositivos
Para la mayoría de las comunicaciones entre dispositivos de IoT a través de los terminales del dispositivo, es recomendable utilizar los protocolos Secure MQTT o MQTT over WebSocket Secure (WSS); sin embargo, los terminales del dispositivo también admiten HTTPS.
En la tabla siguiente se compara el AWS IoT Core uso de los dos protocolos de alto nivel (MQTT y HTTPS) para la comunicación entre dispositivos.
|
Característica |
||
|---|---|---|
|
Publish/Subscribe soporte |
Publicar y suscribirse |
Solo publicar |
|
Soporte para SDK |
AWS Los SDK de los dispositivos admiten los protocolos MQTT y WSS |
No compatible con el SDK, pero es posible usar métodos de lenguajes específicos para realizar solicitudes HTTPS |
|
Soporte para calidad del servicio |
Se admite la calidad del servicio al pasar un parámetro de cadena de consulta ?qos=qos donde el valor puede ser 0 o 1. Puede agregar esta cadena de consulta para publicar un mensaje con el valor de calidad del servicio que desee. |
|
| ¿Se pueden perder los mensajes recibidos mientras el dispositivo estaba sin conexión? | Sí | No |
|
Soporte de campo de |
Sí |
No |
|
Detección de desconexión de dispositivos |
Sí |
No |
|
Comunicaciones seguras |
Sí Consulte Protocolos, asignaciones de puertos y autenticación |
Sí Consulte Protocolos, asignaciones de puertos y autenticación |
|
Definiciones de temas |
Definido por la aplicación |
Definido por la aplicación |
|
Formato de datos de mensajes |
Definido por la aplicación |
Definido por la aplicación |
| Sobrecarga de protocolo | Más baja | Más alta |
| Consumo eléctrico | Más bajo | Más alto |
Elección de un tipo de autenticación para la comunicación entre dispositivos
Puede configurar el tipo de autenticación para su punto de conexión de IoT mediante puntos de conexión configurables. Como alternativa, utilice la configuración predeterminada y determine cómo se autentican sus dispositivos con una combinación de protocolo de aplicación, puerto y extensión TLS de ALPN. El tipo de autenticación que elija determina cómo se autenticarán sus dispositivos cuando se conecten a ellos. AWS IoT Core Hay cinco tipos de autenticación:
X.509 certificado
Autentica los dispositivos mediante certificados de X.509 cliente, que AWS IoT Core validan la autenticación del dispositivo. Este tipo de autenticación es compatible con los protocolos Secure MQTT (MQTT a través de TLS) y HTTPS.
X.509 certificado con autorizador personalizado
Autentique los dispositivos con certificados de X.509 cliente y realice acciones de autenticación adicionales con un autorizador personalizado, que recibirá la información del certificado del X.509 cliente. Este tipo de autenticación es compatible con los protocolos Secure MQTT (MQTT a través de TLS) y HTTPS. Este tipo de autenticación solo es posible mediante terminales configurables con autenticación personalizada. X.509 No hay ninguna opción ALPN.
AWS Signature, versión 4 (SIGv4)
Autentique los dispositivos mediante Cognito o su servicio de backend, que admiten la federación social y empresarial. Este tipo de autenticación funciona con los protocolos MQTT over WebSocket Secure (WSS) y HTTPS.
Autorizador personalizado
Autentique los dispositivos configurando una función de Lambda para procesar la información de autenticación personalizada enviada a AWS IoT Core. Este tipo de autenticación funciona con los protocolos Secure MQTT (MQTT sobre TLS), HTTPS y MQTT over WebSocket Secure (WSS).
Predeterminado
Autentique los dispositivos basándose en la extensión de negociación del protocolo de capa de and/or aplicación del puerto (ALPN) que utilizan los dispositivos. No se admiten algunas opciones de autenticación adicionales. Para obtener más información, consulte Protocolos, asignaciones de puertos y autenticación.
La siguiente tabla muestra todas las combinaciones compatibles de tipos de autenticación y protocolos de aplicación.
| Tipo de autenticación | Secure MQTT (MQTT a través de TLS) | MQTT over WebSocket Secure (WSS) | HTTPS | Predeterminado |
|---|---|---|---|---|
| X.509 certificado | ✓ | ✓ | ||
| X.509 certificado con autorizador personalizado | ✓ | ✓ | ||
| AWS Signature, versión 4 (SIGv4) | ✓ | ✓ | ||
| Autorizador personalizado | ✓ | ✓ | ✓ | |
| Predeterminado | ✓ |
Límites de duración de la conexión
No se garantiza que las conexiones HTTPS duren más del tiempo necesario para recibir las solicitudes y responder.
La duración de la conexión MQTT depende de la característica de autenticación que utilice. La siguiente tabla muestra la duración máxima de la conexión en condiciones ideales para cada característica.
|
Característica |
Duración máxima* |
|---|---|
|
X.509 certificado de cliente |
De 1 a 2 semanas |
|
Autenticación personalizada |
De 1 a 2 semanas |
|
Signature Version 4 |
Hasta 24 horas |
* No garantizado
Con X.509 los certificados y la autenticación personalizada, la duración de la conexión no tiene un límite estricto, pero puede ser tan corta como unos minutos. Las interrupciones en la conexión pueden producirse por diversos motivos. A continuación, se presentan algunos de los casos más comunes.
-
Wi-Fi interrupciones de disponibilidad
-
Interrupciones de conexión del proveedor de servicios de Internet (ISP)
-
Parches de servicio
-
Implementaciones de servicios
-
Escalado automático de servicios
-
Host de servicio no disponible
-
Problemas y actualizaciones del equilibrador de carga
-
Client-side errores
Los dispositivos deben implementar estrategias para detectar las desconexiones y volver a conectarse. Para obtener información sobre los eventos de desconexión y saber cómo gestionarlos, consulteConnect/Disconnect eventos en Eventos del ciclo de vida.