Descoberta e formação de redes

Ver código-fonte no GitHub

Redes Thread

As redes Thread são identificadas por três identificadores exclusivos:

  • ID de rede de área pessoal (PAN ID) de 2 bytes
  • ID de rede de área pessoal estendida (ID XPAN) de 8 bytes
  • Um nome de rede legível por humanos

Por exemplo, uma rede Thread pode ter os seguintes identificadores:

Identificador Valor
Código PAN 0xBEEF
ID do XPAN 0xBEEF1111CAFE2222
Nome da rede yourThreadCafe
Varredura ativa de OT

Ao criar uma nova rede Thread ou procurar uma rede para participar, um dispositivo Thread realiza uma verificação ativa para redes 802.15.4 dentro do alcance do rádio:

  1. O dispositivo transmite uma solicitação de beacon 802.15.4 em um canal específico.
  2. Em troca, todos os roteadores ou dispositivos finais qualificados para roteador (REEDs, na sigla em inglês) no alcance transmitem um beacon que contém o ID PAN, o ID XPAN e o nome da rede da rede Thread.
  3. O dispositivo repete as duas etapas anteriores para cada canal.

Depois que um dispositivo Thread descobre todas as redes no alcance, ele pode se conectar a uma rede existente ou criar uma nova se nenhuma rede for descoberta.

O Thread usa o protocolo de estabelecimento de link de malha (MLE) para configurar links e disseminar informações sobre a rede para dispositivos Thread.

Na configuração de link, o MLE é usado para:

  • Descobrir links para dispositivos vizinhos
  • Determinar a qualidade das vinculações a dispositivos vizinhos
  • Estabelecer links para dispositivos vizinhos
  • Negociar parâmetros de link (tipo de dispositivo, contadores de frame, tempo limite) com peers

O MLE dissemina os seguintes tipos de informações para dispositivos que desejam estabelecer links:

  • Dados do líder (RLOC do líder, ID da partição, peso da partição)
  • Dados de rede (prefixos na malha, autoconfiguração de endereços, rotas mais específicas)
  • Propagação de rota

A propagação de rotas no Thread funciona de forma semelhante ao Protocolo de Informações de Roteamento (RIP, na sigla em inglês), um protocolo de roteamento de vetor de distância.

Criar uma nova rede

Se o dispositivo decidir criar uma nova rede, ele vai selecionar o canal menos ocupado e um ID PAN que não esteja em uso por outras redes. Em seguida, ele se torna um roteador e se elege como líder. Esse dispositivo envia mensagens de anúncio MLE para outros dispositivos 802.15.4 para informar o estado do link e responde a solicitações de beacon de outros dispositivos Thread que estão realizando uma verificação ativa.

Participar de uma rede

Se o dispositivo optar por ingressar em uma rede existente, ele vai configurar o canal, o ID PAN, o ID XPAN e o nome da rede para corresponder ao da rede de destino por meio da comissionamento do Thread e, em seguida, passa pelo processo de anexação de MLE para anexar como um dispositivo filho (dispositivo final). Esse processo é usado para links entre filhos e pais.

  1. O filho envia uma solicitação de pai multicast para todos os roteadores e REEDs vizinhos na rede de destino.
  2. Todos os roteadores e REEDs vizinhos (se a máscara de verificação de solicitação principal incluir REEDs) enviam respostas principais com informações sobre eles mesmos.
  3. A criança escolhe um dispositivo da família e envia uma solicitação de ID da criança para ele.
  4. O familiar responsável envia uma resposta de ID da criança para confirmar o estabelecimento da vinculação.

1. Pedido de familiar responsável

Uma solicitação de pai é uma solicitação multicast do dispositivo de conexão que é usada para descobrir roteadores vizinhos e dispositivos finais qualificados do roteador (REEDs, na sigla em inglês) na rede de destino.

OT MLE Attach Parent Request
Conteúdo da mensagem da solicitação principal
Moda Descreve o dispositivo conectado
Desafio Testa a demora na resposta da mãe para evitar ataques de repetição
Máscara de digitalização Limita a solicitação apenas a roteadores ou a roteadores e REEDs

2. Resposta do familiar responsável

Uma resposta pai é uma resposta unicast a uma solicitação pai que fornece informações sobre um roteador ou REED para o dispositivo conectado.

Resposta de associação de OT MLE à entidade mãe
Conteúdo da mensagem de resposta dos pais
Versão Versão do protocolo de linha de execução
Resposta Cópia do desafio de solicitação para familiares responsáveis
Contador de frames do link Contador de frames 802.15.4 no roteador/REED
Contador de frames MLE Contador de frames MLE no roteador/REED
Endereço da origem RLOC16 do roteador/REED
Margem do link Receber a qualidade do sinal do roteador/REED
Conectividade Descreve o nível de conectividade do roteador/REED
Dados de liderança Informações sobre o líder do roteador/REED
Desafio Testa a timeliness da solicitação de ID de criança para evitar ataques de repetição

3. Solicitação de ID de criança

Uma solicitação de ID secundário é uma solicitação unicast do dispositivo de conexão (secundário) que é enviada ao roteador ou REED (principal) para estabelecer uma conexão entre secundário e principal. Se a solicitação for enviada para um REED, ele será atualizado para um roteador antes de aceitar a solicitação.

OT MLE Attach Child ID Request
Conteúdo da mensagem de solicitação de ID derivado
Versão Versão do protocolo de linha de execução
Resposta Cópia do desafio de resposta dos pais
Contador de frames do link Contador de frames 802.15.4 no dispositivo filho
Contador de frames MLEContador de frames de MLE na criança
Moda Descreve a criança
Tempo limite Duração da inatividade antes que o pai remova a criança
Registro de endereço (somente MEDs e SEDs) Registrar endereços IPv6

4. Resposta do ID filho

Uma resposta de ID da criança é uma resposta unicast do familiar responsável que é enviada à criança para confirmar que uma vinculação entre a criança e o familiar responsável foi estabelecida.

Resposta de ID de criança de anexo de MLE de OT
Conteúdo da mensagem de resposta do ID derivado
Endereço da origem RLOC16 do familiar responsável
Address16 RLOC16 da criança
Dados do líder Informações sobre o líder da mãe (RLOC, ID da partição, peso da partição)
Dados de rede Informações sobre a rede Thread (prefixos na malha, autoconfiguração de endereços, rotas mais específicas)
Rota (somente RED) Propagação de rota
Tempo limite Duração da inatividade antes que o pai remova a criança
Registro de endereço (somente MEDs e SEDs) Confirmar endereços registrados

Recapitulação

O que você aprendeu:

  • Um dispositivo Thread realiza uma verificação ativa das redes atuais
  • O Thread usa o estabelecimento de link de malha para configurar links e disseminar informações sobre dispositivos de rede.
  • As mensagens de anúncio MLE informam outros dispositivos Thread sobre o estado da rede e do link de um dispositivo.
  • O processo de anexação de MLE estabelece links entre filhos e pais

Teste seu conhecimento

Qual identificador não é usado para identificar uma rede Thread?
Um SSID de 32 caracteres.
Um nome de rede legível por seres humanos.
Um ID de rede de área pessoal estendida (XPAN ID) de 8 bytes.
Um ID de rede de área pessoal (PAN ID) de 2 bytes.
Para que serve uma solicitação de familiar responsável?
Para descobrir roteadores vizinhos e dispositivos finais qualificados para roteadores (REEDs, na sigla em inglês) na rede de destino.
Para solicitar que um dispositivo final qualificado para roteador seja promovido a um roteador.
Para anunciar que um roteador está se tornando uma origem.
Uma solicitação de responsável usa que tipo de endereço?
transmissão
anycast
multicast
unicast
Quando um dispositivo se conecta inicialmente a uma rede Thread, qual é a classificação dele?
Criança (dispositivo final)
REED (dispositivo final qualificado para roteador)
FTD (dispositivo de thread completa)