ZigBee usa agora 6loWPAN! Sua próxima lâmpada terá IPv6?
A ZigBee Alliance é um consórcio de empresas que especifica padrões usados amplamente em uma gama muito variada de aplicações de automação e redes de sensores. Até pouco tempo, definiam um padrão proprietário, que apenas membros da ZigBee Alliance podiam usar. Recentemente anunciaram que adotarão como alternativa um padrão aberto, baseado em IPv6 e 6loWPAN, definidos pela IETF, o que parece ser uma excelente notícia. Neste artigo, procurarei explicar o que é o 6loWPAN, e qual a mágica para conseguir rodar o IPv6 em redes com MTU baixo, e onde se usam processadores com sérias limitações de processamento e memória.
A importância das WPANs ou Redes sem fio pessoais
A importância das WPANs (Wireless Personal Area Networks) vem aumentando nos últimos anos. Elas têm sido usadas em diversos campos, como automação residencial, industrial e agrícola, embarcadas em veículos, para o monitoramento das condições de saúde à distância, entre outros. Algumas aplicações não eram possíveis antes do seu advento, outras tornaram-se mais simples com seu uso. Esse tipo de redes é muito importante para o advento da chamada Internet das Coisas.
Mark Weiser, em 1991, apresentou um conceito que tem influenciado, de forma marcante, o desenvolvimento da ciência da computação. Os computadores não deveriam ser equipamentos complicados e difíceis de usar, exigindo um difícil aprendizado e permanecendo à parte do mundo real. Eles deveriam, sim, integrar-se de forma natural ao nosso ambiente, tornando-se invisíveis, e fazendo mais fáceis as tarefas do dia a dia. Esse conceito é chamado de computação ubíqua. Para a computação ubíqua tornar-se possível, são necesssárias duas outras tecnologias: a computação móvel, que possibilita que o computador mova-se fisicamente conosco, e a computação pervasiva, que significa que há computadores integrados ao ambiente de forma invisível.
As WPANs têm uma natureza pervasiva, possibilitando a integração de computadores a diversos objetos e equipamentos, e ao ambiente, de forma geral. Por utilizarem comunicação sem fio, sua integração com dispositivos móveis é também natural. Um dos padrões mais importante para as WPANs na atualidade é o IEEE 802.15.4 e será brevemente introduzido neste artigo, em conjunto com o ZigBee, que especifica uma possível camada de rede para o mesmo. A Internet, por sua vez, também possui uma natureza pervasiva, estando presente em todo o mundo e em praticamente todos os tipos de ambientes. Dentre os padrões utilizados na Internet, o IPv6 merece destaque: o IP é um dos alicerces básicos da rede e sua nova versão está sendo implantada atualmente, com o objetivo de possibilitar a continuidade do crescimento da Internet. A integração dessas tecnologias: as redes IEEE 802.15.4 e Internet IPv6 é necessária ou desejada em diversas aplicações e colabora no sentido de tornar real o conceito de uma computação ubíqua e da própria Internet das Coisas.
O padrão IEEE 802.15.4
O IEEE 802.15.4 é um padrão para WPANs de baixa velocidade. Elas são caracterizadas por servir a dispositivos de baixo custo, comunicando-se a distâncias curtas, geralmente alimentados por baterias e com severas restrições quanto ao processamento e memória disponíveis. A complexidade do IEEE 802.15.4 é considerada baixa se comparada a de outros padrões semelhantes, como o Bluetooth. Ele utiliza três faixas de freqüência possíveis: 868Mhz, 915Mhz e 2.4Ghz, adequando-se às normas da maioria dos países. O alcance do rádio geralmente fica entre 10 e 100m, mas pode haver dispositivos com alcances maiores. É utilizado o CSMA-CA (Carrier Sense Multiple Access with Colision Avoidance) ou o CSMA-CA com uso de slots, para o acesso ao meio físico.
O IEEE 802.15.4 define apenas as camadas 1 e 2 do modelo de referência ISO/OSI, conforme ilustrado na figura 1. A figura mostra ainda as topologias possíveis e os tipos de dispositivos normalmente presentes numa rede. Há dois tipos de dispositivos: os de Capacidade Plena ou FFD (Full Function Devices) e os de Capacidade Limitada ou RFD (Reduced Function Devices). Os primeiros geralmente são alimentados via rede elétrica e tem maior capacidade de processamento. Eles executam uma implementação completa dos protocolos de rede, podendo assumir a função de Coordenador da rede, e tendo a capacidade de realizar roteamento. Os dispositivos de Capacidade Limitada geralmente são alimentados por pilhas ou baterias, têm baixa capacidade de processamento e memória, não sendo capazes de realizar roteamento. Um RRD pode comunicar-se com apenas um FFD. Geralmente os RFDs são equipados com os sensores e atuadores utilizados na rede, mas os FFDs também podem assumir essa função.
IEEE 802.15.4 é um padrão amplamente adotado, utilizado até pouco tempo quase exclusivamente com o ZigBee, que até agora era um padrão proprietário da ZigBee Alliance, e que será descrito à seguir. Contudo a alternativa de utilizá-lo com o IPv6, usando uma camada de adaptação chamada de 6loWPAN, surgiu há algum tempo, e vem ganhando adeptos desde então.
Redes ZigBee e sua integração à Internet e redes IPv6
A versão proprietária do ZigBee foi criada para ser utilizada em conjunto com o IEEE 802.15.4. Muitas vezes ambos são confundidos ou descritos como um só padrão, o que, conceitualmente, não corresponde à realidade. O ZigBee implementa, conforme ilustrado na figura 2, as camadas de rede, não presentes no IEEE 802.15.4.
Até agora, o ZigBee podia ser integrado às redes IP e à Internet por meio de gateways, mas como os protocolos eram diferentes, esses dispositivos eram complexos (em especial no que diz respeito à camada de aplicação) a fim permitir a comunicação entre as redes. O funcionamento de um gateway ZigBee/IP é ilustrado na figura 3.
Redes 6LoWPAN e sua integração à Internet
O IP por muito tempo não foi visto como uma opção quando se consideravam as redes de sensores, por conta de percepção de que ele era um protocolo muito complexo para esse tipo de aplicação. No entanto, um grupo crescente de engenheiros e pesquisadores têm questionado essa concepção: o grupo de trabalho 6LoWPAN do Internet Engineering Task Force (IETF), que nasceu à partir da pergunta “Por que inventar um novo protocolo, se já temos o IP?”.
Nas primeiras discussões sobre que protocolos deveriam ser utilizados com o IEEE 802.15.4, por volta do ano de 2001, chegou-se a cogitar o uso do IP; contudo a possibilidade acabou sendo rejeitada pela ZigBee Alliance e outros grupos, que desenvolveram novos protocolos, em sua maioria proprietários, para a função.
O uso do IP, no entanto, traz uma série de vantagens: o modelo de conexão fica simplificado, eliminando-se a necessidade de gateways complexos; ferramentas já existentes para comissionamento, configuração, gerenciamento e tratamento de problemas nas redes IP podem ser utilizadas. Outros protocolos que funcionam sobre IP, TCP ou UDP podem ser aproveitados. Protocolos proprietários usados em produtos de automação e controle que foram adaptados para funcionar sobre o IP podem ser usados. A natureza aberta da especificação do IP favorece um melhor entendimento da tecnologia e, geralmente, gera menos problemas relativos aos direitos de uso da mesma.
O grupo 6LoWPAN identificou uma série de desafios e metas para a utilização do IP nas redes IEEE 802.15.4, que foram descritos na RFC 4919. Pode-se citar, por exemplo, a necessidade do protocolo funcionar em dispositivos com sérias restrições de capacidade de memória e processamento; a necessidade de compressão dos pacotes e de fragmentação na camada 2, devido ao pequeno MTU (Maximum Transmission Unit) da rede; a necessidade de suportar topologias mesh, com protocolos de roteamento simples o suficiente para serem suportados pelos dispositivos; a necessidade de autoconfiguração, devido à grande quantidade de dispositivos normalmente presentes nas redes e à dificuldade de interação por conta da ausência de uma interface com o usuário, entre outros.
A forma encontrada para suportar o IP nas redes IEEE 802.15.4 foi a criação de uma camada de adaptação, capaz de realizar a compressão dos cabeçalhos para sua transmissão na rede. Além disso, essa camada realiza a fragmentação e desfragmentação dos pacotes, quando necessário, já que o MTU da camada física é menor do que o mínimo especificado pelo IPv6; também é permitida a emulação de broadcast e o suporte a protocolos de roteamento da camada 2 para as redes mesh. A RFC 4944 especifica essa camada de adaptação. Na figura 4 pode-se observar o posicionamento da camada de adaptação 6LoWPAN em relação ao modelo de referência ISO/OSI.
À semelhança dos cabeçalhos de extensão do próprio IPv6, foram criados cabeçalhos opcionais no 6LoWPAN, exemplificados na figura 5, adaptada da RFC 4944. Os cabeçalhos servem para dar suporte às diversas funções da camada e só são usados quando necessário, encadeados da forma ilustrada pela figura. O HC1 é o cabeçalho IP comprimido. O Mesh é utilizado para roteamento na camada 2. Os cabeçalhos de Fragmentação e Broadcast são auto-explicativos.
A figura 6, adaptada da RFC 4944 mostra a técnica de compressão stateless usada no 6LoWPAN, que permite, no melhor caso, a compressão dos 40 bytes do cabeçalho IPv6 em apenas 2 bytes. Isso é possível porque os endereços IPv6 são formados a partir dos endereços físicos dos dispositivos 802.15.4 e por uma série de outras simplificações. Os campos em verde são suprimidos ou comprimidos e apenas o limite de hops é enviado integralmente. Os campos, no entanto, podem ser transmitidos integralmente sempre que necessário.
A integração de uma rede 802.15.4 usando 6LoWPAN com a Internet ou outras redes IP é feita de forma muito simples, já que se trata do mesmo protocolo. A implementação de um gateway envolve a camada rede, como mostrado na figura 7.
Conclusão
Pode-se notar um interesse crescente da comunidade técnica e científica em torno do 6LoWPAN. Vários experimentos e trabalhos acadêmicos têm sido feitos nos últimos anos. Cada vez mais produtos tem surgido no mercado, com a utilização do protocolo.
Corroborando com essa tese, a ISA (International Society of Automation), em 2005, iniciou um processo para a criação de uma família de padrões para redes sem fio para automação industrial. O padrão, chamado de ISA100, foi anunciado como o “próximo 4-20mA” (o que quer dizer que espera-se que seja amplamente difundido e utilizado). Ele é baseado no 6lowpan e IEEE 802.15.4.
O fato de, agora, a ZigBee Alliance ter lançado o ZigBee IP, indica que há boa chance de que o padrão, baseado em IPv6 e 6lowpan, venha a substituir a versão proprietária do ZigBee como protocolo dominante usado em conjunto com o IEEE 802.15.4. O 6LoWPAN, sem dúvida, apresenta-se como a melhor alternativa para a integração das WPANs à Internet e às redes IP.
Nota: este artigo foi baseado em outro, de minha autoria, e de cunho acadêmico, escrito em 2009, e que acabou não sendo publicado. O artigo original contou com a orientação do prof. Dr. Carlos E. Cugnasca, da Poli/USP. Não poderia deixar de reconhecer sua colaboração e agradecer.