Métodos de detecção automática de falha de link em redes ZigBee

8

Dada uma rede em malha ZigBee com vários nós. Existem links estabelecidos entre cada nó via nós do roteador.

Se o Nó A desejar enviar uma mensagem ao Nó Z pela primeira vez, o Nó A deverá executar uma Descoberta de Rota para determinar quais nós intermediários encaminharão sua mensagem.

O mecanismo de descoberta de rota é descrito aqui . Segundo ele, a rota com o menor custo será armazenada nas Tabelas de Roteamento dos nós.

Até agora tudo está bem, todo nó sabe o que fazer, eles podem se encontrar.


Agora, um nó intermediário, entre o Nó A e o Nó B, quebra, para que a rota armazenada no momento se torne inutilizável.

O que acontece nesse caso? Imagino que quando o Nó A quiser enviar uma mensagem, ele percorrerá todo o caminho até o link quebrado, onde ficará preso. O último nó na rota enviará de volta uma mensagem sobre a falha que acionará uma nova Descoberta de Rota pelo Nó A , em seguida, uma nova rota será encontrada e tudo ficará bem novamente.

Geralmente é bom (dado que eu estava correto); a rede se recupera. Mas estou me perguntando se existem algoritmos ou métodos que fornecem um recurso de monitoramento de rede que verifica continuamente o estado dos links apresentados nas Tabelas de roteamento. Assim, o Nó A pode ser notificado sobre a falha antes de enviar outra mensagem ao Nó Z. Em vez de chegar a um beco sem saída, ele pode começar com uma Descoberta de Rota de uma só vez. Então, basicamente, o que estou pensando é um serviço que verifica periodicamente os links.


Entendo que, como o ZigBee geralmente é usado em dispositivos alimentados por bateria e de baixa potência, esse mecanismo não seria eficiente em termos de energia.

Então, em geral, quais são agora os mecanismos mais eficazes de detecção de falha de link que podem ser usados ​​em uma rede de sensores sem fio de baixa potência, especialmente em uma rede em malha ZigBee?

Bence Kaulics
fonte

Respostas:

4

Pelo que descobri, parece que algumas implementações (por exemplo, o Z-STACK da TI ) recomendam atualizar a tabela de roteamento de vez em quando para evitar nós "mortos" :

Sim, esperei 5 a 10 minutos. O que é "algum tempo"? Eu já vi casos em que leva alguns minutos para recuperar. Por exemplo, se eu ligar e ligar o gateway, talvez demore um ou dois minutos para que os nós mais próximos se conectem, depois mais um ou dois minutos para cada nível sucessivo. Mas esperei muito mais tempo para que a malha se recuperasse dessa alteração de roteamento.


Sim, pode levar muitos minutos. Então, se você quiser 5 ou minutos, seu dispositivo voltará? É recomendável chamar NLME_RouteDiscoveryRequest () periodicamente para manter a tabela de roteamento.

Você pode ler mais sobre o que NLME_RouteDiscoveryRequest()faz no guia do desenvolvedor (na página 11/12):

A figura a seguir mostra um exemplo do procedimento de descoberta de rota muitos-para-um. Para iniciar a descoberta de rota muitos-para-um, o concentrador transmitiu uma solicitação de rota muitos-para-um para toda a rede. Após o recebimento da solicitação de rota, cada dispositivo adiciona uma entrada da tabela de rotas para o concentrador e armazena o vizinho de um salto que retransmite a solicitação como o endereço do próximo salto. Nenhuma resposta de rota será gerada.

O comando de solicitação de rota muitos-para-um é semelhante ao comando de solicitação de rota unicast com o mesmo ID de comando e formato de quadro de carga útil. O campo de opção na solicitação de rota é muitos para um e o endereço de destino é 0xFFFC. A API Z-Stack a seguir pode ser usada para o concentrador enviar solicitação de rota muitos-para-um. Consulte a documentação da API do ZStack para obter detalhes sobre a API.

ZStatus_t NLME_RouteDiscoveryRequest( uint16 DstAddress, byte options, uint8 radius )

A tolerância a falhas nas redes de sensores sem fio ZigBee é um artigo interessante com mais informações sobre como as redes ZigBee toleram falhas nos nós. Parece que a implementação usada reconstruiu a rede quando um dos nós foi removido (o método exato disso não está claro, infelizmente), para que o nó com defeito não seja mais incluído na malha. Em alguns casos, isso levou os sensores a ficarem "órfãos" antes de solicitar a nova conexão à rede de malha por uma rota diferente.

Em resumo, a partir dos recursos que encontrei: depende da sua implementação, mas a maioria irá reavaliar a tabela de roteamento com frequência razoável para evitar que nós quebrados danifiquem a rede . Eu suspeito que você será capaz de obter uma resposta mais precisa se você solicitar ao fornecedor sua implementação específica do ZigBee, pois a operação exata variará.

Aurora0001
fonte