如果系統無法執行作業,節點的資料模型 (DM) 就不相關 。互動模型 (IM) 定義節點的 DM 關係 與其他節點的 DM 合作,也就是 DM 之間的共通語言。
節點會透過以下方式互動:
- 讀取及訂閱屬性和事件
- 寫入屬性
- 叫用指令
每當節點與另一個節點建立加密通訊序列時 節點即構成「互動」關係。互動可能屬於 包含一或多項「交易」,而「交易」包含 一或多個動作,並將其視為 節點。
交易支援多種動作,例如「讀取要求動作」 要求其他節點或其回應中的「屬性」或「事件」 報表資料動作,這會將資訊從伺服器傳回 用戶端。
啟動器與目標
啟動交易的節點為「發起者」,而 回應為「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>
在這些路徑構成元素中,endpoint
和 cluster
可能還包括
用於選取多個節點執行個體的萬用字元運算子。
計時與無計時
執行寫入或叫用交易的方式有兩種:Timed 和 不限時間。定時交易會為 寫入/叫用要傳送的動作。逾時的目的是 對交易攔截攻擊。這個 API 特別適用於符合以下條件的裝置: 限制對資產 (例如車庫開門和鎖具) 的存取權
為了瞭解定時交易,瞭解攔截式攻擊的方式相當實用 以及為何定時交易很重要
攔截攻擊
攔截攻擊的模式如下:
- Alice 會向 Bob 傳送首則訊息,例如「寫入要求動作」。
- 夏娃在中間的男子攔截了這封信,不讓小明知道 接收音訊,例如某種廣播電台
- 阿莉未收到志明的回覆,因此傳送第二則訊息。
- 夏娃再次攔截並阻止白先生接收它。
- 夏娃把第一個攔截的訊息傳給小明,就像訊息來自於 Alice。
- Bob 將回應傳送給 Alice (和 Eve)。
- 夏娃會保留第二個攔截的訊息,方便稍後重播。因為小明從來沒有 接收 Alice 的原始第二封攔截訊息,並接受。 基礎架構如果訊息將 ,例如「open Lock」
為了防止這類攻擊,計時動作將設定最高交易量 逾時。即使夏娃成功執行 無法重播攻擊媒介的前六個步驟 ,原因是交易逾時。
時間限制交易會增加動作的複雜度和數量。因此 不是每筆交易都建議用,但只有 可控管實體或虛擬安全性和隱私權資產的裝置。
SDK 抽象化機制
「讀取交易」部分 寫入交易,以及 叫用交易 概要為您介紹 將機器學習工作流程自動化
開發人員建立使用 Matter SDK 的產品時,通常不會直接執行呼叫來執行動作;SDK 函式會將動作抽象化,並將其封裝為互動。不過,瞭解「即時通訊動作」能為工程師提供良好體驗 精通 Matter 的功能,也很精細 以便掌控 SDK 實作