Das Datenmodell (DM) eines Knotens ist nicht relevant, wenn wir keine Vorgänge darauf ausführen können. Das Interaktionsmodell (IM) definiert die DM-Beziehung eines Knotens. mit der DM anderer Knoten: eine gängige Sprache für die Kommunikation zwischen DMs.
So interagieren Knoten miteinander:
- Attribute und Ereignisse lesen und abonnieren
- In Attribute schreiben
- Befehle aufrufen
Wenn ein Knoten eine verschlüsselte Kommunikationssequenz mit einem anderen Knoten herstellt, besteht eine Interaktionsbeziehung. Mögliche Interaktionen Transaktionen und Transaktionen aus eine oder mehrere Actions, die als Nachrichten auf IM-Ebene zwischen Knoten.
Für Transaktionen werden mehrere Aktionen unterstützt, z. B. eine Leseanfrageaktion der ein Attribut oder Ereignis von einem anderen Knoten anfordert, oder Report Data Action, mit der die Informationen vom Server zurück an den Client.
Initiatoren und Ziele
Der Knoten, der eine Transaktion initiiert, ist der Initiator, während der Knoten, der antwortet, das Ziel ist. In der Regel ist der Initiator ein Client-Cluster und der Das Ziel ist ein Servercluster. Es gibt jedoch Ausnahmen von diesem Muster, wie wie unter Abointeraktionen weiter unten in diesem Abschnitt analysiert.
Gruppen
Knoten in Matter können zu einer Gruppe gehören. Eine Gruppe von "Geräte" ist ein Mechanismus zum Adressieren und Senden von Nachrichten an mehrere Geräte in dieselbe Aktion ausführen. Alle Knoten in einer Gruppe verwenden dieselbe Gruppe ID, eine 16-Bit-Ganzzahl.
Für die Kommunikation auf Gruppenebene (Groupcast) Matter nutzt IPv6 Multicast Nachrichten und alle Gruppenmitglieder haben dieselbe Multicast Adresse.
Pfade
Wann immer wir mit einem Attribut, Ereignis oder Befehl interagieren möchten, geben Sie den Pfad für diese Interaktion an: die Position eines Attributs, eines Ereignisses. oder Befehl in der Datenmodellhierarchie eines Knotens. Der Vorbehalt ist, dass Pfade Sie verwenden auch Groups (Gruppen) oder Platzhalteroperatoren, um mehrere Knoten oder Cluster, die diese Interaktionen aggregieren und so die Anzahl der Anzahl der Aktionen.
Dieser Mechanismus ist wichtig, um die Reaktionsfähigkeit der Kommunikation zu verbessern. Für Wenn ein Nutzer z. B. alle Lampen ausschalten möchte, kann ein Sprachassistent eine einzelne Interaktion mit mehreren Lichtern innerhalb einer Gruppe statt einer Abfolge einzelner Interaktionen. Wenn der Initiator einzelne Bei Interaktionen mit jedem Licht kann diese vom Menschen wahrnehmbare Latenz erzeugen. Reaktionsfähigkeit des Geräts Dieser Effekt führt dazu, dass mehrere Geräte auf einen mit sichtbaren Verzögerungen dazwischen. Dies wird oft als „Popcorn-Effekt“.
Ein Pfad in Matter kann mit einer der folgenden Optionen zusammengestellt werden unten:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
Innerhalb dieser Pfadbausteine können endpoint
und cluster
auch Folgendes enthalten:
Platzhalteroperatoren zur Auswahl mehrerer Knoteninstanzen.
Zeitlich und ohne Zeitangabe
Es gibt zwei Möglichkeiten, eine Schreib- oder Aufruftransaktion auszuführen: zeitlich begrenzt und zeitlich unbegrenzt. Bei zeitgesteuerten Transaktionen wird ein maximales Zeitlimit für die Zu sendende Aktion schreiben/aufrufen. Mit dieser Zeitüberschreitung soll verhindert werden, Intercept-Angriff auf die Transaktion. Sie gilt insbesondere für Geräte, die Zugang zum Tor auf Ressourcen wie Garagenöffner und Schlösser
Um Zeitgebertransaktionen zu verstehen, ist es hilfreich zu wissen, wie Abfangangriffe ablaufen können und warum Zeitgebertransaktionen wichtig sind.
Der Abfangangriff
Ein Abfangangriff hat das folgende Muster:
- Alice sendet an Bob eine erste Nachricht, z. B. eine Schreibanfrageaktion.
- Eve, ein Man-in-the-Middle, fängt die Nachricht ab und hindert Bob daran, z. B. durch Radiostörsender.
- Alice erhält keine Antwort von Bob und sendet eine zweite Nachricht.
- Eve fängt noch einmal ab und verhindert, dass Bob den Brief empfängt.
- Eve sendet die erste abgefangene Nachricht an Bob, als käme sie von Alicia.
- Bob sendet die Antwort an Alice (und Eve).
- Eve hält die zweite abgefangene Nachricht zur späteren Wiederholung. Da Bob noch nie die ursprüngliche abgefangene Nachricht von Alice erhalten hat, . Diese Nachricht stellt eine Sicherheitsverletzung dar, wenn die Nachricht ein z. B. „Lock öffnen“.
Um diese Arten von Angriffen zu verhindern, wird mit zeitgesteuerten Aktionen eine maximale Anzahl von Transaktionen eine Zeitüberschreitung zu Beginn der Transaktion. Auch wenn Eve es schafft, ersten sechs Schritten des Angriffsvektors beginnen, kann die Nachricht nicht erneut abgespielt werden. in Schritt 7 aufgrund einer abgelaufenen Zeitüberschreitung für die Transaktion.
Geplante Transaktionen erhöhen die Komplexität und die Anzahl der Aktionen. Sie werden daher nicht für jede Transaktion empfohlen, sondern nur für kritische Vorgänge auf Geräten, die physische oder virtuelle Sicherheits- und Datenschutz-Assets steuern.
SDK-Abstraktionen
In den Abschnitten Transaktionen lesen Transaktionen schreiben und Transaktionen aufrufen geben einen allgemeinen Überblick über die Interaktionsmodellaktionen des SDK.
Der Entwickler, der ein Produkt erstellt, für das das Matter SDK verwendet wird führt normalerweise keine Aufrufe aus, um Aktionen direkt auszuführen; sind die Aktionen abstrahiert, die sie in einer Interaktion kapseln. Es ist jedoch wichtig, IM-Aktionen zu verstehen, damit die Entwickler die Funktionen von Matter gut kennen und die SDK-Implementierung genau steuern können.