Descoberta e formação de redes

Veja o código-fonte no GitHub

Redes de linhas de execução

As redes de linhas de execução são identificadas por três identificadores exclusivos:

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

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

Identificador Valor
Código PAN 0xBEEF
ID XPAN 0xBEEF1111CAFE2222
Nome da rede yourThreadCafe
Verificação ativa de OT

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

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

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

A Thread usa o protocolo de vinculação de malha (MLE, na sigla em inglês) para configurar links e transmitir informações sobre a rede para dispositivos Thread.

Na configuração da vinculação, o MLE é usado para:

  • Descubra links para dispositivos vizinhos
  • Determinar a qualidade dos links para dispositivos vizinhos
  • Estabelecer links para dispositivos vizinhos
  • Negociar parâmetros de link (tipo de dispositivo, contadores de frame, tempo limite) com apps semelhantes

O MLE divulga os seguintes tipos de informação para dispositivos que querem estabelecer links:

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

A propagação de rota na linha de execução funciona de maneira semelhante ao protocolo de informações de roteamento (RIP, na sigla em inglês), um protocolo de roteamento vetorial de distância.

Criar uma nova rede

Se o dispositivo optar por criar uma nova rede, ele selecionará o canal menos ocupado e um ID do PAN que não esteja em uso por outras redes. Depois, ele se tornará um roteador e se elevará como líder. Esse dispositivo envia mensagens de publicidade MLE para outros dispositivos 802.15.4 para informá-los sobre o estado do link e responde às solicitações de beacon de outros dispositivos Thread executando uma verificação ativa.

Entrar em uma rede existente

Se o dispositivo optar por participar de uma rede existente, ele configurará o canal, o ID do PAN, o ID do XPAN e o nome da rede para corresponder à rede de destino usando a comissão da linha de execução. Em seguida, ele passará pelo processo de anexação do MLE para anexar como um filho (dispositivo final). Esse processo é usado para links pai-filho.

  1. O filho envia uma solicitação 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 pai incluir REEDs) enviarão respostas pai com informações sobre eles mesmos.
  3. O filho escolhe um dispositivo pai e envia uma solicitação de ID filho a ele.
  4. O pai envia uma resposta de ID filho para confirmar o estabelecimento do link.

1. Solicitação do familiar responsável

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

OT MLE Anexar solicitação do familiar responsável
Conteúdo da mensagem da solicitação do familiar responsável
Mode Descreve o dispositivo anexado
Desafio Testa a pontualidade da resposta mãe para evitar ataques repetidos
Láscara de leitura Limita a solicitação a apenas roteadores ou a roteadores e REEDs

2. Resposta do familiar responsável

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

OT MLE Anexar resposta do pai
Conteúdo da mensagem da resposta do familiar responsável
Versão Versão do protocolo da linha de execução
Resposta Cópia do Desafio de solicitação para pais
Contador "Vincular frame" Contador 802.15.4 Frame no roteador/REED
Contador do Frame MLE Contador de frames MLE no roteador/REED
Endereço de origem RLOC16 do roteador/REED
Margem do link Receber qualidade de sinal do roteador/REED
Conectividade Descreve o nível de conectividade do roteador/REED.
Dados de lead Informações sobre o líder do roteador/REED
Desafio Testa a pontualidade da solicitação do ID filho para evitar ataques de repetição

3. Solicitação de ID filho

Uma solicitação de ID filho é uma solicitação unicast do dispositivo conectado (Child) que é enviada ao roteador ou REED (pai) com a finalidade de estabelecer um link filho-pai. Se a solicitação for enviada a um REED, ele vai fazer upgrade para um roteador antes de aceitar a solicitação.

OT MLE Anexar solicitação de ID do filho
Conteúdo da mensagem de solicitação do ID do filho
Versão Versão do protocolo da linha de execução
Resposta Cópia do Desafio de Resposta para os Pais
Contador "Vincular frame" 802.15.4 Contador de frames no filho
Contador do Frame MLEContador de frames MLE no filho
Mode Descreve o filho
Tempo limite Duração da inatividade antes que o pai remova o filho
Registro de endereço (MEDs e SEDs) Registrar endereços IPv6

4. Resposta do ID do filho

Uma resposta de ID filho é uma resposta unicast do pai que é enviada ao filho para confirmar que um link pai-filho foi estabelecido.

OT MLE Anexar resposta do ID filho
Conteúdo da mensagem da resposta do ID filho
Endereço de origem RLOC16 do familiar responsável
Endereço 16 RLOC16 da criança
Dados de lead Informações sobre o líder do pai (RLOC, código da partição, peso da partição)
Dados de rede Informações sobre a rede Thread (prefixos na malha, configuração automática de endereços, rotas mais específicas)
Rota (somente REED) Propagação da rota
Tempo limite Duração da inatividade antes que o pai remova o filho
Registro de endereço (MEDs e SEDs) Confirmar endereços registrados

Recapitulação

O que você aprendeu:

  • Um dispositivo Thread realiza uma verificação ativa para as redes existentes
  • A linha de execução usa um estabelecimento de link de malha para configurar links e disseminar informações sobre dispositivos de rede
  • As mensagens de divulgação de MLE informam outros dispositivos Thread sobre o estado e a rede de um dispositivo
  • O processo de anexação do MLE estabelece vinculações pai-filho

Teste seu conhecimento

Qual identificador não é usado para identificar uma rede Thread?
Um ID de rede de área pessoal de 2 bytes (ID PAN).
Incorreto. Uma rede de linhas de execução é identificada, em parte, por um ID de PAN.
Um ID de rede de área pessoal estendida de 8 bytes (ID XPAN).
Incorreto. Uma rede de linhas de execução é identificada, em parte, por um ID XPAN.
Um nome de rede legível.
Incorreto. Uma rede de linhas de execução é identificada, em parte, por um nome de rede legível.
Um SSID de 32 caracteres.
correto. Diferentemente de uma rede Wi-Fi 802.11, os identificadores de rede Thread não usam um SSID.
Para que serve uma solicitação de entidade mãe?
Para descobrir roteadores e dispositivos finais qualificados (REEDs, na sigla em inglês) vizinhos na rede de destino.
correto. Uma solicitação de pai/mãe é emitida por um dispositivo que quer anexar a uma rede.
Para anunciar que um roteador está se tornando pai.
Incorreto. Um roteador não inicia uma relação pai-filho com outro dispositivo de rede. Em vez disso, um dispositivo de rede seleciona um roteador para se tornar filho.
Para solicitar que um dispositivo final qualificado para o roteador seja promovido a roteador.
Incorreto.
Uma solicitação de pai/mãe usa qual tipo de endereço?
Uncast
Incorreto.
Anycast
Incorreto.
multicast
correto.
transmissão
Incorreto.
Quando um dispositivo é inicialmente anexado a uma rede Thread, qual é a classificação do seu dispositivo?
Criança (dispositivo final)
correto. Um dispositivo membro de uma rede Thread sempre começa como um Dispositivo final nessa rede.
FTD (Dispositivo de Thread completo)
Incorreto.
REED (dispositivo final qualificado para o roteador)
Incorreto.