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.

Alimentación baja

Algunos nodos de Matter están conectados por cable y tienen presupuestos de energía que les permiten mantener sus radios encendidas de forma continua. Otros tipos de nodos, como los sensores, tienen requisitos para funcionar durante años con una batería, operando 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 funciones a nivel de red y de aplicación que aíslan 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 alta capacidad de procesamiento, como Wi-Fi y Ethernet, como en redes de baja latencia y bajo ancho de banda, como Thread. Si todos los paquetes de 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 en malla de baja potencia y baja latencia, no en la transferencia de datos de gran ancho de banda. Si bien los pings de ICMPv6 de Thread en una red local suelen ser inferiores a unas pocas decenas de milisegundos de RTT, su ancho de banda total se limita a 250 kbps en la PHY de 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 de 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 marcos de PHY. Este proceso se define en el RFC4944.

Para obtener más información, consulta Direccionamiento IPv6 en la guía básica 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ínculo. En esta situación, la red necesita un Thread Border Router (TBR) para habilitar la conectividad. Los BR son routers IPv6 de stub.

Los routers de stub habilitan la conectividad entre las redes de stub y las redes normales. Una red de stub 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 redes stub de Matter se basan en Thread. Consulta el borrador de RFC para obtener más información sobre las redes de stub.

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

Este proceso se realiza asignando diferentes prefijos IPv6 a Thread y a las redes de infraestructura adyacentes. 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:

  • configurar automáticamente los prefijos y las rutas IPv6 para las redes de infraestructura Thread y adyacentes, de modo que los hosts de ambos lados de la TBR puedan comunicarse.
  • publicar 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 OpenThread Border Router (OTBR).

Multidifusión IPv6

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

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

Por ejemplo, una dirección Multicast de Matter podría verse de la siguiente manera:

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 de 64 bits de longitud

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 de la guía básica de Thread y en la RFC.

Cuando se forman las direcciones IPv6 Multicast, también incluyen los 56 bits superiores del ID de la tela. La implicación importante es que el alcance de Multicast está dentro de un Fabric, mientras que las direcciones 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 de multidifusión.