Thread e IPv6

Matter usa IPv6 para comunicações operacionais e aproveita os endereços IPv6 Unicast e Multicast para acessar seus nós e grupos, respectivamente.

Baixa potência

Alguns nós Matter estão conectados e têm orçamentos de energia que permitem manter os rádios continuamente ligados. Outros tipos de nós, como sensores, têm requisitos para serem executados por anos com uma bateria, operando os rádios em redes de baixo consumo de energia, como Thread. A arquitetura de proxy, junto com os dispositivos finais sonoros de Thread, permitem que os nós completos forneçam funcionalidades no nível da rede e do aplicativo que isolam os nós filhos de transações com alto consumo de energia.

Um aspecto fundamental do Matter é que ele funciona em mídias de rede de alta capacidade, como Wi-Fi e Ethernet, mas também em baixa latência e baixa largura de banda, como Thread. Se todos os pacotes Multicast do Wi-Fi tivessem sido conectados a Thread, sobrecarregaríamos a rede e poderia inundá-la. O objetivo do Thread é ativar o IPv6 em redes mesh de baixo consumo de energia e latência, e não na transferência de dados de alta largura de banda. Enquanto os pings ICMPv6 de Thread em uma rede local costumam ficar abaixo de algumas dezenas de milissegundos de RTT, a largura de banda total é limitada a 250 kbps no IEEE 802.15.4 PHY. Com retransmissões de pacote e sobrecarga, a largura de banda máxima típica é de cerca de 125 kbps. Em outras palavras, ordens de magnitude menores que o Wi-Fi.

Os frames no IEEE 802.15.4 PHY têm 127 bytes, mas a maior e típica unidade máxima de transmissão (MTU) de pacotes IPv6 em Thread é de 1.280 bytes. Por isso, os pacotes IPv6 geralmente precisam ser divididos em vários frames PHY. Esse processo é definido pela RFC4944 (link em inglês).

Para saber mais, consulte Endereçamento IPv6 no Thread Primer em openthread.io.

Roteadores de borda

Como os nós podem coexistir em ambos os meios de transporte enquanto estão no mesmo material? Embora as duas redes compartilhem credenciais Matter no nível do aplicativo, elas não compartilham a mesma tecnologia de link. Nesse cenário, a rede precisa de um roteador de borda (BR) Thread para ativar a conectividade. BRs são roteadores IPv6 stub.

Os roteadores Stub permitem a conectividade entre redes de stub e redes regulares. Uma Stub Network é uma rede de "última milha" que fornece conectividade externa aos membros, mas não serve como um caminho de rede de trânsito entre outras redes. Normalmente, as redes stub de Matter são baseadas em Thread. Consulte o rascunho de RFC (em inglês) para mais informações sobre redes de stub.

Portanto, as BRs têm a responsabilidade de ser o elo entre a rede stub e a rede de infraestrutura adjacente, que é a rede Wi-Fi ou Ethernet local. Eles encaminham apenas os pacotes relevantes para a rede Thread.

Esse processo é realizado atribuindo diferentes prefixos IPv6 a Thread e a redes de infraestrutura adjacentes. Assim, o BR encaminha apenas unicasts para ou do prefixo IPv6 Thread.

Os roteadores de borda também são responsáveis por:

  • configurar automaticamente prefixos e rotas IPv6 para a Thread e as redes de infraestrutura adjacentes para que os hosts em ambos os lados do roteador de borda Thread possam se comunicar.
  • publicar pacotes de descoberta de DNS-SD de mDNS em nome dos nós de Thread, para que eles possam ser descobertos na rede de infraestrutura adjacente.

Para saber mais, consulte o guia Roteador de borda em openthread.io.

Multicast IPv6

As mensagens agrupadas também são importantes, porque permitem o controle simultâneo de vários nós do Matter pelo Multicast. Para rotear esse tráfego para a rede Thread, Matter e Thread implementam o Esquema de endereçamento IPv6 Multicast do IPv6 baseado em prefixo Unicast definido pela RFC 3306 (links em inglês).

Esse método permite a seleção dos nós de destino de um pacote Multicast com base no prefixo Unicast do IPv6 compartilhado.

Por exemplo, um endereço Matter Multicast pode ter esta aparência:

FF35:0040:FD<Fabric ID>00:<Group ID>

A tabela 1 detalha como esse endereço é construído:

Tabela 1: Unicast Endereços IPv6 baseados em prefixo
Bits Descrição
12 bits 0xFF3
4 bits 0x05

Escopo: site-local

8 bits 0x00

compras

8 bits 0x40

Indica um prefixo longo de 64 bits

8 bits 0xFD

Designa um prefixo ULA.

56 bits ID do Fabric
8 bits 0x00
16 bits ID do grupo

Saiba mais na seção Multicast do Thread Primer e na própria RFC.

Quando os endereços IPv6 Multicast são formados, eles também incluem os 56 bits superiores do ID do Fabric. A implicação importante é que o escopo do Multicast está dentro de um Fabric, enquanto os endereços Unicast são compartilhados entre o Fabrics. Nós com muitas malhas podem ter vários endereços Multicast que definem grupos de nós sobrepostos com escopo em cada malha.

Portas

O Matter usa a porta 5540 para os multicasts.