互動模型概念

如果系統無法執行作業,節點的資料模型 (DM) 就不相關 。互動模型 (IM) 定義節點的 DM 關係 與其他節點的 DM 合作,也就是 DM 之間的共通語言。

節點會透過以下方式互動:

  • 讀取及訂閱屬性和事件
  • 寫入屬性
  • 叫用指令

每當節點與另一個節點建立加密通訊序列時 節點即構成「互動」關係。互動可能屬於 包含一或多項「交易」,而「交易」包含 一或多個動作,並將其視為 節點。

互動模型的階層
圖 1:互動模式階層

交易支援多種動作,例如「讀取要求動作」 要求其他節點或其回應中的「屬性」或「事件」 報表資料動作,這會將資訊從伺服器傳回 用戶端。

啟動器與目標

啟動交易的節點為「發起者」,而 回應為「Target」(目標)。通常發起端是用戶端叢集,目標則是伺服器叢集。然而,這個模式仍有例外狀況,例如 與「訂閱互動」一樣。

群組

Matter 中的節點可能屬於群組。一組 裝置是一種處理及傳送訊息至多部「裝置」的機制 相同的動作群組中的所有節點都會共用相同的 群組 ID,也就是 16 位元整數。

完成群組層級的通訊 (Groupcast), Matter 使用 IPv6 Multicast 訊息,所有群組成員都具有相同Multicast 讓我們看看 DNS 解析 進一步探索內部和外部位址

路徑

每當我們想要與屬性、事件或指令互動時,都必須指定此互動的路徑:屬性、事件或指令在節點資料模型階層中的所在位置。重點在於路徑 您也可以使用群組萬用字元運算子處理多個節點, 同時叢集,匯總這些互動,進而降低

這項機制非常重要,有助於提升溝通效率。適用對象 例如,如果使用者想關掉所有燈具,語音助理可 而是與群組中多個燈具進行單一互動,而非 個別互動的順序如果啟動端與每個燈具建立個別互動,可能會導致裝置回應速度出現人為可察覺的延遲。這會導致多部裝置回應 顯示延遲的指令這通常稱為 「爆米花效果」

Matter 中的路徑可使用其中一個選項組合 如下:

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

在這些路徑構成元素中,endpointcluster 可能還包括 用於選取多個節點執行個體的萬用字元運算子。

計時與無計時

執行寫入或叫用交易的方式有兩種:Timed不限時間。定時交易會為 寫入/叫用要傳送的動作。逾時的目的是 對交易攔截攻擊。這個 API 特別適用於符合以下條件的裝置: 限制對資產 (例如車庫開門和鎖具) 的存取權

為了瞭解定時交易,瞭解攔截式攻擊的方式相當實用 以及為何定時交易很重要

攔截攻擊

攔截攻擊的模式如下:

  1. Alice 會向 Bob 傳送首則訊息,例如「寫入要求動作」。
  2. 夏娃在中間的男子攔截了這封信,不讓小明知道 接收音訊,例如某種廣播電台
  3. 阿莉未收到志明的回覆,因此傳送第二則訊息。
  4. 夏娃再次攔截並阻止白先生接收它。
  5. 夏娃把第一個攔截的訊息傳給小明,就像訊息來自於 Alice。
  6. Bob 將回應傳送給 Alice (和 Eve)。
  7. 夏娃會保留第二個攔截的訊息,方便稍後重播。因為小明從來沒有 接收 Alice 的原始第二封攔截訊息,並接受。 基礎架構如果訊息將 ,例如「open Lock」

為了防止這類攻擊,計時動作將設定最高交易量 逾時。即使夏娃成功執行 無法重播攻擊媒介的前六個步驟 ,原因是交易逾時。

時間限制交易會增加動作的複雜度和數量。因此 不是每筆交易都建議用,但只有 可控管實體或虛擬安全性和隱私權資產的裝置。

SDK 抽象化機制

「讀取交易」部分 寫入交易,以及 叫用交易 概要為您介紹 將機器學習工作流程自動化

開發人員建立使用 Matter SDK 的產品時,通常不會直接執行呼叫來執行動作;SDK 函式會將動作抽象化,並將其封裝為互動。不過,瞭解「即時通訊動作」能為工程師提供良好體驗 精通 Matter 的功能,也很精細 以便掌控 SDK 實作