Revisión de protocolos de red y protocolos de mensajería para IoT

¡Hola, habitantes de Habr! El primer curso en línea de IoT en Rusia comienza en OTUS en octubre. Actualmente estamos aceptando inscripciones para el curso, por lo que seguimos compartiendo materiales útiles con ustedes.

Revisión de protocolos de red y protocolos de mensajería para IoT

El Internet de las cosas (IoT, Internet of Things) se construirá sobre la infraestructura de red existente, las tecnologías y los protocolos que se utilizan actualmente en hogares/oficinas e Internet, y ofrecerá mucho más.

El objetivo de esta guía es proporcionar un breve resumen de los protocolos de red y aplicación para IoT.

Nota. Debe tener conocimiento de las bases de las tecnologías de red.

redes IoT

El IoT funcionará en redes TCP/IP existentes.

TCP/IP utiliza un modelo de cuatro capas con protocolos específicos en cada capa. Ver entendiendo el modelo de cuatro capas de TCP/IP (entendiendo el modelo de cuatro capas de TCP/IP).

En el diagrama a continuación se muestra una comparación de los protocolos que se usan actualmente y aquellos que probablemente se utilizarán para IoT.

Revisión de protocolos de red y protocolos de mensajería para IoT

Notas sobre el diagrama:

  1. El tamaño de la fuente refleja el grado de popularidad del protocolo. Por ejemplo, a la izquierda IPv4 es más grande, ya que es mucho más popular en Internet hoy en día. Sin embargo, a la derecha es más pequeño porque se espera que IPv6 sea más popular en IoT.

  2. No se muestran todos los protocolos.

  3. La mayor cantidad de cambios se espera en las capas de enlace (niveles 1 y 2) y en la capa de aplicación (nivel 4).

  4. Es probable que las capas de red y transporte permanezcan sin cambios.

Protocolos de capa de enlace

En la capa de enlace (Data Link), necesita conectar dispositivos entre sí. Pueden estar cerca, como en redes locales, o a gran distancia entre sí: en redes metropolitanas y redes globales.

Actualmente, en este nivel, se utilizan Ethernet y Wi-Fi en redes domésticas y de oficina (LAN), y 3G/4G en redes móviles (WAN). Sin embargo, muchos dispositivos IoT son de bajo consumo, como sensores, y funcionan únicamente con baterías. En estos casos, Ethernet no es adecuado, pero se pueden utilizar Wi-Fi de bajo consumo y Bluetooth de bajo consumo.

Si bien aún se utilizarán tecnologías inalámbricas existentes (Wi-Fi, Bluetooth, 3G/4G) para conectar estos dispositivos, también vale la pena prestar atención a nuevas tecnologías diseñadas específicamente para aplicaciones IoT, cuya popularidad probablemente seguirá creciendo.

Entre ellas están:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Se describen con más detalle en el artículo Una visión general de las tecnologías inalámbricas IoT (overview of IoT wireless technologies).

Nivel de red

A nivel de red (Networking), el protocolo dominante a largo plazo será IPv6. Es poco probable que se utilice IPv4, aunque podría desempeñar un papel en las etapas iniciales. La mayoría de los dispositivos IoT para el hogar, como las bombillas inteligentes, actualmente utilizan IPv4.

Capa de transporte 

A nivel de transporte (Transport), TCP domina en internet y la web. Se utiliza tanto en HTTP como en muchos otros protocolos populares de internet (SMTP, POP3, IMAP4, etc.).

MQTT, que espero se convierta en uno de los principales protocolos de nivel de aplicación para el intercambio de mensajes, actualmente utiliza TCP.

Sin embargo, en el futuro, debido a su menor sobrecarga, espero que UDP sea más popular para IoT. Es probable que se difunda más MQTT-SN, que funciona sobre UDP. Véase el artículo sobre la comparación TCP vs UDP .

Nivel de aplicación y protocolos de intercambio de mensajes

Características importantes para los protocolos IoT:

  • Velocidad: cantidad de datos transmitidos por segundo.

  • Latencia: tiempo requerido para transmitir un mensaje.

  • Consumo de energía.

  • Seguridad.

  • Disponibilidad de software.

Actualmente, en este nivel, se utilizan activamente dos protocolos principales: HTTP y MQTT.

HTTP es probablemente el protocolo más conocido de este nivel, que subyace a la web (WWW). Seguirá siendo importante para IoT, ya que se utiliza para REST API, el mecanismo principal de interacción entre aplicaciones y servicios web. Sin embargo, debido a su alta sobrecarga, es poco probable que HTTP se convierta en el protocolo principal de IoT, aunque seguirá utilizándose ampliamente en la web.

MQTT (Message Queuing Telemetry Transport) se ha convertido en el protocolo principal de intercambio de mensajes en IoT, gracias a su ligereza y facilidad de uso. Véase el artículo Introduction to MQTT for beginners (Introducción a MQTT para principiantes).

Comparación de HTTP y MQTT para IoT

MQTT se está convirtiendo rápidamente en el estándar de facto para aplicaciones IoT. Esto se debe a su ligereza y velocidad en comparación con HTTP y a que es un protocolo de 'uno a muchos', en lugar de 'uno a uno' (HTTP).

Muchas aplicaciones web modernas estarían encantadas de utilizar MQTT en lugar de HTTP, si hubiera estado disponible en el momento de su desarrollo.

Un buen ejemplo es el envío de información a múltiples clientes, por ejemplo, sobre la llegada y salida de trenes / autobuses / aviones. En este escenario, el protocolo de «uno a uno», como HTTP, tiene grandes sobrecostos y crea una gran carga en los servidores web. Escalar estos servidores web puede ser complicado. Con MQTT, los clientes se conectan a un corredor, que se puede agregar fácilmente para equilibrar la carga. Consulte este tutorial con vídeo. Replicar datos HTML a través de MQTT (Ejemplo de llegadas de vuelos) y el artículo MQTT vs HTTP para IoT.

Otros protocolos de mensajería

HTTP no fue diseñado para aplicaciones IoT, pero, como se mencionó, se seguirá utilizando ampliamente durante algún tiempo debido a su gran uso en API.

Casi todas las plataformas IoT soportan tanto HTTP como MQTT.

Sin embargo, también hay otros protocolos que vale la pena considerar.

Protocolos

  • MQTT — (Message Queuing Telemetry Transport). Utiliza TCP/IP. Para el modelo de «publicador-suscriptor» se requiere un corredor de mensajes.

  • AMQP — (Advanced Message Queuing Protocol). Utiliza TCP/IP. Modelos de «publicador-suscriptor» y «punto a punto».

  • COAP — (Constrained Application Protocol). Utiliza UDP. Diseñado específicamente para IoT, utiliza un modelo de solicitud-respuesta como en HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

En este el artículo se consideran los principales protocolos y sus aplicaciones. La conclusión de este artículo es que IoT utilizará un conjunto de protocolos, dependiendo de su aplicación prevista.

Sin embargo, si echamos la vista atrás, en los primeros años de la existencia de Internet, el protocolo HTTP, que eventualmente se convirtió en el dominante, fue solo uno de muchos protocolos.

Aunque HTTP no fue diseñado originalmente para la transmisión de archivos y correo electrónico, hoy en día se utiliza para ambas cosas.

Espero que en IoT suceda lo mismo con los protocolos de mensajería: la mayoría de los servicios utilizarán un protocolo dominante.

A continuación se presentan gráficos de Google Trends que muestran cómo ha cambiado la popularidad de MQTT, COAP y AMQP en los últimos años.

Resumen de Google Trends 

Revisión de protocolos de red y protocolos de mensajería para IoT

Soporte de protocolos por plataformas

  • Microsoft Azure — MQTT, AMQP, HTTP y HTTPS

  • AWS — MQTT, HTTPS, MQTT sobre websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Currículum

La mayor cantidad de cambios se espera en las capas de enlace (niveles 1 y 2) y en la capa de aplicación (nivel 4).

Es probable que las capas de red y transporte permanezcan sin cambios.

A nivel práctico, los componentes de IoT utilizarán protocolos de intercambio de mensajes. Aunque aún estamos en una etapa temprana de desarrollo de IoT, es bastante probable que surja uno o, tal vez, dos protocolos de intercambio de mensajes.

En los últimos años, MQTT se ha convertido en el más popular, y es en él en lo que me estoy enfocando actualmente en este sitio.

HTTP seguirá usándose, ya que está bien integrado en las plataformas IoT existentes.

Eso es todo. Te invitamos a registrarte para una clase demo gratuita sobre el tema «Chatbot para comandos rápidos del dispositivo».

Leer más:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster