Thread e IPv6

Matter utilizza IPv6 per le comunicazioni operative e sfrutta gli indirizzi IPv6 Unicast e Multicast per accedere rispettivamente ai propri Nodi e Gruppi.

Basso consumo

Alcuni Matter Node sono cablati e hanno budget energetici che consentono di mantenere le radio accese continuamente. Altri tipi di nodi, come i sensori, devono funzionare per anni con una batteria, utilizzando le radio su reti a basso consumo come Thread. L'architettura proxy, insieme ai Thread dispositivi di destinazione inattivi, consente ai Nodi a piena potenza di fornire funzionalità sia a livello di rete sia a livello di applicazione che isolano i Nodi secondari dalle transazioni che richiedono un'elevata potenza.

Un aspetto fondamentale di Matter è che funziona sia su supporti di rete ad alta velocità in termini di throughput, come Wi-Fi ed Ethernet, sia su supporti a bassa latenza e bassa larghezza di banda, come Thread. Se tutti i pacchetti Multicast provenienti dal Wi-Fi fossero collegati tramite bridge a Thread, la rete verrebbe sovraccaricata e potenzialmente inondata. L'obiettivo di Thread è abilitare IPv6 nelle reti mesh a bassa potenza e bassa latenza, non per il trasferimento di dati ad alta larghezza di banda. Sebbene i ping ICMPv6 di Thread in una rete locale siano in genere inferiori a poche decine di millisecondi di RTT, la sua larghezza di banda totale è limitata a 250 Kbps al livello PHY IEEE 802.15.4. Con le ritrasmissioni dei pacchetti e il sovraccarico, la larghezza di banda massima tipica è di circa 125 Kbps. In altre parole, ordini di grandezza inferiori al Wi-Fi.

I frame sul livello fisico IEEE 802.15.4 sono di 127 byte, ma l'unità massima di trasmissione (MTU) più grande (e tipica) dei pacchetti IPv6 in Thread è di 1280 byte. Pertanto, i pacchetti IPv6 devono spesso essere suddivisi in più frame PHY. Questa procedura è definita dalla RFC4944.

Per scoprire di più, consulta la sezione Indirizzi IPv6 nel Thread Primer su openthread.io.

Router di confine

Quindi, come possono i Nodi coesistere su entrambi i mezzi di trasporto all'interno della stessa Infrastruttura? Sebbene entrambe le reti condividano le credenziali Matter a livello di applicazione, non condividono la stessa tecnologia di collegamento. In questo scenario, la rete ha bisogno di un Thread router di confine (BR) per abilitare la connettività. I BR sono router IPv6 stub.

I router stub consentono la connettività tra reti stub e reti normali. Una rete stub è una rete di "ultimo miglio" che fornisce connettività esterna ai suoi membri, ma non funge da percorso di rete di transito tra altre reti. In genere, le reti Matter Stub sono basate su Thread. Per ulteriori informazioni sulle reti stub, consulta la bozza RFC.

Pertanto, i BR hanno la responsabilità di essere il collegamento tra la rete stub e la rete di infrastruttura adiacente, ovvero la rete Wi-Fi o Ethernet locale. Inoltra solo i pacchetti pertinenti alla rete Thread.

Questo processo viene eseguito assegnando prefissi IPv6 diversi a Thread e alle reti di infrastruttura adiacenti. Pertanto, il BR forwarda solo le unicast verso o da Thread prefisso IPv6.

I router di confine sono responsabili anche di:

  • Configura automaticamente i prefissi e i route IPv6 sia per la rete Thread sia per le reti di infrastruttura adiacenti in modo che gli host su entrambi i lati del router di confine Thread possano comunicare.
  • pubblicando pacchetti di rilevamento mDNS DNS-SD per conto dei Thread Node, in modo che possano essere rilevati sulla rete dell'infrastruttura adiacente.

Per scoprire di più, consulta la guida del router di confine su openthread.io.

Multicast IPv6

I messaggi di gruppo sono importanti anche perché consentono il controllo simultaneo di diversi MatterNode tramite Multicast. Per indirizzare questo traffico nella rete Thread, sia Matter che Thread implementano lo schema di indirizzamento IPv6 MulticastUnicast basato su prefisso definito dal protocollo RFC 3306.

Questo metodo consente la selezione dei nodi di destinazione di un Multicast pacchetto in base al prefisso IPv6Unicast condiviso.

Ad esempio, un indirizzo Matter Multicast potrebbe avere il seguente aspetto:

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

La tabella 1 descrive in dettaglio la costruzione di questo indirizzo:

Tabella 1: Unicast Indirizzi IPv6 basati su prefisso
Bits Descrizione
12 bit 0xFF3
4 bit 0x05

Ambito: locale

8 bit 0x00

riservato

8 bit 0x40

Indica un prefisso lungo 64 bit

8 bit 0xFD

Designa un prefisso ULA

56 bit ID tessuto
8 bit 0x00
16 bit ID gruppo

Puoi trovare ulteriori informazioni nella sezione Multicast del ThreadPrimer e nel documento RFC stesso.

Quando vengono formattati gli indirizzi IPv6 Multicast, vengono inclusi anche i 56 bit superiori dell'ID fabric. L'implicazione importante è che l'ambito di Multicast si trova all'interno di un Fabric, mentre gli indirizzi Unicast sono condivisi tra i Fabric. I nodi con molti fabric possono potenzialmente avere diversi indirizzi Multicast che definiscono gruppi di nodi sovrapposti con ambito in ogni fabric.

Porte

Matter utilizza la porta 5540 per i suoi multicast.