Thread e IPv6

Matter usa IPv6 para sus comunicaciones operativas y aprovecha el direccionamiento IPv6 Unicast y Multicast para acceder a sus nodos y grupos, respectivamente.

Bajo consumo

Algunos nodos Matter están cableados y tienen presupuestos de energía que les permiten mantener sus radios encendidos de forma continua. Otros tipos de nodos, como los sensores, deben funcionar durante años con una batería y operar sus radios en redes de bajo consumo, como Thread. La arquitectura de proxy, junto con los Thread dispositivos finales inactivos, permite que los nodos con alimentación completa proporcionen funcionalidad a nivel de la red y de la aplicación que aísla a sus nodos secundarios de las transacciones que consumen mucha energía.

Un aspecto fundamental de Matter es que funciona tanto en medios de red de alto rendimiento, como Wi-Fi y Ethernet, como en medios de baja latencia y bajo ancho de banda, como Thread. Si todos los paquetes Multicast de Wi-Fi se conectaran a Thread, sobrecargaríamos la red y, posiblemente, la inundaríamos. El objetivo de Thread es habilitar IPv6 en redes de malla de baja potencia y baja latencia, no la transferencia de datos de alto ancho de banda. Si bien los pings ICMPv6 de Thread en una red local suelen tener un RTT de unas pocas decenas de milisegundos, su ancho de banda total está limitado a 250 kbps en la PHY IEEE 802.15.4. Con las retransmisiones de paquetes y la sobrecarga, el ancho de banda máximo típico es de alrededor de 125 kbps. En otras palabras, órdenes de magnitud menores que el Wi-Fi.

Las tramas en la PHY IEEE 802.15.4 son de 127 bytes, pero la unidad de transmisión máxima (MTU) más grande (y típica) de los paquetes IPv6 en Thread es de 1,280 bytes. Por lo tanto, los paquetes IPv6 a menudo deben dividirse en varios tramas PHY. Este proceso se define en RFC4944.

Para obtener más información, consulta IPv6 Addressing en la guía de Thread en openthread.io.

Routers de borde

Entonces, ¿cómo pueden coexistir los nodos en ambos medios de transporte mientras están en la misma estructura? Aunque ambas redes comparten credenciales de Matter a nivel de la aplicación, no comparten la misma tecnología de vínculos. En esta situación, la red necesita un Thread Border Router (BR) para habilitar la conectividad. Los BR son routers IPv6 de subred.

Los routers de stub permiten la conectividad entre las redes de stub y las redes normales. Una red de conexión es una red de "última milla" que proporciona conectividad externa a sus miembros, pero no funciona como una ruta de red de tránsito entre otras redes. Por lo general, las Matter Stub Networks se basan en Thread. Consulta el borrador del RFC para obtener más información sobre las redes stub.

Por lo tanto, los BR tienen la responsabilidad de ser el vínculo entre la red de conexión y la red de infraestructura adyacente, que es la red local de Wi-Fi o Ethernet. Solo reenvían los paquetes que son relevantes para la red Thread.

Este proceso se logra asignando diferentes prefijos IPv6 a las redes de infraestructura adyacentes y a Thread. Por lo tanto, el BR solo reenvía transmisiones de unidifusión hacia o desde el prefijo IPv6 Thread.

Los routers de borde también son responsables de lo siguiente:

  • Configura automáticamente prefijos y rutas IPv6 para las redes de infraestructura adyacentes y de Thread, de modo que los hosts a ambos lados del router de borde de Thread puedan comunicarse.
  • Publica paquetes de descubrimiento de DNS-SD de mDNS en nombre de los nodos de Thread para que se puedan descubrir en la red de infraestructura adyacente.

Para obtener más información, consulta la guía de Border Router en openthread.io.

Multicast de IPv6

Los mensajes de grupo también son importantes, ya que permiten el control simultáneo de varios nodos Matter a través de Multicast. Para enrutar este tráfico a la red Thread, tanto Matter como Thread implementan el Esquema de direccionamiento Multicast IPv6 basado en prefijos definido por el RFC 3306.Unicast

Este método permite seleccionar los nodos de destino de un paquete Multicast según su prefijo Unicast de IPv6 compartido.

Por ejemplo, una dirección Matter Multicast podría verse así:

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

En la tabla 1, se detalla cómo se construye esta dirección:

Tabla 1: Unicast Direcciones IPv6 basadas en prefijos
Bits Descripción
12 bits 0xFF3
4 bits 0x05

Alcance: local del sitio

8 bits 0x00

reservado

8 bits 0x40

Indica un prefijo largo de 64 bits.

8 bits 0xFD

Designa un prefijo de ULA

56 bits ID de Fabric
8 bits 0x00
16 bits ID del grupo

Puedes encontrar más información en la sección Multicast del Thread Primer y en la RFC.

Cuando se forman las direcciones IPv6 Multicast, también incluyen los 56 bits superiores del ID de Fabric. La implicación importante es que el alcance de Multicast se encuentra dentro de un Fabric, mientras que las direcciones de Unicast se comparten entre Fabrics. Los nodos con muchas estructuras pueden tener varias direcciones Multicast que definen grupos de nodos superpuestos con alcance en cada estructura.

Puertos

Matter usa el puerto 5540 para sus transmisiones múltiples.