概述

Matter(前称为Project CHIP),是一个统一的、开源的应用层连接标准,旨在使开发者和制造商能够连接并构建可靠且安全的生态系统,并增强智能家居设备之间的兼容性。其构建基于经过市场验证的IP技术,可以支持Wi-Fi和Thread等多种网络协议。

本节介绍了Matter协议的架构、网络拓扑、数据模型和网络安全的概述。

Matter架构

Matter旨在为智能家居设备构建基于IPv6的通用通信协议。Matter协议定义了部署在设备上的应用层以及不同的链路层,用于辅助和维护不同层次的互操作性。下图演示了常见操作的调用协议栈。

../../../../../_images/Matter_Arch_Overview.jpg

Matter整体架构

Matter使用分层架构分离不同的职责,并且在不同的协议栈之间进行了良好的封装。大部分的交互都会经过下面图例的层级。

../../../../../_images/Matter_Layered_Arch.jpg

Matter分层架构

  1. Application:设备的高阶业务逻辑。如照明应用的开/关灯泡及控制颜色的功能。

  2. Data Model:定义应用程序的数据模型及动作。应用程序将使用这些数据与设备进行互操作。

  3. Interaction Model:定义了一系列客户端设备与服务端设备进行的交互(interaction)。例如,读或写服务设备的属性时的设备行为。这些交互作用于 Data Model 层定义的元素。

  4. Action Framing:一旦使用 Interaction Model 构造了一个动作(action),动作(action)将被序列化为规定的压缩二进制格式,以便进行编码以用于网络传输。

  5. Security:经过编码的action帧再由 Security Layer 层处理,消息会被加密并附加消息身份验证码。这些处理确保消息发送方和接收方之间的数据的机密性和真实性。

  6. Message Framing & Routing:当交互被序列化、加密和签名时, Message Layer 使用必需和可选的头字段构造payload格式,其中头字段规定消息的属性以及逻辑路由信息。

  7. IP Framing & Transport Management:当payload被 Message Layer 层构造后, 会使用基于IP的数据传输协议。

Matter网络拓扑

Matter网络可以由以太网、Wi-Fi和Thread设备组成。

单一网络拓扑

../../../../../_images/single_network.jpg

单一网络拓扑

在单一网络拓扑中,所有的 Matter 设备都连接到一个单一的逻辑网络。 它可以是Thread/802.15.4网络、Wi-Fi网络或以太网网络。在 Wi-Fi/以太网的情况下,网络实际上可以跨越多个Wi-Fi和/或以太网段,前提是所有段都在链路层桥接。 节点(Node)是Fabric中的 Matter设备的单个实例,可在IP网络上运行。

单一网络拓扑中的每个节点都通过单个网络接口与Fabric中的每个其他节点进行通信。

星形网络拓扑

../../../../../_images/star_network.jpg

星型网络拓扑

../../../../../_images/legend.jpg

图注

星形网络拓扑由多个外围网络组成,这些网络通过Hub连接在一起。Hub通常是客户家庭网络(Wi-Fi/以太网)中的设备,而外围网络可以是任何支持的网络类型。外围网络必须始终通过一个或多个边界路由器(Border Router)直接连接到Hub。

在架构上,任何数量的外围网络可以存在于单个Fabric中,包括相同类型的多个网络。节点可以具有到任何网络(Hub或外围设备)的接口,并且可以直接与同一网络上的其他节点通信。然而,任何必须跨越网络边界才能到达目的地的通信必须通过边界路由器(Border Router)。

为了支持家庭自动化互操作性,该协议支持桥接的概念,即通过数据模型节点,实现其他家庭非Matter设备接入Matter网络。

Matter数据模型

../../../../../_images/data_model.jpg

数据模型

数据模型层用来定义应用程序的数据模型及动作。应用程序将使用这些数据与设备进行互操作。数据模型的元素包括fabric,、node、endpoint、cluster等。

一个Fabric是一组通过访问交互模型中定义的数据模型元素来交互的节点。一个Fabric是一个安全域, 使得一组节点在该域内可以被识别并进行通信

一个节点(Node)封装了网络上一个可寻址的,唯一的资源。该资源具有一组功能和能力,用户可以清楚地将其识别为一个功能整体,并与其他节点区别开。 这种区别通常是物理的,比如物理设备本身,或者物理设备的逻辑实例。 节点是数据模型中最高或者最外层的第一级元素。节点是数据模型中最外层唯一可寻址的元素。

一个节点由一个或多个端点组成。一个端点(endpoint)就是由设备类型指示的服务或虚拟设备的一个实例。 每个端点都遵从一个或多个设备类型的定义,而这些又定义了端点支持的cluster。Cluster是在端点上实例化的对象类。

每个cluster都由一个cluster规范定义,该规范定义了cluster的元素,包括属性、事件、命令以及与这些元素交互相关的行为。