O Matter usa IPv6 para comunicações operacionais e aproveita o endereçamento IPv6 Unicast e Multicast para acessar os nós e grupos, respectivamente.
Baixa potência
Alguns nós Matter são conectados e têm orçamentos de energia que permitem manter os rádios ligados continuamente. Outros tipos de nós, como sensores, precisam funcionar por anos com uma bateria, operando os rádios em redes de baixa potência, como Thread. A arquitetura proxy, juntamente com os Thread Sleepy End Devices, permite que os Nodes de potência total forneçam funcionalidades tanto de nível de rede quanto de nível de aplicação que isolam seus Nodes filhos de transações com uso intensivo de energia.
Um aspecto fundamental do Matter é que ele funciona tanto em meios de rede de alta taxa de transferência, como Wi-Fi e Ethernet, quanto em meios de baixa latência e baixa largura de banda, como o Thread. Se todos os pacotes Multicast do Wi-Fi fossem encaminhados para Thread, sobrecarregaríamos a rede e potencialmente a inundaríamos. O objetivo do Thread é ativar o IPv6 em redes mesh de baixa potência e baixa latência, não a transferência de dados de alta largura de banda. Embora os pings ICMPv6 de Thread em uma rede local sejam normalmente inferiores a algumas dezenas de milissegundos de RTT, a largura de banda total é limitada a 250 kbps na camada física IEEE 802.15.4. Com retransmissões de pacotes 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 na camada física IEEE 802.15.4 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. Assim, os pacotes IPv6 frequentemente precisam ser divididos em vários quadros PHY. Esse processo é definido pela RFC4944.
Para saber mais, consulte Endereçamento IPv6 no guia de Thread em openthread.io.
Roteadores de borda
Então, como os nós podem coexistir nos dois meios de transporte enquanto estão no mesmo tecido? Embora ambas as 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 Thread roteador de borda (BR, na sigla em inglês) para ativar a conectividade. Os BRs são roteadores IPv6 stub.
Roteadores Stub permitem a conectividade entre redes stub e redes regulares. Uma Stub Network é uma rede de "última milha" que fornece conectividade externa aos seus membros, mas não serve como um caminho de rede de trânsito entre outras redes. Normalmente, as redes Stub Matter são baseadas em Thread. Consulte o rascunho da RFC para obter mais informações sobre redes stub.
Portanto, os BRs têm a responsabilidade de serem a conexão entre a rede stub e a rede de infraestrutura adjacente, que é a rede Wi-Fi ou Ethernet local. Eles encaminham apenas os pacotes que são relevantes para a rede Thread.
Isso é feito atribuindo prefixos IPv6 diferentes a Thread e redes de infraestrutura adjacentes. Assim, o BR encaminha apenas unicasts de ou para o prefixo IPv6 Thread.
Os roteadores de borda também são responsáveis por:
- configurar automaticamente prefixos e rotas IPv6 para o Thread e as redes de infraestrutura adjacentes para que hosts em ambos os lados do roteador de borda do Thread possam se comunicar.
- publicando pacotes de descoberta mDNS DNS-SD em nome de nós Thread, para que possam ser descobertos na rede de infraestrutura adjacente.
Para saber mais, consulte o guia do Border Router em openthread.io.
Multicast IPv6
As mensagens Group também são importantes, pois permitem o controle simultâneo de vários Matter Nós através de Multicast. Para rotear esse tráfego para a rede Thread, Matter e Thread implementam o esquema de endereçamento IPv6 Multicast baseado em prefixo definido pela RFC 3306.Unicast
Este método permite a seleção dos nós de destino de um pacote Multicast com base no prefixo IPv6 Unicast 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 este endereço é construído:
| Bits | Descrição |
| 12 bits | 0xFF3 |
| 4 bits | 0x05
Escopo: local do site |
| 8 bits | 0x00
compras |
| 8 bits | 0x40
Indica um prefixo de 64 bits |
| 8 bits | 0xFD
Designa um prefixo ULA. |
| 56 bits | ID de fabricação |
| 8 bits | 0x00 |
| 16 bits | ID do grupo |
Mais informações podem ser encontradas na seção Multicast do guia de conceitos básicos do Thread e na própria RFC.
Quando os endereços IPv6 Multicast são formados, eles também incluem os 56 bits superiores do ID da estrutura. A implicação importante é que o escopo de Multicast está dentro de um Fabric, enquanto os endereços Unicast são compartilhados entre Fabrics. Nós com muitas estruturas podem ter vários endereços Multicast definindo grupos de nós sobrepostos no escopo de cada estrutura.
Portas
O Matter usa a porta 5540 para seus multicast.