Conceptos del modelo de interacción

El modelo de datos (DM) de un nodo no es relevante si no podemos realizar operaciones. con ellos. El modelo de interacción (IM) define la relación de DM de un nodo con el DM de otros nodos: un lenguaje común para la comunicación entre los DM.

Los nodos interactúan entre sí de las siguientes maneras:

  • Cómo leer atributos y eventos y suscribirte a ellos
  • Escribe en atributos
  • Invocación de comandos

Cada vez que un nodo establece una secuencia de comunicación encriptada con otro nodo, constituyen una relación de Interacción. Las interacciones pueden ser compuesta por una o más Transacciones, y las transacciones se componen de Una o más Acciones que pueden interpretarse como mensajes a nivel del IM entre Nodos.

Jerarquía del modelo de interacción
Figura 1: Jerarquía del modelo de interacción

Se admiten varias acciones en las transacciones, como una acción de solicitud de lectura que solicita un atributo o un evento de otro nodo, o su respuesta, la acción de informe de datos, que lleva la información del servidor al cliente.

Iniciadores y objetivos

El nodo que inicia una transacción es el iniciador, mientras que el nodo que responde es el Destino. Normalmente, el iniciador es un clúster de cliente y el El destino es un clúster de servidor. Sin embargo, hay excepciones a este patrón, por ejemplo, como en el análisis de Interacciones de suscripción que se analizan más adelante en esta sección.

Grupos

Los nodos de Matter pueden pertenecer a un Grupo. Un grupo de Los dispositivos son un mecanismo para asignar direcciones y enviar mensajes a varios dispositivos en la misma acción simultáneamente. Todos los nodos de un grupo comparten el mismo grupo. ID, un número entero de 16 bits.

Para lograr una comunicación a nivel de grupo (Groupcast), haz lo siguiente: Matter aprovecha IPv6 Multicast mensajes, y todos los miembros del grupo tienen el mismo Multicast web.

Rutas de acceso

Cuando queremos interactuar con un atributo, evento o comando, debemos Especifica la Ruta para esta interacción: la ubicación de un atributo, evento o Comando en la jerarquía del modelo de datos de un nodo. La salvedad es que las rutas pueden También puedes usar operadores de comodín o grupos para abordar varios nodos o al mismo tiempo, lo que agrega estas interacciones y, por lo tanto, reduce el la cantidad de acciones.

Este mecanismo es importante para mejorar la capacidad de respuesta de las comunicaciones. Para Por ejemplo, cuando un usuario quiere apagar todas las luces, un asistente de voz puede establecer una única interacción con varias luces dentro de un Grupo en lugar de una de interacciones individuales. Si el iniciador crea interacciones individuales con cada luz, puede generar una latencia perceptible por el ser humano en la capacidad de respuesta del dispositivo. Este efecto hace que los múltiples dispositivos reaccionen a un con retrasos visibles entre ellos. Esto suele denominarse “efecto de palomitas de maíz”.

Se puede crear una ruta de acceso en Matter mediante una de las opciones. a continuación:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

Dentro de estos componentes básicos de la ruta de acceso, endpoint y cluster también pueden incluir Son operadores de comodines para seleccionar más de una instancia de nodo.

Con y sin tiempo

Hay dos maneras de realizar una transacción de escritura o invocación: con tiempo y Sin marca de tiempo. Las transacciones con límite de tiempo establecen un tiempo de espera máximo para el Acción de escritura/invocación que se enviará. El propósito de este tiempo de espera es evitar un Interceptar el ataque en la transacción Es especialmente válido para dispositivos que restringen el acceso a recursos, como abridores y cerraduras de garajes.

Para entender las transacciones temporizadas, es útil entender cómo interceptar los ataques puede ocurrir y por qué son importantes las transacciones con plazo.

El ataque de la intercepción

Un ataque de intercepción tiene el siguiente patrón:

  1. Alicia le envía a Roberto un mensaje inicial, como una acción de solicitud de escritura.
  2. Eva, un intermediario, intercepta el mensaje e impide que Bob por ejemplo, a través de algún tipo de interferencia en la radio.
  3. Alicia, que no recibe una respuesta de Roberto, envía un segundo mensaje.
  4. Eva intercepta de nuevo y evita que Bob lo reciba.
  5. Eva envía el primer mensaje interceptado a Bob, como si proviniera de Alicia.
  6. Roberto les envía la respuesta a Alice (y a Eva).
  7. Eva retiene el segundo mensaje interceptado para volver a reproducirlo más tarde. Como Roberto nunca el segundo mensaje original interceptado de Alice, este lo aceptará que la modifica. Este mensaje representa una violación de la seguridad cuando el mensaje codifica un como "abrir bloqueo".

Para evitar este tipo de ataques, las Acciones cronometradas establecen una transacción máxima el tiempo de espera al inicio de la transacción. Incluso si Eva logra ejecutar el primeros seis pasos del vector de ataque, no podrá volver a reproducir el mensaje en el paso 7 debido a que venció el tiempo de espera de la transacción.

que aumentan la complejidad y la cantidad de acciones. Por lo tanto, son no se recomienda para todas las transacciones, sino solo las operaciones críticas Dispositivos que controlan la seguridad física o virtual y los activos de privacidad

Abstracciones de SDK

En las secciones Transacciones de lectura, Write Transactions y Invoca transacciones proporcionan una descripción general de alto nivel de las acciones del modelo de interacción que realiza el de Google Cloud.

El desarrollador que crea un producto que usa el SDK de Matter no suele realizar llamadas para ejecutar Acciones directamente; las Acciones se abstraerse de las funciones del SDK que los encapsularán en una interacción. Sin embargo, es importante comprender las Acciones de IM para proporcionarle al ingeniero una buena capacitación sobre las capacidades de Matter, así como un control detallado sobre la implementación del SDK.