インタラクション モデルのコンセプト

ノードの操作を実行できない場合、ノードのデータモデル(DM)は関連しません。インタラクション モデルIM)は、ノードの DM と他のノードの DM の関係を定義します。これは、DM 間の通信のための共通言語です。

ノードは次の方法で相互に作用します。

  • 属性とイベントの読み取りと登録
  • 属性への書き込み
  • コマンドの呼び出し

ノードが別のノードと暗号化された通信シーケンスを確立する Interaction 関係が構成されます。想定されるインタラクション 1 つ以上のトランザクションで構成され トランザクションは 1 つ以上のアクション: エンティティ間の ノード。

インタラクション モデルの階層 <ph type="x-smartling-placeholder">
</ph> 図 1: インタラクション モデルの階層

トランザクションでは、読み取りリクエスト アクションなど、いくつかのアクションがサポートされています。 別のノードに属性またはイベントをリクエストしたり、その応答を Report Data Action。サーバーから できます。

イニシエータとターゲット

トランザクションを開始するノードがイニシエータで、トランザクションを開始するノードが Target がレスポンスを返します。通常、イニシエータはクライアント クラスタであり、 ターゲットはサーバー クラスタです。ただし、このパターンには例外があります。このセクションで後述する定期購入のインタラクションがその例です。

グループ

Matter 内のノードはグループに属することができます。デバイスのグループは、同じアクション内の複数のデバイスに同時にアドレス指定してメッセージを送信するためのメカニズムです。グループ内のすべてのノードは同じグループを共有 ID。16 ビットの整数。

グループレベルの通信(グループキャスト)を実現するために、Matter は IPv6 Multicast メッセージを利用します。すべてのグループ メンバーは同じ Multicast アドレスを持ちます。

パス

属性、イベント、コマンドを操作するときは常に、 このインタラクションのパス(属性やイベントの場所)を指定します。 コマンドやコマンドを指定することもできます。ただし、パスには また、グループまたはワイルドカード演算子を使用して、複数のノードや これらの相互作用が集約されるため、 指定することもできます。

このメカニズムは、コミュニケーションの応答性を向上させるために重要です。対象 たとえば、すべての照明を消したいとき、音声アシスタントは グループ内で複数のライトとの単一のインタラクションを確立する シーケンスを表現します。イニシエータが個別の 個々の光との相互作用により、人が認識できるレイテンシが デバイスの応答性。この効果により、複数のデバイスは 間に目に見える遅延を発生させます。これは「ポップコーン効果」とも呼ばれます。

Matter のパスは、いずれかのオプションを使用して構築できます。 下にあります。

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

また、これらのパス構成要素内に、endpointcluster に以下を含めることもできます。 複数のノード インスタンスを選択するためのワイルドカード演算子。

時間制限ありと時間制限なし

書き込みトランザクションまたは呼び出しトランザクションを実行する方法は、時間指定あり時間指定なしの 2 つあります。時間指定トランザクションは、トランザクションの最大タイムアウトを確立します。 送信するアクションの書き込み/呼び出し。このタイムアウトは、CPU 使用率が トランザクションに対するインターセプト攻撃。特に、 ガレージ オープナーやロックなどのアセットへのアクセスを防止できます。

Timed Transactions を理解するには、インターセプト攻撃がどのように行われるのかを理解することが重要です。 Timed Transactions が重要な理由について説明します。

インターセプト攻撃

インターセプト攻撃のパターンは次のとおりです。

  1. Alice は、Write Request Action などの最初のメッセージを Bob に送信します。
  2. 中間者のイブはメッセージをインターセプトし、ボブが 受信することがあります。
  3. Bob からの応答がない Alice は、2 つ目のメッセージを送信します。
  4. Eve はまたインターセプトし、Bob がそれを受信できないようにします。
  5. Eve は、インターセプトされた最初のメッセージを Bob に送信します。 アリス。
  6. ボブはアリス(とイブ)に応答を送信します。
  7. Eve は、後で再生するために、2 番目の傍受されたメッセージを保持します。ボブは絶対にないから 最初のインターセプトされた 2 番目のメッセージを Alice から受信すると、 できます。このメッセージは、エンコーディングまたは 使用できます。

このような攻撃を防ぐために、Timed Actions では、最大トランザクション数を設定します。 トランザクションの開始時にタイムアウトになります。たとえイブが 攻撃ベクトルの最初の 6 ステップまでは、メッセージを トランザクションのタイムアウトが原因で発生することがあります。

時間指定取引は、アクションの複雑さと数を増やします。したがって、 すべてのトランザクションに推奨するものではなく、 物理的または仮想的なセキュリティとプライバシー アセットを管理するデバイス。

SDK の抽象化

[Read Transactions] セクションでは、 トランザクションの書き込み トランザクションを呼び出す インタラクション モデル アクションの概要を説明します。 できます。

Matter SDK を使用するプロダクトを作成するデベロッパー 通常、アクションを直接実行するための呼び出しは行わない。アクションは やり取りにカプセル化する SDK 関数によって抽象化されます。 ただし、IM アクションを理解しておくことは、エンジニアが Matter の機能に関する習熟度と、 SDK の実装を制御できます。