Thread et IPv6

Matter utilise IPv6 pour ses communications opérationnelles et exploite l'adressage IPv6 Unicast et Multicast pour accéder respectivement à ses nœuds et à ses groupes.

Faible consommation d'énergie

Certains nœuds Matter sont câblés et disposent de budgets énergétiques qui leur permettent de laisser leurs radios allumées en permanence. D'autres types de nœuds, tels que les capteurs, doivent fonctionner pendant des années sur une batterie, en utilisant leurs radios sur des réseaux à faible consommation d'énergie tels que Thread. L'architecture proxy , ainsi que les Thread appareils finaux en veille, Thread, permettent aux nœuds à pleine puissance de fournir des fonctionnalités au niveau du réseau et de l'application qui isolent leurs nœuds enfants des transactions gourmandes en énergie.

Un aspect fondamental de Matter est qu'il fonctionne à la fois sur des supports réseau à haut débit tels que le Wi-Fi et Ethernet, mais aussi sur des supports à faible latence et à faible bande passante, tels que Thread. Si tous les Multicast paquets du Wi-Fi étaient pontés dans Thread, nous surchargerions le réseau et pourrions même le saturer. Thread's goal is to enable IPv6 in low-power, low-latency mesh networking, not high-bandwidth data transfer. Bien que Thread's les pings ICMPv6 dans un réseau local soient généralement inférieurs à quelques dizaines de millisecondes RTT, sa bande passante totale est limitée à 250 kbit/s au niveau de la couche physique IEEE 802.15.4. Avec les retransmissions de paquets et la surcharge, la bande passante maximale typique est d'environ 125 kbit/s. En d'autres termes, elle est inférieure de plusieurs ordres de grandeur à celle du Wi-Fi.

Les trames de la couche physique IEEE 802.15.4 font 127 octets, mais l'unité de transmission maximale (MTU) la plus grande (et typique) des paquets IPv6 dans Thread est de 1 280 octets. Les paquets IPv6 doivent donc souvent être divisés en plusieurs trames de couche physique. Ce processus est défini par RFC4944.

Pour en savoir plus, consultez la section Adressage IPv6 dans le guide Thread sur openthread.io.

Routeurs de bordure

Comment les nœuds peuvent-ils coexister sur les deux supports de transport dans la même structure ? Bien que les deux réseaux partagent des identifiants Matter Matter au niveau de l'application, ils ne partagent pas la même technologie de liaison. Dans ce scénario, le réseau a besoin d'un Thread routeur de bordure (BR) pour activer la connectivité. Les routeurs de bordure sont des routeurs IPv6 Stub.

Les routeurs Stub permettent la connectivité entre les réseaux Stub et les réseaux standards. Un réseau Stub est un réseau de "dernier kilomètre" qui fournit une connectivité externe à ses membres, mais ne sert pas de chemin de réseau de transit entre d'autres réseaux. En règle générale, les réseaux Stub Matter sont Thread-basés. Pour en savoir plus sur les réseaux Stub, consultez le brouillon de la norme RFC.

Les routeurs de bordure sont donc responsables de la liaison entre le réseau Stub et le réseau d'infrastructure adjacent, qui est le réseau Wi-Fi ou Ethernet local. Ils ne transfèrent que les paquets pertinents pour le Thread réseau.

Ce processus est effectué en attribuant différents préfixes IPv6 aux Thread et réseaux d'infrastructure adjacents. Ainsi, le routeur de bordure ne transfère que les unicasts vers ou depuis le préfixe IPv6 Thread.

Les routeurs de bordure sont également responsables des éléments suivants :

  • Configuration automatique des préfixes et des routes IPv6 pour les Thread et les réseaux d'infrastructure adjacents afin que les hôtes de chaque côté du Thread routeur de bordure puissent communiquer.
  • Publication de paquets de découverte mDNS DNS-SD au nom des Thread nœuds, afin qu'ils puissent être découverts sur le réseau d'infrastructure adjacent.

Pour en savoir plus, consultez le guide du openthread.io sur openthread.io.

Multicast IPv6

Les messages de groupe sont également importants, car ils permettent de contrôler simultanément plusieurs Matter nœuds via Multicast. Afin de router ce trafic vers le Thread réseau, Matter et Thread implémentent le Unicast basé sur le préfixe IPv6 Multicast schéma d'adressage défini par la norme RFC 3306.

Cette méthode permet de sélectionner les nœuds de destination d'un Multicast paquet en fonction de leur préfixe IPv6 Unicast partagé.

Par exemple, une Matter Multicast adresse peut se présenter comme suit :

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

Le tableau 1 explique comment cette adresse est construite :

Tableau 1 : Unicast Adresses IPv6 basées sur le préfixe
Bits Description
12 bits 0xFF3
4 bits 0x05

Portée : site-local

8 bits 0x00

réservés

8 bits 0x40

Indique un préfixe de 64 bits de long

8 bits 0xFD

Désigne un préfixe ULA

56 bits Fabric ID
8 bits 0x00
16 bits ID du groupe

Pour en savoir plus, consultez la Multicast section du Thread et la norme RFC elle-même.

Lorsque des adresses IPv6 Multicast sont formées, elles incluent également les 56 bits supérieurs de l'ID de structure. L'implication importante est que la portée de Multicast se situe dans une structure, tandis que Unicast les adresses sont partagées entre les structures. Les nœuds comportant de nombreuses structures peuvent potentiellement avoir plusieurs Multicast adresses définissant des groupes de nœuds qui se chevauchent et dont la portée est limitée à chaque structure.

Ports

Matter utilise le port 5540 pour ses multicasts.