Seleção de roteador

Ver código-fonte no GitHub

Conjunto dominante conectado

Conjunto dominante conectado de OT
Exemplo de um conjunto dominante conectado

Os roteadores precisam formar um conjunto dominante conectado (CDS, na sigla em inglês), o que significa:

  1. Há um caminho exclusivo para roteadores entre dois roteadores.
  2. Qualquer roteador em uma rede Thread pode alcançar qualquer outro roteador, permanecendo inteiramente dentro do conjunto de roteadores.
  3. Todos os dispositivos finais em uma rede Thread são conectados diretamente a um roteador.

Um algoritmo distribuído mantém o CDS, que garante um nível mínimo de redundância. Todos os dispositivos são conectados à rede como dispositivos finais (filhos). Conforme o estado da rede Thread muda, o algoritmo adiciona ou remove roteadores para manter o CDS.

O Thread adiciona roteadores para:

  • Aumentar a cobertura se a rede estiver abaixo do limite de 16 do roteador
  • Aumentar a diversidade de caminhos
  • Manter um nível mínimo de redundância
  • Ampliar a conectividade e oferecer suporte a mais crianças

O Thread remove os roteadores para:

  • Reduzir o estado de roteamento abaixo do máximo de 32 roteadores
  • Permitir novos roteadores em outras partes da rede, quando necessário

Fazer upgrade para um roteador

Depois de se conectar a uma rede Thread, o dispositivo filho pode se tornar um roteador. Antes de iniciar o processo de solicitação de vinculação de MLE, a criança envia uma mensagem de solicitação de endereço ao líder, solicitando um ID de roteador. Se o líder aceitar, ele vai responder com um ID de roteador, e o filho vai ser atualizado para um roteador.

O processo de solicitação de link MLE é usado para estabelecer links bidirecionais entre roteadores com roteadores vizinhos.

  1. O novo roteador envia uma solicitação de vinculação multicast para roteadores vizinhos.
  2. Os roteadores respondem com mensagens de Link Accept e Request.
  3. O novo roteador responde a cada roteador com um unicast Link Accept para estabelecer a vinculação entre roteadores.

Uma solicitação de vinculação é uma solicitação do roteador para todos os outros roteadores na rede Thread. Quando se torna um roteador pela primeira vez, o dispositivo envia uma solicitação de link multicast para ff02::2. Mais tarde, depois de descobrir os outros roteadores por meio de anúncios MLE, os dispositivos enviam solicitações de link unicast.

Pedido de vinculação de MLE do OT
Conteúdo da mensagem de solicitação de vinculação
Versão Versão do protocolo de linha de execução
Desafio Testa a timeliness da resposta de vinculação para evitar ataques de repetição
Endereço da origem RLOC16 do remetente
Dados de liderança Informações sobre o líder do roteador, conforme armazenado no remetente (RLOC, ID da partição, peso da partição)

Uma solicitação e aceitação de vinculação é uma combinação das mensagens de aceitação e solicitação de vinculação. A linha de execução usa essa otimização no processo de solicitação de link MLE para reduzir o número de mensagens de quatro para três.

Aceitação e solicitação de vinculação do OT MLE

Uma aceitação de vinculação é uma resposta unicast a uma solicitação de vinculação de um roteador vizinho que fornece informações sobre si mesmo e aceita a vinculação ao roteador vizinho.

Aceitação de link MLE do OT
Link para o conteúdo da mensagem de aceitação
Versão Versão do protocolo de linha de execução
Resposta Testa a timeliness da resposta de vinculação para evitar ataques de repetição
Contador de frames do link Contador de frames 802.15.4 no remetente
Contador de frames MLE Contador de frames de MLE no remetente
Endereço da origem RLOC16 do remetente
Dados de liderança Informações sobre o líder do roteador, conforme armazenado no remetente (RLOC, ID da partição, peso da partição)

Fazer downgrade para um REED

Quando um roteador é rebaixado para um REED, as ligações roteador-roteador são desconectadas, e o dispositivo inicia o processo de anexação de MLE para estabelecer uma ligação entre o filho e o pai.

Consulte Participar de uma rede existente para mais informações sobre o processo de vinculação de MLE.

Em alguns cenários, pode ser necessário estabelecer um link de recebimento unidirecional.

Após uma redefinição do roteador, os roteadores vizinhos ainda podem ter um link de recebimento válido com o roteador redefinido. Nesse caso, o roteador redefinido envia uma mensagem de solicitação de vinculação para restabelecer a vinculação entre os roteadores.

Um dispositivo final também pode estabelecer um link de recebimento com roteadores não-pais vizinhos para melhorar a confiabilidade do multicast. Vamos saber mais sobre isso quando chegarmos ao roteamento multicast.

Recapitulação

O que você aprendeu:

  • Os roteadores em uma rede Thread precisam formar um conjunto dominante conectado (CDS, na sigla em inglês).
  • Os dispositivos Thread são atualizados para roteadores ou rebaixados para dispositivos finais para manter o CDS.
  • O processo de solicitação de link MLE é usado para estabelecer links entre roteadores

Teste seu conhecimento

Quais destas regras não são aplicadas por um conjunto dominante conectado (CDS)?
Há um caminho exclusivo para roteadores entre dois roteadores.
Incorreto.
Qualquer roteador em uma rede Thread pode alcançar qualquer outro roteador permanecendo inteiramente dentro do conjunto de roteadores.
Incorreto.
Todos os dispositivos finais em uma rede Thread são conectados diretamente a um roteador.
Incorreto.
Apenas um roteador em uma rede Thread pode ser um roteador de borda.
Correto. Uma rede Thread pode ter vários roteadores de borda.
Por que um roteador pode ser removido de uma rede Thread?
Para reduzir o estado de roteamento abaixo do máximo de 32 roteadores.
Correto. As redes Thread se esforçam para manter um número ideal de roteadores. O máximo de roteadores que qualquer rede Thread pode ter é 32.
Para liberar canais.
Incorreto. O número de roteadores não tem relação com o uso do canal ou a capacidade.
Para permitir a eleição de novos roteadores em outras partes da rede quando necessário.
Correto. Reduzir o número de roteadores ativos em uma parte de uma rede Thread aumenta a capacidade de aumentar a capacidade de roteamento em outros lugares.
O que precisa acontecer antes que um REED que está tentando se tornar um roteador possa estabelecer links diretos com os outros roteadores?
O REED precisa enviar uma mensagem de solicitação de endereço ao líder da rede.
Correto.
O líder precisa conceder um ID de roteador ao REED.
Correto. Sem um ID de roteador, o REED continua sendo um dispositivo filho.
O REED precisa enviar uma solicitação de vinculação de MLE.
Errado. A solicitação de link MLE é como o dispositivo estabelece links para outros roteadores depois de se tornar um roteador.
Qual das afirmações a seguir descreve com precisão o que acontece quando um roteador faz downgrade?
O dispositivo permanece automaticamente na rede, mas como uma organização filha (REED).
Errado. Há mais etapas envolvidas quando um roteador é rebaixado.
O dispositivo precisa iniciar o processo de anexamento do MLE para estabelecer uma nova conexão com a rede.
Correto. Um dispositivo que faz downgrade de roteador para REED é desconectado e precisa renegociar a conexão com a rede.
Qual processo é usado para estabelecer links entre roteadores?
O processo de solicitação de vinculação do MLE.
Correto.
O processo de solicitação e aceitação de vinculação.
Incorreto. Não existe um processo de solicitação e aceitação de vinculação. As mensagens de aceitação e solicitação de vinculação são enviadas pelos roteadores em resposta a mensagens de solicitação de vinculação como parte do processo de solicitação de vinculação MLE.
O processo de anexar o MLE.
Incorreto. O processo de anexação de MLE é o processo pelo qual um dispositivo se junta a uma rede Thread existente.