Protocolos de comunicación de dispositivos - AWS IoT Core

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 Coreadmite dispositivos y clientes que utilizan el MQTT y el MQTT a través de WebSocket Protocolos seguros (WSS) para publicar y suscribirse a mensajes, dispositivos y clientes que utilizan el protocolo HTTPS para publicar mensajes. Todos los protocolos son compatibles con IPv4 e IPv6. En esta sección se describen las distintas opciones de conexión para dispositivos y clientes.

TLS v1.2

AWS IoT CoreutilizaTLS versión 1.2para cifrar todas las comunicaciones. Los clientes también deben enviar elExtensión TLS de la indicación de nombre de servidor (SNI). Se rechazan los intentos de conexión que no incluyen el SNI. Para obtener más información, consulte Seguridad de transporte en AWS IoT.

LaSDK de dispositivos de AWS IoTadmite MQTT y MQTT a través de WSS y admite los requisitos de seguridad de las conexiones de clientes. Le recomendamos que utilice laSDK de dispositivos de AWS IoTpara conectar clientes aAWS IoT.

Protocolos, mapeos de puertos y autenticación

La forma en que un dispositivo o cliente se conecta al agente de mensajes mediante un endpoint de dispositivo depende del protocolo que utilice. En la siguiente tabla se enumeran los protocolos que laAWS IoTcompatibilidad con endpoints de dispositivos y los métodos y puertos de autenticación que utilizan.

Protocolos, autenticación y mapeos de puerto
Protocolo Operaciones admitidas Autenticación Puerto Nombre del protocolo ALPN

MQTT a través de WebSocket

Publique, suscriba Signature Version 4 443

N/A

MQTT a través de WebSocket

Publique, suscriba Autenticación personalizada 443

N/A

MQTT

Publique, suscriba

Certificado de cliente X.509

443

x-amzn-mqtt-ca

MQTT Publique, suscriba Certificado de cliente X.509 8883 N/A

MQTT

Publique, suscriba

Autenticación personalizada

443

mqtt

HTTPS

Publicar solo

Signature Version 4

443

N/A

HTTPS

Publicar solo

Certificado de cliente X.509

443

x-amzn-http-ca

HTTPS Publicar solo Certificado de cliente X.509 8443 N/A
HTTPS Publicar solo Autenticación personalizada 443 N/A
Negociación de protocolo de capa de aplicación (ALPN)

Los clientes que se conectan en el puerto 443 con autenticación de certificado de cliente X.509 deben implementar elNegociación de protocolo de capa de aplicación (ALPN)TLS y utilice laNombre del protocolo ALPNenumeradas en el ALPN ProtocolNameList enviado por el cliente como parte de laClientHellomessage.

En el puerto 443, elIoT: data-ATSPunto de enlace es compatible con ALPN x-amzn-http-ca HTTP, pero elIoT: empleosendpoint no lo hace.

En el puerto 8443 HTTPS y el puerto 443 MQTT con ALPN x-amzn-mqtt-ca,autenticación personalizadaLas no se pueden usar.

Los clientes se conectan a susCuenta de AWSendpoints del dispositivo. ConsulteAWS IoTdatos de dispositivos y puntos finales de serviciopara obtener información acerca de cómo buscar los puntos de enlace de dispositivos de su cuenta.

nota

AWSLos SDK no requieren la URL completa. Solo requieren el nombre de host del endpoint, como elpubsub.pyEjemplo de paraAWS IoTDevice SDK for Python on GitHub. Al pasar toda la URL tal y como se indica en la tabla siguiente, se puede generar un error, como un nombre de host no válido.

Conexión a AWS IoT Core

Protocolo

Endpoint o URL

MQTT

iot-endpoint

MQTT sobre WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

Elección de un protocolo para la comunicación de su dispositivo

Para la mayoría de las comunicaciones de dispositivos IoT a través de los endpoints del dispositivo, querrá utilizar MQTT o MQTT a través de protocolos WSS; sin embargo, los endpoints del dispositivo también admiten HTTPS. En la tabla siguiente se comparan cómoAWS IoT Coreutiliza los dos protocolos para la comunicación del dispositivo.

AWS IoTprotocolos de dispositivo en paralelo

Característica

MQTT

HTTPS

Soporte de publicación/suscripción

Publicar y suscribirse

Publicar solo

Compatibilidad con SDK

AWSSDKs de dispositivosadmite protocolos MQTT y WSS

Sin compatibilidad con SDK, pero puede utilizar métodos específicos del idioma para realizar solicitudes HTTPS

Soporte de calidad de servicio de

Niveles de QoS de MQTT 0 y 1

QoS se admite mediante la transferencia de un parámetro de cadena de consulta?qos=qosdonde el valor puede ser 0 o 1. Puede agregar esta cadena de consulta para publicar un mensaje con el valor QoS que desee.
Se pueden omitir mensajes recibidos mientras el dispositivo estaba sin conexión No

clientIdsoporte de campo

No

Detección de desconexión de dispositivos

No

Comunicaciones seguras

Sí. Consulte Protocolos, mapeos de puertos y autenticación.

Sí. Consulte Protocolos, mapeos de puertos y autenticación.

Definiciones de temas

Aplicación definida

Aplicación definida

Formato de datos de los mensajes

Aplicación definida

Aplicación definida

Sobrecarga del protocolo Bajar Más alto
Consumo de energía Bajar Más alto

Límites de duración de conexión

No se garantiza que las conexiones HTTPS duren más que el tiempo que tarda en recibir y responder a las solicitudes.

La duración de la conexión MQTT depende de la función de autenticación que utilice. En la tabla siguiente, se muestra la duración máxima de la conexión en condiciones ideales para cada entidad.

Duración de la conexión MQTT por función de autenticación

Característica

Duración máxima*

Certificado de cliente X.509

1 a 2 semanas

Autenticación personalizada

1 a 2 semanas

Signature Version 4

Hasta 24 horas

*No está garantizada

Con los certificados X.509 y la autenticación personalizada, la duración de la conexión no tiene límite, pero puede durar tan solo unos minutos. Las interrupciones de la conexión pueden ocurrir por diversos motivos. En la siguiente lista se incluyen algunos de los motivos más comunes.

  • Interrupciones de disponibilidad Wi-Fi

  • Interrupciones de conexión de 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 balanceador de carga

  • Errores del cliente

Los dispositivos deben implementar estrategias para detectar desconexiones y volver a conectarse. Para obtener información acerca de eventos de desconexión y orientación sobre cómo gestionarlos, consulteEventos de conexión/desconexiónenEventos del ciclo de vida.