Olá, amigos do Habrahabr! 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.

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

Notas sobre o diagrama:
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.
Nem todos os protocolos estão mostrados.
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.
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 (overview das tecnologias sem fio de IoT).
Camada de rede
Na camada de rede (Networking), a longo prazo, o protocolo dominante será . É 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 , que opera sobre UDP. Veja o artigo sobre a comparação .
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 (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. e um artigo .
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 .
Quase todas as plataformas IoT suportam tanto HTTP quanto MQTT.
No entanto, existem outros protocolos que vale a pena considerar.
Protocolos
— (Message Queuing Telemetry Transport). Utiliza TCP/IP. Para o modelo 'publicador-assinante', é necessário um broker de mensagens.
— (Advanced Message Queuing Protocol). Utiliza TCP/IP. Modelos 'publicador-assinante' e 'ponto-a-ponto'.
— (Constrained Application Protocol). Utiliza UDP. Projetado especificamente para IoT, usa o modelo de requisição-resposta como no HTTP. .
— (Data Distribution Service)
Nesta 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

Suporte a protocolos por plataformas
— MQTT, AMQP, HTTP e HTTPS
— MQTT, HTTPS, MQTT sobre websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— 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 .
Leia mais:
Fonte: habr.com
