lunes, 16 de octubre de 2017

Protocolos para usar con IOT



Protocolos para usar en IOT


Cloud IoT Core admite dos protocolos para la conexión y comunicación de dispositivos: MQTT y HTTP. Los dispositivos se comunican con Cloud IoT Core a través de un "puente", ya sea el puente MQTT o el puente HTTP. Cuando crea un registro de dispositivos, selecciona protocolos para habilitar: MQTT, HTTP o ambos.

MQTT es un protocolo estándar de publicación / suscripción que se utiliza con frecuencia y es compatible con dispositivos integrados, y también es común en las interacciones de máquina a máquina.

HTTP es un protocolo "sin conexión": con el puente HTTP, los dispositivos no mantienen una conexión con Cloud IoT Core. En cambio, envían solicitudes y reciben respuestas. Cloud IoT Core solo admite HTTP 1.1 (no 2.0).

La siguiente tabla compara cómo funcionan los dos protocolos en Cloud IoT Core:

MQTT bridgeHTTP bridge
La conexión es mantenidaSin conexión (request/response)
Conexión TCP Full-duplexConexión TCP Half-duplex
JWT se manda en el campo de la contraseña del mesajeJWT se manda en el encabezado de la solicitud HTTP
Los eventos de telemetria se manda al Cloud Pub/Sup
Se conoce estado de la conexión del dispositivoNo se puede reportar el estado de la conexión
Las conexiones se propagan mediante suscripciónLas configuraciones se tienen que solicitar explícitamente.
La configuración es siempre recibida por los dispositivos.Los dispositvos pueden indicar que solo se deben recibir las configuraciones mas nuevas.
Las configuraciones reconocen (ACKed) al usar QoS1No hay ACK
Se mantiene el hearbeatNo hay datos de heartbeat.

También es posible que desee considerar las siguientes características generales de cada protocolo:

MQTT
  • Usa menor ancho de banda
  • Baja latencia
  • Mayor rendimiento/output
  • Soporta RAW data en binario
HTTP
  • Ligero y muy usado más fácil para comenzar
  • Menos problemas con los cortafuegos
  • Los datos en binario hay que codificarlos en base64, (más CPU)


Ambos puentes utilizan autenticación de dispositivo de clave pública (asimétrica) y tokens de Web JSON (JWT). Para más detalles, consulte la sección de seguridad del dispositivo.


Consejo: Si no está seguro de cuál es el mejor protocolo para sus casos de uso, comience con HTTP para familiarizarse con Cloud IoT Core y, a continuación, cambie a MQTT si es necesario.