Thread e IPv6

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

Baixo consumo energético

Alguns nós Matter são conectados e têm orçamentos de energia que permitem que eles mantenham os rádios continuamente ligados. Outros tipos de nós, como os sensores têm requisitos para funcionar por anos em uma bateria, operando seus rádios em redes de baixo consumo de energia, como Thread. O proxy do Kubernetes e também Thread Dispositivos finais sonolentos, permite que os nós completos forneçam redes e aplicativos funcionalidade que isola os nós filhos contra o uso intenso de energia transações.

Um aspecto fundamental do Matter é que ele funciona em redes com alta capacidade de processamento, como Wi-Fi e Ethernet, de baixa latência e baixa largura de banda, como Thread. Se todos Multicast pacotes de Wi-Fi foram conectados em ponte Thread, sobrecarregaríamos a rede e possivelmente inundá-lo. O objetivo da Thread é ativar o IPv6 de baixo consumo de energia, redes mesh de baixa latência, e não transferências de dados de alta largura de banda. Os pings ICMPv6 de Thread em uma rede local normalmente são com algumas dezenas de milissegundos de RTT, sua largura de banda total é limitada a 250 kbps no IEEE 802.15.4 PHY. Com as retransmissões de pacotes e a sobrecarga, a largura de banda máxima típica é de cerca de 125 kbps. Em outras palavras, ordens de magnitude menor que o Wi-Fi.

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

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

Roteadores de borda

Então, como os nós podem coexistir em ambos os meios de transporte enquanto estão no mesmo tecido? Embora ambas as redes compartilhem Matter no nível do aplicativo elas não compartilham a mesma tecnologia de links. Nesse cenário, a rede precisa de um Thread Border Router (BR) para ativar a conectividade. Os BRs são roteadores de stub IPv6.

Os roteadores de stub permitem a conectividade entre redes stub e redes regulares. Uma Stub Network é uma "última milha" de rede que fornece conectividade externa mas não serve como caminho de rede de transporte público entre outras redes. Normalmente, redes stub Matter são com base em Thread. Consulte o rascunho de RFC. para mais informações sobre redes de stubs.

Os BRs, portanto, têm a responsabilidade de ser o elo entre o stub e a Adjacent Infrastructure Network, que é a rede Wi-Fi ou Ethernet. Eles encaminham apenas os pacotes que são relevantes para o Rede Thread.

Esse processo é realizado ao atribuir diferentes prefixos IPv6 aos Thread e redes de infraestrutura adjacentes. Assim, o BR só encaminha unicasts de ou para o prefixo IPv6 Thread.

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

  • configurar automaticamente rotas e prefixos IPv6 para Thread e redes de infraestrutura adjacentes para que em ambos os lados do roteador de borda Thread se comunicar.
  • a publicação de pacotes de descoberta DNS-SD de mDNS em nome do Thread nós, para que possam ser descobertos nas instâncias adjacentes rede de infraestrutura do Google.

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

Multicast IPv6

Mensagens em grupos também são importantes, pois permitem o controle simultâneo dos vários nós Matter usando Multicast. Em para rotear esse tráfego para a rede Thread, ambos Matter e Thread implementam o Unicast IPv6 com base em prefixo Multicast de endereçamento definido pelo RFC 3306.

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

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 (em inglês) 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 da malha
8 bits 0x00
16 bits ID do grupo

Para mais informações, acesse a Multicast do Thread Primer e no próprio RFC.

Quando os endereços Multicast IPv6 são formados, eles também incluem o 56 bits superiores do ID do Fabric. A implicação importante é que o escopo Multicast está em um Fabric, enquanto Unicast são compartilhados entre os Fabrics. Nós com muitos tecidos podem potencialmente tem vários endereços Multicast definindo nós sobrepostos Grupos com escopo de cada tecido.

Portas

O Matter usa a porta 5540 para os Multicasts.