Índice

1. Resumo …………………………………………………………………………………

2. Introdução ………………………………………………………………………………

2.1 - Características das LLN’s ………………………………………......………

2.2 - Requisitos de roteamento em LLN’s ……………………………………...

3. Visão geral do protocolo RPL ………………………………………………………

3.1 Termos Gerais …………………………………………………………………..

3.2 A Pilha RPL ……………………………………………………………………..

4. Mensagens de controle ………………………………………………………………

        4.1 - DIO (DODAG Information Object) ………………………………………….

        4.2 - DAO (Destination Advertisement Object) ……………………………….

        4.3 - DIS (DODAG Information Solicitation) …………………………………….

        4.4 - DAO-ACK (DAO Acknowledgement) ………………………………………

5. Rotas Upward ………………………………………………………………………….

5.1 Construindo as topologias DODAG ..……………………………………….

6. Rotas Downward ………………………………………………………………………

7. Funções Objetivo (OF’s) .……………………………………………………………..

8 - Loops no roteamento ……………………………………………………………….

        8.1 - Detecção e prevenção de loops …………………………………………...

9. Métricas RPL …………………………………………………………………………..

        9.1 - Consumo de energia do nó ………………………………………………...

        9.2 - ETX (Expected Transmission Count) …………………………………….

10. Manutenção da topologia …………………………………………………………

11. Limitações do RPL ………………………………………………………………….

12. Conclusão ……………………………………………………………………………

1 Resumo

Atualmente, redes com muita perda e de baixa potência ()representam um grande desafio para a conectividade, sobretudo se considerarmos o cenário atual da indústria 4.0,  no qual dispositivos IoT não apenas coletam dados, mas também devem modificar seu comportamento de acordo com o ambiente em que se insere. Dessa forma, dos diversos cenários encontrados, dois principais padrões de tráfego se configuram: Point-to-Multipoint (P2MP) or Multipoint-to-Point (MP2P)

2        Introdução

No domínio do roteamento em redes, é comum encontrar diversas propostas de protocolos de roteamento que são específicos para um determinado cenário, como protocolos de roteamento para redes veiculares (VANETs) ou para redes móveis (MANETs), por exemplo. O ponto chave para a necessidade de novos protocolos ao invés do uso dos já existentes reside no fato de que cada cenário de redes possui suas características e requisitos a serem atendidos, que por vezes são únicos e não foram contempladas em outros projetos. Diante disso, será apresentado aqui o protocolo de roteamento RPL (IPv6 Routing Protocol for Low Power and Lossy Networks), que foi padronizado na RFC6550 pelo IETF através do grupo de trabalho RoLL (Routing over Low Power and Lossy Networks). Como o próprio nome sugere, esse protocolo foi criado visando atender às necessidades das LLNs, que serão apresentadas em breve.

2.1 Características das LLNs

A base para a criação do protocolo de roteamento RPL é a existência das redes LLN (Low Power and Lossy Networks). Antes do protocolo ser apresentado, é necessário então entender o contexto para qual ele foi proposto, ou seja, como as LLNs são caracterizadas. As principais características das LLNs (Low Power and Lossy Networks) estão descritas na RFC6550.

As redes LLN são compostas por milhares de nós restritos que possuem limitações no poder de processamento, memória e algumas vezes na disponibilidade de energia, caso os nós sejam alimentados por bateria.

Outra característica importante é encontrada na interconexão dos nós, pois ocorre através de enlaces com perdas, que são geralmente instáveis e suportam apenas baixas taxas de dados. Para exemplificar o efeito desastroso das perdas em uma rede cujos nós possuem alguma restrição, considere o cenário das Redes de Sensores Sem Fio (RSSF) - redes cujos nós consistem em dispositivos autônomos distribuídos espacialmente e com recursos de energia limitados. Diversos estudos revelam o impacto sobre a confiabilidade, eficiência no consumo e máxima vazão alcançada, que em alguns casos atinge apenas à metade da vazão alcançada em uma rede sem perdas. Além disso, as muitas retransmissão e sobrecarga de mensagens de controle provocam um aumento significativo no consumo de energia.

Espera-se ainda das redes LLN que suportem não só o padrão de tráfego Point-to-Point (P2P), mas também os padrões Multipoint-to-Point (MP2P) e Point-to-Multipoint (P2MP). Além disso, essas redes são também conhecidas pelas propriedades assimétricas dos enlaces, ou seja, a comunicação é realizada usando enlaces separados para mensagens em direções diferentes (uplink e downlink), nos quais a largura de banda pode chegar a diferir substancialmente entre as diferentes direções.

2.2        Requisitos de roteamento em LLNs

Levando em conta os quatro tipos de aplicações mais representativos (aplicações urbanas, aplicações industriais, automação residencial e automação predial), o grupo RoLL publicou muitos documentos que descrevem requisitos de roteamento únicos em LLNs. Esses requisitos podem ser resumidos nos seguintes:

3 Visão Geral do RPL

3.1 Termos Gerais

É um protocolo de roteamento que se baseia em vetor de distâncias (- overhead de mensagens e de complexidade computacional), no qual os nós formam um Destination Oriented Acyclic Graph - DODAG. Basicamente, existem 3 tipos de nós:

- Raiz: Destino dos nós no DAG, que não possui nenhuma aresta de saída (Na figura abaixo, seria o dispositivo ‘A’)

- Nó de roteamento RPL: Dispositivo capaz de gerar e passar adiante tráfico RPL. (Na figura, seriam os nós ‘B’ e ‘C’)

- Nó folha RPL: Dispositivo localizado na ponta da topologia, podendo ser um roteador ou host. Esse último caracteriza-se por não passar adiante o tráfego RPL. (Nós ‘D’, ’E’ e ’F’)

 Antes de começar a explicar a respeito do RPL em si, faremos um breve resumo de

 alguns termos utilizados:

- Directed Acyclic Graph (DAG): Conforme o próprio nome já diz, trata-se de um grafo que não possui ciclos.

- Up: Arestas que vão em direção à raiz

- Down: Arestas que se afastam da raiz

- Função Objetivo: Função que ajuda a sabermos o quão distante estamos da raiz, definida pelo programador. É uma métrica a ser minimizada, seja latência, energia, dentre outras. Dessa forma, a função objetivo determina como um nó escolhe seus pais (para onde as arestas de saída apontam).

- Rank: Posição do nó em relação à raiz. Pode ser o número de links que um nó precisa atravessar para chegar até a raiz ou segundo alguma outra métrica que cresça conforme se afasta da raiz. Isso será utilizado para evitar loops.

- Instância RPL: Conjunto de DODAG’s que compartilham o mesmo RPLInstanceID

- RPLInstanceID: Identificador único que caracteriza uma rede. DODAG’s com o mesmo RPLInstanceID possuem a mesma função objetivo usada para computar a posição do nó no DODAG.

- DODAG Version: Esse número serve para indicar qual versão da topologia se encontra o DODAG. O mesmo é incrementado sempre que a topologia precisa ser refeita.

- DODAG ID: Cada DODAG possui um IPv6 ID, o qual é atribuído apenas para a raiz. Desde que a raiz não mude, o IPv6 ID também não mudará.

- Destino: Onde o DODAG pretende alcançar.

- Fixado: Quando o DODAG atingiu seu destino

- Flutuante: Quando o DODAG ainda não atingiu seu destino ou está desconectado

- Sub-DODAG: Sub-árvore do DODAG

fig 1: Exemplo de DODAG

   

3.2 A Pilha RPL

A topologia é formada seguindo as métricas de roteamento ou restrições do nó/link (bateria restante, por exemplo). Para tal, o DODAG é construído trocando-se mensagens de controle via pacotes do ICMP. Esse último é feito por cima da camada IPv6, seguido pelo 6LowPAN, protocolo que define uma compressão para datagramas IPv6. Isto é necessário, visto que para comportar um número maior de identificadores únicos de IP, o IPv6 tornou-se extremamente grande, gerando problemas para redes que tem throughput reduzido, altas taxas de perda e restrições de energia.

3.3 As mensagens de controle

As principais mensagens de controle do RPL são:

-  DODAG Information Solicitation (DIS): Um nó pede aos seus vizinhos requisitando informações de roteamento (DODAG Information Object (DIO)).

- DIO: Contém informações que um nó usa para descobrir uma instância RPL, determinar parâmetros de configuração, o conjunto de nós pais e manter o DODAG.

- Destination Advertisement Object (DAO): Permite a propagação de informações de destino para cima através do DODAG. Ocorre quando um nó filho solicita a um nó pai para fazer parte do DODAG. Em resposta, o nó pai envia um DAO - ACK, contendo a resposta à solicitação.

          Basicamente, existem dois modos de operação do RPL: um onde todos os nós mantêm a tabela de roteamento completa (storing), outro no qual apenas a raiz possui a tabela de roteamento completa (non-storing). Nesse último caso, os nós possuem informações apenas sobre seus pais, logo os pacotes são primeiramente enviados ao nó raiz e só então repassado para o destino. Por outro lado, no modo storing basta que o nó destino e a fonte possuam um nó ancestral em comum.

5 Rotas UPWARD

É o que permite os dispositivos enviem informações para o nó raiz (gateway).  A construção da topologia começa pelo nó raiz que envia mensagens DIO. Cada nó que recebe uma mensagem DIO executa um algoritmo para determinar quem será seu pai, baseando-se na métrica da função objetivo e suas restrições. Em seguida cada nó computa seu Rank e, caso o nó seja um roteador, o mesmo atualiza o Rank na mensagem DIO e a envia para todos os vizinhos, que repetem as operações descritas. O processo termina quando o DIO alcança os nós folhas ou não sobraram mais nós no alcance.

Quando é impossível construir um único DODAG, outros se formam, seguindo a mesma função objetivo. No geral o RPL distingue 3 grupos ao construir as rotas ascendentes. Em primeiro lugar, tem o conjunto de vizinhos, que representa todos os nós alcançáveis, podendo ser de versões distintas. Em segundo lugar, o subconjunto deste é o conjunto de nós pais, aqueles que fazem parte da mesma versão do DODAG. Quando o nó inclui um vizinho no conjunto de pais, ele entra na topologia. Por fim, tem o nó do conjunto de pais que é o next-hop de preferência.

A taxa de envio das mensagens DIO é mudada dinamicamente. Isso porque há uma necessidade de evitar ao máximo envio de mensagens desnecessárias quando a rede está estável. Dessa forma definem-se os períodos mínimo e máximo de envio dos pacotes. Sempre que o timer expira, o RPL dobra o valor do período até o limite do período máximo. Da mesma forma, sempre que o RPL detecta um evento indicando que a rede precisa de manutenção, ele reseta o timer para o período mínimo. Tais eventos podem ser quando um nó entra/sai da rede, ou inconsistência no roteamento adiante, levando ao reparo da topologia.

Obs: Nada impede que um nó faça parte de mais uma instância do RPL

6        Rotas Downward

        Para a ideia de Internet da Coisas ser considerada em redes LLN, é um dever do protocolo de roteamento levar em conta o padrão de tráfego P2MP (Point-to-Multipoint). Logo, é justo afirmar que o RPL dá suporte ao P2MP, o que possibilita ao administrador da rede controlar nós ainda que não então dentro do alcance. Isso é muito útil para propósitos de avaliação, onde muitas centenas de nós estão espalhados em uma grande área. Se esse tráfego não for suportado, mesmo as menores alterações, como uma mudança no valor de um temporizador, pode exigir a localização do nó, desconectá-lo da rede e fazer upload de uma nova imagem de código.

        A especificação do RPL define dois modos de operação para suportar P2MP: modo não-armazenamento e modo armazenamento. Uma instância RPL operará ou em modo ou em outro, mas nunca em ambos ao mesmo tempo.

Fig. 3 - Um exemplo de transmissão de pacote downward no modo não-armazenamento.

Fig. 4 - Um exemplo de tabelas de roteamento no modo armazenamento.

Referências Bibliográficas

[1] BRANDT, Anders et al. RPL: IPv6 routing protocol for low-power and lossy networks. In: RFC 6550. 2012.

[2] TSVETKOV, Tsvetko; KLEIN, Alexander. RPL: IPv6 routing protocol for low power and lossy networks. Network, v. 59, 2011.

[3] KO, JeongGil et al. Connecting low-power and lossy networks to the internet. IEEE Communications Magazine, v. 49, n. 4, p. 96-101, 2011.

[4] VASSEUR, J. et al. RPL: The IP routing protocol designed for low power and lossy networks. Internet Protocol for Smart Objects (IPSO) Alliance, v. 36, 20101.

[5] VASSEUR, Jean-Philippe. Reactive and proactive routing protocol interoperation in low power and lossy networks. U.S. Patent n. 8,934,496, 13 jan. 2015.

[6] PISTER, Kris et al. Industrial routing requirements in low-power and lossy networks. 2009.

[7] DAWSON-HAGGERTY, Stephen; TAVAKOLI, Arsalan; CULLER, David. Hydro: A hybrid routing protocol for low-power and lossy networks. In: Proc. IEEE Int. Conf. Smart Grid Commun.(SmartGridComm). 2010. p. 268-273.

[8] INTERNET OF THINGS -  ROLL on a roll! Disponível em: <https://www.ietfjournal.org/roll-on-a-roll/ >. Acesso em: 30 Set. 2019.

[9] OH, Sukho et al. A hybrid mode to enhance the downward route performance in routing protocol for low power and lossy networks. International Journal of Distributed Sensor Networks, v. 14, n. 4, p. 1550147718772533, 2018.

[10] KIM, Hyung-Sin et al. Challenging the IPv6 routing protocol for low-power and lossy networks (RPL): A survey. IEEE Communications Surveys & Tutorials, v. 19, n. 4, p. 2502-2525, 2017.