Uma visão geral dos protocolos de rede e de comunicação para IoT

Olá, amigos do Habrahabr! O primeiro curso online de desenvolvimento IoT da Rússia começa no OTUS já em outubro. Neste momento, as inscrições para o curso estão abertas, e continuamos a compartilhar com você materiais úteis.

Uma visão geral dos protocolos de rede e de comunicação para IoT

A Internet das Coisas (IoT, Internet of Things) será construída sobre a infraestrutura de rede existente, tecnologias e protocolos atualmente usados em casas/escritórios e na Internet, e oferecerá muito mais.

O objetivo deste guia é fornecer um resumo dos protocolos de rede e de aplicação para IoT.

Nota. Você deve ter conhecimento dos fundamentos das tecnologias de rede.

redes IoT

A IoT operará em redes TCP/IP existentes.

O TCP/IP utiliza um modelo de quatro camadas com protocolos específicos em cada camada. Veja understanding the TCP/IP 4 layer model (entendendo o modelo de quatro camadas TCP/IP).

No diagrama abaixo, é mostrado um comparativo dos protocolos atualmente usados e aqueles que provavelmente serão utilizados para IoT.

Uma visão geral dos protocolos de rede e de comunicação para IoT

Notas sobre o diagrama:

  1. O tamanho da fonte reflete o grau de popularidade do protocolo. Por exemplo, à esquerda, o IPv4 é maior, pois é muito mais popular na Internet moderna. No entanto, à direita ele é menor, pois se espera que o IPv6 seja mais popular na IoT.

  2. Nem todos os protocolos estão mostrados.

  3. Mudanças significativas ocorrerão nas camadas de enlace (níveis 1 e 2) e aplicação (nível 4).

  4. As camadas de rede e transporte provavelmente permanecerão inalteradas.

Protocolos da camada de enlace

Na camada de enlace (Data Link), você precisa conectar dispositivos uns aos outros. Eles podem estar próximos, como em redes locais, ou muito distantes, em redes metropolitanas e globais.

Atualmente, neste nível, as redes domésticas e de escritório (LAN) usam Ethernet e Wi-Fi, enquanto nas redes móveis (WAN) utilizam 3G/4G. No entanto, muitos dispositivos IoT são de baixa potência, como sensores, que funcionam apenas com baterias. Nesses casos, Ethernet não é adequado, mas pode-se usar Wi-Fi de baixa potência e Bluetooth de baixa potência.

Embora as tecnologias sem fio existentes (Wi-Fi, Bluetooth, 3G/4G) ainda sejam utilizadas para conectar esses dispositivos, também vale a pena prestar atenção a novas tecnologias especificamente desenvolvidas para aplicações IoT, cuja popularidade provavelmente crescerá.

Entre elas:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Mais detalhes são descritos no artigo Uma visão geral das tecnologias sem fio de IoT (overview das tecnologias sem fio de IoT).

Camada de rede

Na camada de rede (Networking), a longo prazo, o protocolo dominante será IPv6. É improvável que o IPv4 seja utilizado, mas ele pode desempenhar um papel inicial. A maioria dos dispositivos IoT para casas, como lâmpadas inteligentes, atualmente utiliza IPv4.

Camada de transporte 

Na camada de transporte (Transport), o TCP domina a Internet e a web. É usado tanto no HTTP quanto em muitos outros protocolos populares da Internet (SMTP, POP3, IMAP4, etc.).

O MQTT, que espero que se torne um dos principais protocolos de aplicação para troca de mensagens, atualmente utiliza TCP.

No entanto, no futuro, devido a menores sobrecargas, eu espero que o UDP se torne mais popular para IoT. É provável que tenha uma maior difusão MQTT-SN, que opera sobre UDP. Veja o artigo sobre a comparação TCP vs UDP .

Camada de aplicação e protocolos de troca de mensagens

Características importantes para os protocolos de IoT:

  • Velocidade — quantidade de dados transmitidos por segundo.

  • Latência — o tempo necessário para enviar uma mensagem.

  • Consumo de energia.

  • Segurança.

  • Disponibilidade de ferramentas de software.

Atualmente, nessa camada, dois protocolos principais estão sendo amplamente utilizados: HTTP e MQTT.

O HTTP é provavelmente o protocolo mais conhecido dessa camada, que fundamenta a web (WWW). Ele ainda será muito relevante para IoT, pois é usado para REST API — o principal mecanismo de interação entre aplicações e serviços web. No entanto, devido à alta sobrecarga, é improvável que o HTTP se torne o protocolo principal de IoT, embora ainda seja amplamente utilizado na Internet.

O MQTT (Message Queuing Telemetry Transport) se tornou o principal protocolo de troca de mensagens em IoT, graças à sua leveza e simplicidade de uso. Veja o artigo Introdução ao MQTT para iniciantes (Introduction to MQTT for beginners).

Comparação entre HTTP e MQTT para IoT

O MQTT rapidamente se torna o padrão de fato para aplicações IoT. Isso se deve à sua leveza e rapidez em comparação ao HTTP e ao fato de ser um protocolo de 'um para muitos', em vez de 'um para um' (HTTP).

Muitos aplicativos web modernos teriam o prazer de usar MQTT em vez de HTTP se ele estivesse disponível no momento de seu desenvolvimento.

Um bom exemplo é enviar informações para vários clientes, como a chegada e partida de trens / ônibus / aviões. Nesse cenário, o protocolo 'um-para-um', como o HTTP, tem grandes sobrecargas e cria uma carga significativa em servidores web. A escalabilidade desses servidores web pode ser dificultada. Com o MQTT, os clientes se conectam a um broker, que pode ser facilmente adicionado para balanceamento de carga. Veja este tutorial com vídeo sobre o assunto. Republique dados HTML via MQTT (Exemplo de Chegada de Voos) e um artigo MQTT vs HTTP para IoT.

Outros protocolos de troca de mensagens

O HTTP não foi projetado para aplicações IoT, mas, como já mencionado, será amplamente utilizado por algum tempo devido ao seu uso generalizado em API.

Quase todas as plataformas IoT suportam tanto HTTP quanto MQTT.

No entanto, existem outros protocolos que vale a pena considerar.

Protocolos

  • MQTT — (Message Queuing Telemetry Transport). Utiliza TCP/IP. Para o modelo 'publicador-assinante', é necessário um broker de mensagens.

  • AMQP — (Advanced Message Queuing Protocol). Utiliza TCP/IP. Modelos 'publicador-assinante' e 'ponto-a-ponto'.

  • COAP — (Constrained Application Protocol). Utiliza UDP. Projetado especificamente para IoT, usa o modelo de requisição-resposta como no HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

Nesta artigo são considerados os principais protocolos e suas aplicações. A conclusão deste artigo é que o IoT usará um conjunto de protocolos, dependendo de suas aplicações pretendidas.

No entanto, ao olhar para o passado, nos primeiros anos da existência da Internet, o protocolo HTTP, que posteriormente se tornou dominante, era apenas um entre muitos protocolos.

Embora o HTTP não tenha sido originalmente concebido para a transferência de arquivos e emails, hoje é utilizado tanto para um quanto para outro.

Espero que, no IoT, ocorra o mesmo com os protocolos de troca de mensagens: a maioria dos serviços usará um protocolo predominante.

Abaixo estão gráficos do Google Trends mostrando como a popularidade do MQTT, COAP e AMQP mudou nos últimos anos.

Visão geral do Google Trends 

Uma visão geral dos protocolos de rede e de comunicação para IoT

Suporte a protocolos por plataformas

  • Microsoft Azure — MQTT, AMQP, HTTP e HTTPS

  • AWS — MQTT, HTTPS, MQTT sobre websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Resumo

Mudanças significativas ocorrerão nas camadas de enlace (níveis 1 e 2) e aplicação (nível 4).

As camadas de rede e transporte provavelmente permanecerão inalteradas.

No nível aplicativo, os componentes IoT utilizarão protocolos de troca de mensagens. Embora ainda estejamos nas fases iniciais de desenvolvimento do IoT, é bastante provável que um ou talvez dois protocolos de troca de mensagens se destaquem.

Nos últimos anos, o MQTT se tornou o mais popular, e é nesse protocolo que estou me concentrando neste site.

O HTTP ainda será utilizado, pois já está bem integrado nas plataformas IoT existentes.

Isso é tudo. Convidamos você a se inscrever em uma aula demonstrativa gratuita sobre «Chatbot para comandos rápidos ao dispositivo».

Leia mais:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster