Matter usa IPv6 para sus comunicaciones operativas y aprovecha las direcciones Unicast y Multicast de IPv6 para acceder a sus nodos y grupos, respectivamente.
Bajo consumo
Algunos nodos Matter son con 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, y operan sus radios en redes de bajo consumo, como Thread. La arquitectura de proxy, junto con los dispositivos finales Thread con modo de suspensión, permite que los nodos con toda la energía 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 en medios de red de alta capacidad de procesamiento, como Wi-Fi y Ethernet, pero también en baja latencia y baja 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 en malla de baja potencia y baja latencia, no en la transferencia de datos de gran ancho de banda. Si bien los pings ICMPv6 de Thread en una red local suelen tener una RTT de unas pocas decenas de milisegundos, su ancho de banda total se limita a 250 Kbps en el 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 las de Wi-Fi.
Las tramas en el 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 suelen dividirse en varias tramas PHY. Este proceso se define en RFC4944.
Para obtener más información, consulta Direcciones IPv6 en el primer paso de Thread en openthread.io.
Routers de borde
Entonces, ¿cómo pueden coexistir los nodos en ambos medios de transporte mientras están en el mismo tejido? Aunque ambas redes comparten credenciales Matter a nivel de la aplicación, no comparten la misma tecnología de vínculo. En esta situación, la red necesita un router de borde (BR) Thread para habilitar la conectividad. Los BR son routers IPv6 stub.
Los routers stub permiten la conectividad entre redes stub y 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 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 Thread.
Para llevar a cabo este proceso, se asignan diferentes prefijos IPv6 a Thread y a las redes de infraestructura adyacentes. Por lo tanto, el BR solo reenvía transmisiones unicast 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 Thread y las redes de infraestructura adyacentes, de modo que los hosts a ambos lados del router de frontera Thread puedan comunicarse.
- Publica paquetes de descubrimiento de DNS-SD de mDNS en nombre de los nodos Thread para que se puedan descubrir en la red de infraestructura adyacente.
Para obtener más información, consulta la guía de router de borde en openthread.io.
Multicast 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, Matter y Thread implementan el Unicastesquema de direccionamiento Multicast IPv6 basado en prefijos que define la RFC 3306.
Este método permite seleccionar los nodos de destino de un paquete Multicast según 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:
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 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 primer Thread y en la RFC.
Cuando se forman las direcciones Multicast IPv6, también incluyen los 56 bits superiores del ID de Fabric. 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 muchos tejidos pueden tener varias direcciones Multicast que definen grupos de nodos superpuestos centrados en cada tejido.
Puertos
Matter usa el puerto 5540 para sus transmisiones multicast.