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

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 .
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).
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.

Notas sobre el diagrama:
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.
No se muestran todos los protocolos.
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.
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 (overview of IoT wireless technologies).
Nivel de red
A nivel de red (Networking), el protocolo dominante a largo plazo será . 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 , que funciona sobre UDP. Véase el artículo sobre la comparación .
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 (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. y el artículo .
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 .
Casi todas las plataformas IoT soportan tanto HTTP como MQTT.
Sin embargo, también hay otros protocolos que vale la pena considerar.
Protocolos
— (Message Queuing Telemetry Transport). Utiliza TCP/IP. Para el modelo de «publicador-suscriptor» se requiere un corredor de mensajes.
— (Advanced Message Queuing Protocol). Utiliza TCP/IP. Modelos de «publicador-suscriptor» y «punto a punto».
— (Constrained Application Protocol). Utiliza UDP. Diseñado específicamente para IoT, utiliza un modelo de solicitud-respuesta como en HTTP. .
— (Data Distribution Service)
En este 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

Soporte de protocolos por plataformas
— MQTT, AMQP, HTTP y HTTPS
— MQTT, HTTPS, MQTT sobre websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— 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 .
Leer más:
Fuente: habr.com
