• Nenhum resultado encontrado

Para realizar os processos de roteamento com o protocolo µNet, utilizou-se um endereçamento de 64 bits para os dispositivos do µNet, assim como o endereço estendido do protocolo IEEE 802.15.4 (IEEE..., 2015). Dos quais são utilizados 16 bits para informar o prefixo e a qual área de rede (PANID) o dispositivo pertence, conforme o padrão IEEE 802.15.4. Além disso, são utilizados 48 bits para endereçamento global de rede, sendo 32 bits (ADDR32) para endereçamento de redes numa mesma PAN e outros 16 bits (ADDR16) são utilizados como endereço local da rede. A Figura 27 representa os cabeçalhos de endereços de origem e destino do µNet utilizados pelo processo de roteamento.

PANID Origem (16 bits) ADDR32 Origem (32 bits) ADDR16 Origem (16 bits) PANID Destino (16 bits) ADDR32 Destino (32 bits) ADDR16 Destino (16 bits)

Figura 27 – Endereçamento µNet. Fonte: Autoria própria.

Para realizar a formação de rota no µNet, o coordenador da rede deve iniciar a transmissão por uma mensagem de broadcast na qual ele indica aos dispositivos vizinhos a sua existência. Quando algum dispositivo vizinho recebe a notificação da existência do coordenador, ele indica aos seus dispositivos vizinhos a existência de uma rota. Isso se perpetua até que todos os dispositivos na rede obtenham ao menos uma rota. Se um novo dispositivo entra na rede, ele pode enviar uma mensagem de requisição de rota aos seus vizinhos. Dessa forma, se alguém possuir uma rota até o coordenador, esse novo dispositivo é notificado com a informação de sua rota.

Por convenção, o µNet utiliza as seguintes nomenclaturas para rotas, de forma que a distância é medida pela quantidade de saltos necessários entre o emissor e coordenador da rede:

rotas descendentes (downward): representa a direção das mensagens que partem dos nodos mais distantes em direção ao coordenador da rede;

rotas ascendentes (upward): representa a direção das mensagens originadas no coordenador da rede em direção aos nodos mais distantes;

 nodo: um dispositivo que pertença à rede;

 nodo pai: dispositivo que fornece ao menos um caminho para outros dispositivos poderem enviar informações ao coordenador da rede;

 nodo filho: dispositivo que utiliza um nodo pai para enviar sua informação ao coordenador da rede.

A criação de rotas descendentes se inicia com o coordenador indicando sua atividade aos nodos vizinhos. Os dispositivos próximos, sabendo a rota para o coordenador, propagam essa informação a sua vizinhança, até que todos os dispositivos que pertençam a rede tenham sua rota estabelecida, ou até que uma requisição de um novo dispositivo ocorra. Para definir qual das rotas descendentes será utilizada, cada dispositivo avalia a qualidade do sinal e a quantidade de saltos necessários para enviar uma informação até o coordenador da rede. A rota com melhor sinal de rádio entre o nodo atual e o nodo pai e menor quantidade de saltos ao coordenador é a escolhida como padrão.

A definição das rotas ascendentes ocorre somente após as rotas descendentes serem estabelecidas. Ao formar as rotas descendentes, cada dispositivo armazena os nodos filhos que fazem parte de sua sub-rede. Portanto, quando é necessário emitir uma mensagem a um nodo filho, verifica-se na tabela de roteamento ascendente qual o dispositivo vizinho que possui rota ao destinatário desejado. A Figura 28 representa uma rede µNet e sua tabela de roteamento ascendente, sendo que cada nodo possui uma lista com os próximos saltos necessários para enviar a informação aos nodos filhos.

1 0 0 Coordenador Sensor 4 2 3 2 FE80:0000:0000:0000 FE80:0000:0001:0001 FE80:0000:0002:0004 FE80:0000:0001:0002 FE80:0000:0002:0003 1 FE80:0000:0002:0001 FE80:0000:0002:0002

Tabela de roteamento ascendente

Salto ADDR16 Destino ADDR64 0 0001 FE80:0000:0001:0001 0 0001 FE80:0000:0001:0002 1 0002 FE80:0000:0001:0002 0 0004 FE80:0000:0002:0004 0 0004 FE80:0000:0002:0003 0 0004 FE80:0000:0002:0002 0 0004 FE80:0000:0002:0001 4 0003 FE80:0000:0002:0003 4 0002 FE80:0000:0002:0002 4 0002 FE80:0000:0002:0001 2 0001 FE80:0000:0002:0001

Figura 28 – Exemplo de rede µNet com tabela de roteamento ascendente. A tabela da direita apresenta as rotas ascendentes que cada dispositivo da figura esquerda. O campo “Nº” é o identificador de cada nodo, “Salto ADDR16” o próximo salto que a informação deve ser enviada e “Destino ADD64” denota o destino final que o pacote deve chegar. Portanto, para o dispositivo “0” enviar um pacote para o destino “FE80:000:0002:0001”, deve-se transmitir o pacote para o salto de ADDR16 “0002”.

Fonte: Autoria própria.

Conforme a Figura 28, há duas redes com o mesmo PANID FE80, a amarela (esquerda) com endereçamento ADDR32 de 0000:0001 e a verde (direita) com 0000:0002. Nota-se a existência de dispositivos com o mesmo endereçamento de ADDR16, e contanto que os mesmos não estejam no mesmo endereçamento de rede ADDR32 e no mesmo raio de comunicação, a rede funciona sem problemas. Por exemplo, o coordenador não poderia ter dois dispositivos com ADDR16 de 0001 como vizinho, pois isso causaria que a mesma informação fosse recebida por ambos vizinhos. Nesse caso, a mensagem de confirmação seria gerada pelos dois dispositivos e posteriormente descartada pelo dispositivo que não possuí a rota correta do pacote.

De forma a manter uma rota ativa e a tabela de roteamento atualizada, é enviada uma mensagem de controle descendente ao coordenador. Essa mensagem de controle deve ser transmitida com mais frequência quando a rede está sendo criada, no processo de estabilização de rotas de cada dispositivo. A partir do momento que é verificado a estabilidade dessa rota, a frequência de transmissão da mensagem de controle é reduzida. Com isso, os dispositivos conseguem verificar as rotas ascendentes e quais dispositivos estão ativos e operantes. Essa mensagem de controle é omitida caso alguma mensagem descendente tenha sido enviada dentro do intervalo de tempo do controle. O controle da transmissão da mensagem de controle ocorre pelo algoritmo Trickle, com intervalos entre 4 segundos, quando a rota está sendo criada ou modificada, e 9 minutos quando as rotas estão estabilizadas, valores definidos empiricamente a partir de análises de redes com protocolo µNet.

Além disso, o processo de roteamento do µNet utiliza dois buffers separados, um para as rotas ascendentes e outro para as rotas descendentes, definidos para não bloquear os fluxos das rotas. Como o fluxo natural de um RSSF é dos sensores para o coordenador, sua fila global se torna maior a medida que há congestionamento próximo ao coordenador. Entretanto, o fluxo ascendente (do coordenador aos sensores), em geral, é menor. Portanto, se utilizado um único buffer para as duas rotas, as pacotes com destino aos sensores podem ser bloqueados pelo buffer ocupado dos pacotes que tem como destino o coordenador.