Routing Protocol for Low power and Lossy Networks
A necessidade de desenvolvimento de uma solução de encaminhamento standard levou a IETF a formar um novo grupo, denominado ROLL (Routing Over Low Power and Lossy Networks) para estudar os requisitos do encaminhamento no mundo da “Internet of Things ” em inúmeras variedades de aplicações, tais como redes urbanas, automatização industrial e automatização de casas e edifícios. Também analisa os protocolos de encaminhamento existentes e como desenvolver um protocolo de encaminhamento para as redes LR-WPAN. O resultado foi a criação do “Ripple” ou RPL (Routing Protocol for Low Power and Lossy Networks) um protocolo de encaminhamento pró-activo que constrói as suas rotas e topologia em intervalos aleatórios. A topologia é a base do funcionamento do RPL, este usa a topologia como um Grafo Acíclico Direccionado (“Directed Acyclic Graph”-DAG) para criar um ou mais destinos orientados (Destination Oriented DAGs” (DODAGs), que por sua vez podem estar associados a uma ou mais Instâncias RPL “RPL Instances”. Cada RPL Instance possui uma topologia única, identificada pelo seu próprio ID (RPLInstanceID). Cada nó tem o seu próprio rank e para além disso, cada instância RPL é construída através do seu próprio conjunto de diferentes requisitos, das suas DAGs e descritos a seguir [1] [2] [3]:
Processo de criação de uma Destination Oriented DAGsApesar de poderem existir múltiplos nós roots na mesma instância RPL, o processo de criação de cada DODAG é sempre o mesma. Inicia-se no nó root ou, como na maioria dos casos, no border router/coordenador, que é programado pelo administrador do sistema como root. O nó root contém os parâmetros de configuração da rede, essa configuração é agrupada num novo pacote de mensagem de controlo ICMPv6 do RPL, de nome DODAG Information Object (DIO), o qual é usado para disseminar a informação pelos seus vizinhos na rede, usando link-local multicasting. Apenas os root (coordenadores) podem iniciar o envio de mensagens DIO e ficam com o rank zero, uma vez que a distância a ele próprio é zero. Os nós que recebem as mensagens DIO processam as mensagens baseando-se em diversas características (métricas, Objective functions, DODAGID, InstanceID, entre outras) para se juntar ou não à respectiva DODAG. Sendo natural que cada nó receba múltiplas mensagens DIO, cada nó descarta as mensagens DIO dos nós com rank superior ao seu, calcula o seu rank através das Objective functions, actualiza a mensagem DIO, e envia para todos os seus vizinhos via broadcast. Cada nó mantém um conjunto de vizinhos, que poderão ser possíveis candidatos para o nó pai (parent node) com classificação inferior ou igual, ou seja, vizinhos a partir dos quais recebeu uma mensagem DIO. No final, cada nó selecciona o seu nó pai (parent node), que tem um rank inferior ao seu, e que serve para encaminhar os dados até ao root. Este processo é contínuo, repetido e muito frequente até à formação total da DODAG, sendo depois menos frequente, apenas utilizando-se para manutenção da rede. Durante toda a formação da DODAG, os únicos valores que nunca mudam são a InstanceID e o DODAGID. Apesar do rank normalmente não ser igual para todos os nós, é importante ter em conta que poderão existir casos de nós com o mesmo rank, uma vez que este é calculado pelo Objective functions. Este problema é resolvido através do mecanismo de prevenção de loops (Loop Avoidance), garantindo que não existem ciclos e que o pacote continua a ser encaminhado pela DODAG até o seu destino. [1] [3] No final do processo, os nós não root, têm apenas um pai e uma vez que cada nó apenas comunica com o seu pai no processo de construção da DODAG, consegue-se assegurar uma DODAG livre de ciclos e que qualquer nó num raio de salto múltiplo para o root, consegue chegar ao seu pai. No entanto, o tráfego poderá ser originado fora da rede 6LoWPAN, ou mesmo dentro da rede para nós com rank superior (por exemplo rank=20) ao root (rank=0), sendo necessário que todos os nós conheçam as rotas até ao destino, permitindo encaminhamento para os vários destinos dentro do DODAG. As mensagens DAO (Destination Advertisement Object) permitem anunciar o prefixo/ informação de destino até ao root (até ao cimo da DODAG) por forma a concluir o processo de criação total do DODAG, Referencias
|