• Nenhum resultado encontrado

5.3 IETF ROLL – Camada de Rede RPL

5.3.5 Encaminhamentos de ligação descendente

As Destination Advertisement Object (DAO) são mensagens cuja finalidade é construir encaminhamento em ligação descendente, isto é, caminhos de cima para baixo da DODAG, normalmente pacotes provenientes do nó raiz para os nós da DODAG. Fundamentalmente, o mecanismo DAO é utilizado em pelo menos duas situações distintas. A primeira é a entrega P2P de pacotes de um nó de uma DODAG para outro nó da mesma DODAG. A segunda é a entrega de pacotes entre nós de uma DODAG e nós de outras redes, sejam de outras DODAGs ou de redes externas e distintas. Note-se que não é obrigatória a construção destes encaminhamentos em aplicações que não requerem tráfego descendente.

A mensagem de controlo DAO possibilita a construção de um estado de encaminhamento de ligação descendente em cada um dos nós que participará no dito encaminhamento. O objecto DAO é incluído em pacotes de controlo ICMPv6 e está representado na Figura 5.23.

Quando é colocada a 1 a flag K, é obrigatório a resposta de um DAO-ACK. A flag D é colocada a 1 quando o campo DODAG ID está presente (só estará presente se a instância da DODAG for local, e omitida se a instância for de natureza global).

Figura 5.23 - Objecto DAO.

A construção dos encaminhamentos descendentes tem dois tipos de mecanismos:  Sem-memorização (encaminhamento por nó raiz).

 Com-memorização (stateful);

O mecanismo sem-memorização alivia a ocupação extra de memória dos nós, mais concretamente em nós intermédios. Um nó fonte de dados emite o DAO para o seu nó pai, e este por sua vez envia o seu DAO para o seu nó pai, e assim sucessivamente, até ser atingido o nó raiz. O endereço de destino unicast de cada um dos DAOs é sempre o do nó raiz. No nó raiz é gravada a sequência de saltos do DAO entre cada um dos endereços participantes no encaminhamento construído. Qualquer um destes nós pode receber dados provenientes do nó raiz. A desvantagem deste mecanismo face a cenários densamente povoados e com inúmeras DAGs é a exigência dos endereços serem únicos e globais pois toda a decisão sobre o

ID Instância RPL K D Flags Reservado Sequência DAO

DODAG ID Opções ...

0

1

2

3

0 4 8 12 16 20 Octet

123

encaminhamento de pacotes de ligação descendente é realizada pelo nó raiz ao nível da espinha dorsal das redes.

No mecanismo com-memorização os nós intermédios armazenam em tabela os endereços dos nós mais profundos, ocupando memória, mas com a vantagem de existir um número inferior de pacotes a ser emitido por toda a DODAG. Os encaminhamentos na ligação descendente são realizados apenas dentro da DODAG entre nós da mesma Instância. Um exemplo clássico é a comunicação de um nó sensor de chama para um nó actuador, que activa o sistema de anti- incêndio na divisão de uma casa. Ambos os nós encontram-se sob o mesmo contexto e na mesma DODAG, portanto, em algum ponto da sub-rede partilharão um nó intermédio em comum, que possibilitará o encaminhamento dos dados na ligação descendente. Os nós que operem com este mecanismo partilham os DAOs apenas para os seus nós progenitores, em unicast. Os respectivos tipos de endereços de origem e destino encapsulados devem obrigatoriamente os endereços globais e únicos.

Figura 5.24 - Encaminhamento descendente Sem-Memorização.

Figura 5.25 - Encaminhamento descendente Com-Memorização.

Rank = 2 Rank = 3 Rank = 2 Root Rank = 4 Rank = 4 Rank = 5 Rank = 5 DAO DAO Rank = 2 Rank = 3 Rank = 2 Root Rank = 4 Rank = 4 Rank = 5 Rank = 5 DADOS DADOS Rank = 2 Rank = 3 Rank = 2 Root Rank = 4 Rank = 4 Rank = 5 Rank = 5

DAO

DAO

Rank = 2 Rank = 3 Rank = 2 Root Rank = 4 Rank = 4 Rank = 5 Rank = 5 DADOS DADOS

124

Um mecanismo hibrido pode oferecer um equilibrio confortável entre memória requerida, energia e largura de banda consumida por sinalização. Para encaminhamentos locais na ligação descendente, o mecanismo com-memorização é o mais indicado se uma DODAG não for superpovoada com centenas ou milhares de nós. No entanto, nestes cenários, uma DODAG pode ser dividida em sub-DODAGs (identificadas com prefixos de contextos específicos) por nós intermédios mais robustos em termos de recursos e que eficientemente interliguem as sub-DODAGs. Para existir partilha de tráfego entre redes diferentes, terá sempre de existir um mecanismo sem-memorização em que o nó raiz possui informação sobre todos os encaminhamentos possíveis para os nós da sua DODAG. A adição de nós intermédios mais robustos que agrupam as DODAGs internamente, pode aliviar este conflito. Os encaminhamentos pelas ligações descedentes principais são formados apenas entre o nó raiz e esses nós intermédios. A partir dos nós intermédios, o resto do encaminhamento é dividido para os nós mais profundos associados. Apesar dos pacotes de controlo DAO necessitarem de alcançar sempre o nó raiz, a troca de pacotes de dados entre nós da mesma DODAG não ocupará nem os canais, nem os nós acima dos nós intermédios necessários ao encaminhamento P2P. Este mecanismo é vantajoso em termos de consumo de energia e de ocupação da largura de banda da rede, além de suportar tráfego para outras redes. Contudo mantem a desvantagem da ocupação de memória extra nos intermédios. Além de ser aconselhável que estes nós intermédios sejam mais robustos em termos de recursos.

Devido à natureza do RPL e às características inerentes das topologias de rede, as ligações aos nós progenitores mudam, actualizam e falham. As alterações nos encaminhamentos de ligação ascendente influenciam a necessidade de também actualizar, em conformidade os encaminhamentos de ligação descendente. Assim, um pacote DAO deve ser emitido por um nó (seja o nó origem, ou seja um nó intermédio) sempre que um caminho é actualizado, ou sempre que se altera o nó pai.

Incluir o plano de dados pode igualmente ajudar na manutenção. Se um nó receber um pacote de dados de um nó mais profundo (ligação ascendente) do qual não recebeu anteriormente nenhum DAO e cujo rank é superior, pode ser construído um encaminhamento de ligação descendente. Isto ocorre em duas situações possíveis: ou o nó pai falhou por qualquer razão a recepção do DAO, ou ocorreu uma actualização recente seguida da emissão de pacotes de dados, na direcção de ligação ascendente, em lista de espera no buffer.

Sempre que um nó elimina a sua ligação com um nó pai com o qual também tem criado encaminhamento descendente, deverá emitir para este um DAO cujas opções incluem o campo Informação de Tráfego colocado a zero (0x00000000) que indica a perda de ligação. Esta mensagem DAO é denominada No-Path.

A presença de uma resposta DAO-ACK é essencial para prevenir a geração de caminhos fechados descendentes. Quando um nó A elimina o encaminhamento descendente com o seu

125

nó pai B, mas este último falha a recepção da notificação da alteração do encaminhamento, irá erroneamente passar o tráfego de ligação descendente para o nó A. A inclusão do DAO- ACK pode até um certo nível prevenir falhas desta natureza e garantir que o encaminhamento é eliminado com sucesso.