Thread et IPv6

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

Économie d'énergie

Certains nœuds Matter sont câblés et disposent de budgets énergétiques qui leur permettent de maintenir 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 faisant fonctionner leurs radios sur des réseaux à faible consommation d'énergie tels que Thread. L'architecture de proxy, ainsi que les appareils de terminaison en veille Thread, permettent aux nœuds entièrement alimentés de fournir des fonctionnalités au niveau du réseau et de l'application qui protègent leurs nœuds enfants des transactions énergivores.

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 l'Ethernet, mais aussi sur des supports à faible latence et à faible bande passante, tels que Thread. Si tous les paquets Multicast du Wi-Fi étaient mis en pont dans Thread, nous surchargerions le réseau et l'inonderions potentiellement. L'objectif de Thread est d'activer IPv6 dans les réseaux maillés à faible consommation d'énergie et à faible latence, et non le transfert de données à bande passante élevée. Bien que les pings ICMPv6 de Thread dans un réseau local soient généralement inférieurs à quelques dizaines de millisecondes de RTT, sa bande passante totale est limitée à 250 kbps au niveau de la couche physique IEEE 802.15.4. Avec les retransmissions de paquets et les frais généraux, la bande passante maximale typique est d'environ 125 kbit/s. Autrement dit, des ordres de grandeur inférieurs au Wi-Fi.

Les trames sur le PHY IEEE 802.15.4 sont de 127 octets, mais la plus grande (et la plus courante) unité de transmission maximale (MTU) des paquets IPv6 dans Thread est de 1 280 octets. Par conséquent, les paquets IPv6 doivent souvent être divisés en plusieurs trames PHY. Ce processus est défini par la norme RFC4944.

Pour en savoir plus, consultez la section IPv6 Addressing (Adresses IPv6) dans le guide de démarrage de Thread sur openthread.io.

Routeurs de bordure

Comment les nœuds peuvent-ils coexister sur les deux supports de transport dans le même fabric ? Bien que les deux réseaux partagent des identifiants 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 routeur de bordure (BR) Thread pour activer la connectivité. Les BR sont des routeurs IPv6 stub.

Les routeurs stub permettent de connecter des réseaux stub à des réseaux standards. Un réseau de bouchon 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 Matter sont basés sur Thread. Pour en savoir plus sur les réseaux stub, consultez le brouillon de RFC.

Les BR ont donc la responsabilité d'être le lien 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 réseau Thread.

Pour ce faire, attribuez différents préfixes IPv6 à Thread et aux réseaux d'infrastructure adjacents. Par conséquent, le BR ne transfère que les diffusions unicast vers ou depuis le préfixe IPv6 Thread.

Les routeurs de bordure sont également chargés de:

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

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

Multicast IPv6

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

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

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

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

Le tableau 1 décrit la structure de cette adresse:

Tableau 1: Unicast Adresses IPv6 basées sur des préfixes
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

8 bits 0xFD

Désigne un préfixe ULA

56 bits ID de structure
8 bits 0x00
16 bits ID du groupe

Pour en savoir plus, consultez la section Multicast de la présentation Thread et la RFC elle-même.

Lorsque des adresses Multicast IPv6 sont créées, elles incluent également les 56 bits supérieurs de l'ID de fabric. L'implication importante est que la portée de Multicast se situe dans un Fabric, tandis que les adresses Unicast sont partagées entre les Fabrics. Les nœuds avec de nombreux fabrics peuvent potentiellement avoir plusieurs adresses Multicast définissant des groupes de nœuds qui se chevauchent avec un champ d'application défini pour chaque fabric.

Ports

Matter utilise le port 5540 pour ses multicasts.