Protocolos de comunicação para ambientes de Internet das coisas
Este artigo apresenta um estudo com foco nos protocolos utilizados na abordagem IoT – Internet das coisas. A necessidade de criação de novos protocolos surgiu como uma solução para a grande expansão de objetos IoT e
middlewares, que gerou diversos desafios de interoperabilidade e comunicação.
Giovanni Rotta e Mário Dantas, do Dep. de Informática e Estatística (INE), da UFSC – Universidade Federal de Santa Catarina
Andrea Charão, Dep. de Linguagens e Sistemas de Computação (DLSC), da UFSM – Universidade Federal de Santa Maria
Vivenciamos uma transformação na maneira de enxergar a computação. Nos últimos anos, o conceito de computação ubíqua ou pervasiva ganhou um grande impulso com a chegada da Internet das coisas, que estimulada pelo desenvolvimento de dispositivos embarcados cada vez mais potentes e pelas possibilidades trazidas pela comunicação wireless, vem ganhando cada vez mais espaço entre pesquisadores e indústria.
Nesse contexto, vamos analisar as diferentes formas de transmissão de dados no universo de IoT, assim como os seus padrões de comunicação e protocolos. Também vamos estabelecer uma comparação entre dois dos mais usados protocolos de comunicação na camada de aplicação.
Internet das coisas
A Internet das coisas é um paradigma tecnológico, que tem por finalidade conectar aparelhos eletrônicos utilizados no dia a dia por meio da Internet. A ideia básica é a presença pervasiva de uma variedade de objetos, como sensores, atuadores e smartphones, capazes de interagir uns com os outros e cooperar com objetos vizinhos a fim de atingir um objetivo em comum. Ou seja, um mundo onde a Internet estará em todos os lugares e objetos.
A IoT tem o potencial de mudar a maneira como vivemos, influenciando tanto o campo doméstico como o ambiente de trabalho. Na vida doméstica, a IoT pode ser aplicada nas casas automatizadas, assisted living, e-health e enhanced learning entre outros diversos usos. Já no mundo corporativo, os benefícios afetarão áreas de automação, manufatura, logística e transporte.
Protocolos IoT
O modelo utilizado como referência será o TCP/IP, usado para os protocolos na Internet. Pelo fato da Internet das coisas ter sido baseada à princípio na Internet, o TCP/IP consegue descrever com naturalidade as camadas utilizadas na mesma. O modelo é dividido em quatro camadas: rede, Internet, transporte e aplicação.
Rede
A Camada de rede é definida como física, ou seja, corresponde às tecnologias usadas para a troca de pacotes. No caso da IoT, a comunicação na camada de rede se baseia em comunicação sem fio. Diversos padrões foram especificados para esta camada, como a série IEEE 802.11, 802.15.
Internet
A tarefa da camada inter-redes é entregar pacotes onde eles são necessários. A ideia dos protocolos desta camada é endereçar, entregar e evitar congestionamentos.
Transporte
No modelo TCP/IP, a camada localizada acima da inter-redes é chamada de “camada de transporte”. Sua finalidade é permitir que as entidades partam dos hosts de origem ao de destino, mantendo uma conversação.
Aplicação
São protocolos de serviço específico de comunicação de dados em um nível processo a processo. O protocolo de aplicação mais utilizado para prover serviços web é o HTTP, porém ele possui muita complexidade computacional e tem um consumo de energia elevado para os dispositivos IoT.
Estudo sobre os protocolos IoT
Padrão IEEE 802.15.4
O grupo da IEEE 802.15 especifica uma variedade de WPANs – Wireless Personal Area Network, entre eles Bluetooth, UWB, BAN, etc. O padrão estudado aqui, o 802.15.4, representa o maior padrão para low data rate WPANs. Seu principal objetivo é prover uma base para que outros protocolos possam ser adicionados nas camadas superiores (transporte, Internet e aplicação). Atua na camada de rede no modelo TCP/IP, enquanto que as camadas físicas e enlace atuam no modelo OSI. Assim, a camada física é responsável pela frequência, consumo de energia e modulação. Já a de enlace define o formato do dado.
O IEEE 802.15 é adotado por diversos grupos que atuam no desenvolvimento de objetos e protocolos IoT, como Zigbee Alliance e Thread Group. Ele define protocolos e regras de interconexões para comunicação de dados entre dispositivos utilizando baixas taxa de transferência e consumo, além de pouca complexidade, por meio de radiofrequência de curto alcance.
Zigbee
O Zigbee é um conjunto de especificações desenvolvido pela Zigbee Alliance para utilização em residências inteligentes (smart home) e IoT, que define as camadas subsequentes às camadas estabelecidas pelo IEEE 802.15.4, oferecendo serviços de segurança, tolerância a erros e conexão de novos dispositivos. O Zigbee abrange as camadas referentes a Internet, transporte e aplicação do modelo TCP/IP.
Thread
Outro conjunto de especificação para smart home e IoT é o Thread. Ele define camadas utilizadas em cima do padrão IEEE 802.15.4, porém não fornece a camada de aplicação. Sempre utiliza de padrões de protocolos abertos para garantir integridade dos pacotes, utilizando os protocolos UDP e 6LoWPAN. Fornece serviço de segurança e tolerância a erros.
6LoWPAN
Protocolo de permissão para que pacotes IPv6 sejam transmitidos em redes de baixo consumo de energia. Seu conceito inicial era permitir que os protocolos de Internet se estendessem para todos os tipos de dispositivos. Segue os padrões definidos no RFC 4944 e RFC 6282, que especificam transmissões IPv6 e sua compressão para camadas de rede IEEE 802.15.4. Sua principal tarefa é comprimir o cabeçalho TCP/IP e a mensagem enviada, diminuindo o custo de transmissão. Cabeçalhos TCP/IP possuem 128 bytes, enquanto o IPv6 apenas 40 bytes. Outras tarefas importantes do 6LoWPAN é a fragmentação e o reagrupamento de pacotes, assim como a sua distribuição dentro da rede.
Camada de aplicação
Aqui vamos analisar dois protocolos emergentes no mundo da Internet das coisas. Ambos apresentam características de baixo consumo, por possuírem mensagens pequenas, gerenciador de mensagens e pequeno overhead. Essas características são ideais para dispositivos embarcados.
● MQTT – Message Queuing Telemetry Transport. Inventado pela IBM para comunicação entre satélites e equipamentos de extração de óleo. Possui confiabilidade e baixo consumo como requisitos de sua implementação, o que o torna grande candidato a ser aplicado nas redes IoT. Utiliza o modelo “publish/subscribe” e necessita de um broker MQTT para gerenciar e rotacionar as mensagens dentro da rede. É descrito como um protocolo de comunicação many-to-many. Uma das grandes vantagens do MQTT ´e a eficiência do modelo ‘pub/sub’, que também escala muito bem. Por utilizar o protocolo TCP, o MQTT já vem munido de segurança na rede. A dependência de um broker e a utilização do TCP podem ser um empecilho, pois ambos necessitam de um certo poder computacional para funcionar, impossibilitando o uso MQTT em dispositivos mais simples. Por necessitar de um broaker, o protocolo é uma boa opção para a comunicação remota/cloud, já que o servidor cloud atua como o broaker entre o dispositivo IoT e outros serviços.
● CoAP – Constrained Application Protocol. Protocolo que utiliza o modelo ‘cliente/servidor’, disponibilizando interação ‘request/response’ um para um, podendo também suportar multicast. Diferente do MQTT, o CoAP surgiu para suprir a necessidade em protocolos IoT e foi desenvolvido para interoperar com HTTP e com arquiteturas RESTful, por meio de simples proxies, tornando-se compatível com a Internet. Por utilizar o protocolo UDP, o CoAP apresenta menor consumo computacional e de energia. Seu uso permite um menor tempo de resposta quando acionado, pois mantém uma conexão ativa entre nodos. É mais indicado para o envio de comandos para nodos locais, por se tratar de uma arquitetura semelhante a HTTP. Também é mais utilizado em dispositivos com menos recursos computacionais.
Conclusões
Com o surgimento e desenvolvimento da Internet das coisas, foi criado, também o desafio de desenvolver novas formas de comunicação que se adaptam ao conceito, utilizando baixo consumo de energia e poder computacional.
Apesar dos esforços para padronizar e unificar os protocolos de comunicação, com o desenvolvimento de objetos de IoT realizado por diversos fabricantes, utilizando diferentes protocolos nas camadas mais superiores, como de aplicação, a interoperabilidade se mostrou um dos maiores desafios para essa nova realidade.
Concluímos que, por conta da grande diversidade de protocolos, cada qual com suas características e peculiaridades, é necessário a investigação dos diferentes protocolos disponíveis, para assim, ter uma base de conhecimento para a melhor escolha em cada projeto.