在了解Matter之前,可以选择先了解以下前提知识:
以上资料来自CSDN博主:Eagle115
前言
近日,CSA联盟(Connectivity Standards Alliance)正式对外发布了Matter 1.0 标准,并宣布认证计划现已开放。这意味着智能家居品牌可以对其产品进行相关测试和认证,一旦获得认证,公司就可以开始销售带有Matter 标志的设备。
Matter 最初的项目名称是Project Chip(CHIP),目前由 CSA联盟维护。它是一个统一标准的物联网通信协议,旨在将繁杂的智能家居设备收归到统一的通信标准。
Matter 作为一个应用级的协议,向下屏蔽了设备制造商的生态和系统,让各种智能家居设备之间能相互通信。例如,一个 Matter 认证的智能灯泡可以由另一个厂家生产的同样经过认证的设备来控制。Matter 是基于ip的协议,支持wifi、 Thread、 Internet三种不同的底层协议栈。
Matter 采用不同的通讯协议和技术为未来智能家居行业提供了不同场景下的解决方案:
- 低功耗蓝牙技术:低功耗蓝牙作为一种专门设计用于低功耗设备之间通信的无线通信技术,它可以在较低的功率下实现较长的通信距离,因此非常适合用于智能家居设备之间的连接。Matter 使用低功耗蓝牙技术进行设备之间的连接和控制。
- 二维码进行配置:二维码是一种快速扫描的图形码,可以用于快速识别设备身份和配置设备。在 Matter 中,用户可以扫描设备上的二维码,以快速将设备添加到智能家居网络中,而无需手动输入复杂的网络配置信息。
- Wi-Fi 技术进行高速数据传输:Wi-Fi 技术是一种通信技术,可以提供高速的无线网络连接,因此非常适合用于传输大量数据,例如高清视频和音频数据。在 Matter 中,设备可以通过 Wi-Fi 进行高速数据传输,以实现高质量的音视频体验。
- Thread 协议进行低速数据传输:Thread 协议是一种低功耗、安全、可靠的无线通信协议,它适用于智能家居设备之间的低速数据传输。在 Matter 中,设备可以使用 Thread 协议进行低速数据传输,例如传输传感器数据、控制指令等。
Matter协议架构
1.Matter Over IPV6
该标准建立在一个共同的信念之上,即智能家居设备应该安全、可靠且无缝使用。通过建立在互联网协议 (IP) 之上,Matter 支持智能家居设备、移动应用程序和云服务之间的通信,并为设备认证定义了一组特定的基于 IP 的网络技术。
IPv6(Internet Protocol version 6)是互联网协议的一种,它是 IPv4 协议的后继者,当然并不是说这是一种全新的技术,更多的可以看作是IPV4 协议的扩展。IPv6 提供了更大的地址空间(128位)、更好的安全性(引入IPsec协议作为默认选项)、更高的性能和更多的扩展性,是未来互联网发展的重要基础。
下面是IPV4 和 IPV6 的一些区别:
区别 | IPV4 | IPV6 |
地址长度 | 32 bits | 128 bits |
地址数量 | 约4x10^9 | 约3.4×10^38 |
地址类型 | 公网地址和私有地址 | 全局地址和本地地址 |
地址分配方式 | 静态地址和动态地址 | 通过 DHCPv6 动态分配 |
安全性 | IPsec(Internet协议安全标准) 为可选项 | IPsec 为默认选项 |
— | — | — |
2.Matter协议架构
Matter 旨在为智能家居设备构建一个通用的基于 IPv6 的通信协议。该协议定义了将部署在设备上的应用层和不同的链路层,以帮助维护互操作性。
Matter、OSI 和 TCP/IP 层
为了解决网络通信壁垒,Matter网络层本身基于 IPV6,因此天生具备IP连接能力,可以与WIFI、Thread、以太网等通讯协议配合使用,而蓝牙则仅在配网过程使用;
Matter 还支持桥接等其他智能家居技术(例如 Zigbee、Bluetooth Mesh 和 Z-Wave)。这也就意味着,基于这些协议的设备可以像使用 Matter 设备一样运行Bridge;
由于Matter是基于应用层的协议,也就是说在未来即便有新的网络层协议的出现,Matter也可以很方便的兼容和支持到新协议,从长远发展来看具有很好的前瞻性!
3.Matter标准协议架构
Matter标准协议架构总体流程
Matter标准协议架构总体流程分析:
首先使用Interaction Model构建一个Action;在Action Framing这一层中,该Action会被序列化为一份指定的压缩二进制格式,表示可以在设备上执行设备交互的一组操作;处理后的Action帧通过Security层进行加密和签名处理,确保通信双方信息传输的机密性和可靠性;当Action经过序列化、加密和签名后,Message Layer会指定一份必选及可选的头字段构造Payload格式,其中头字段中包含了规定消息的属性及一些逻辑路由信息;当payload被 Message Layer 层构造后, 会使用基于IP的数据传输协议 (TCP协议或Matter的消息可靠协议Message Reliability Protocol);一旦对方设备收到数据后,数据流则沿着协议栈向上移动,即各个层反转发送方对数据执行的操作,最终将消息传递给应用程序。
后面我们会重点讲解设备数据模型(Data Model)和互动模型(Interaction Model),这两部分是Matter互联互通的前提!
Matter网络拓扑结构
原理上,任何支持IPV6协议的网络都可以部署Matter,我们重点关注三种链路层技术:以太网(Ethernet)、WIFI和 Thread。
在 Matter 协议中,Matter将网络视为共享资源,它不规定独占网络的所有权或访问权。因此我们可以在同一组成IP的网络下覆盖多个Matter网络。
Matter协议还可以在没有公网IPv6基础设施的情况下运行,经资料查询得知,主要是因为Matter协议也支持Thread网络协议,其底层是基于IEEE 802.15.4的,并使用了6LoWPAN作为IPv6的适配层。而 6LoWPAN协议 提供了一种在低功耗无线传感器网络中使用IPv6的方法,它可以将IPv6数据包压缩到非常小的尺寸,从而使得这些数据包可以在不需要较大的IP地址空间的情况下传输。这使得Matter设备可以使用私有IPv6地址而不需要公共IPv6地址,因此不需要依赖公网IPv6基础设施。
因此,Matter协议不需要依赖公网IPv6基础设施,也不需要依赖互联网服务提供商的支持,可以在与公网断开连接或有防火墙的网络中操作,这使得它可以在更广泛的场景下进行部署和使用。
Mesh组网
在了解Matter网络拓扑结构之前,我们可以先来了解下 Mesh 组网。
目前最流行的全屋WiFi方案主要有两种:Mesh路由器组网和AC+AP两种方案。而Mesh路由器组网由于其实惠的价格和较为稳定的链路连接性能以及安装的简便性,目前在全屋智能网络的选择还是比较热门的。
无线Mesh网络是一种新无线局域网类型,与传统WLAN不同的是,无线Mesh网络中的AP可以采用无线连接的方式进行互连,并且AP间可以建立多跳的无线链路。简单来说,就是当WIFI覆盖不了的时候,在有WIFI信号的时候放置一个路由器,可以作为Mesh路由的中继节点,透过这个节点,将WIFI信号覆盖到所有需要覆盖的地方;是一个动态的可以不断扩展的网络架构,任意的WIFI节点设备均可以保持无线互联。
Mesh组网
这个很直观的体现就是大学里每层走廊中间都会架设一台路由,而你每移动一个楼层,你手机的校园网都会重新连接,也就是手机信号会快速自动重连距离你最近的一台路由,这就构成了一个庞大的无线链路网络。下面我们再来了解下Matter 的网络拓扑结构主要分为单一网络拓扑和星形网络拓扑:
1.单一网络拓扑
单一Thread网络拓扑
单一WIFI网络拓扑
在单一网络拓扑中,所有的 Matter 设备都连接到一个单一的逻辑网络。 它可以是Thread/802.15.4网络、Wi-Fi网络或以太网网络。在 Wi-Fi/以太网的情况下,网络实际上可以跨越多个Wi-Fi和/或以太网段,前提是所有段都在链路层桥接。 节点(Node)是Fabric中的 Matter设备的单个实例,可在IP网络上运行。
在单一网络拓扑中的每个节点都通过单个网络接口与Fabric中的每个其他节点进行通信。
在Matter 中,分属不同网络的设备可以进行同端通信,这也就意味着一个WIFI设备可以和一个Thread进行相互的信息转发,而Matter则扮演了一个虚拟网络的身份,并称其为Fabric。
注:Fabric是共享同一个Trusted Root的Matter设备的集合。Matter中Trusted Root作为根CA,颁发NOC证书,识别节点身份。在一个Fabric内,每个节点都有一个唯一标识Node ID。Fabric作为一个命名空间来管理所有权,在Fabric范围内使用标识符确保资源的分配和选择的唯一性。
2.星形网络拓扑
- AP(Access Point):WI-FI无线接入点,AP 负责向 STA 提供 Wi-Fi 信号,并提供连接互联网的网络服务。
- STA(Station):STA 是 Wi-Fi 中的无线客户端,即 Station。STA 可以是智能手机、平板电脑、笔记本电脑等各种设备,它们可以通过 Wi-Fi 连接到无线接入点,访问互联网或者局域网中的资源。
- BR(Border Router):指的是边界路由器,BR 是一种网络设备,可以连接两个或多个 IP 子网,并将它们转换为同一个 Thread 网络,使得不同子网中的设备可以互相通信。BR 是 Thread 网络中的核心设备之一,通常由路由器或者网关设备提供。
- ED(End device):指的是终端设备,ED 是 Thread 网络中的客户端设备,如智能手机、平板电脑、笔记本电脑等。ED 可以直接连接到 BR 或者 R,也可以通过其他设备中继进行通信。
- R(Router):指的是内部路由器。R 是一种网络设备,可以连接多个 ED 和其他 R,负责在 Thread 网络中进行路由选择和数据转发。
- SED(Sleepy End Device):指的是低功耗终端设备。SED 是一种特殊的终端设备,通常采用低功耗的无线技术,可以在不需要进行通信时进入睡眠模式,从而延长电池寿命。SED 可以直接连接到 BR 或者 R,也可以通过其他设备中继进行通信。
星形网络拓扑
星形网络拓扑由多个外围网络组成,这些网络通过Hub连接在一起。Hub通常是客户家庭网络(Wi-Fi/以太网)中的设备,而外围网络可以是任何支持的网络类型。外围网络必须始终通过一个或多个边界路由器(Border Router)直接连接到Hub。
在架构上,任何数量的外围网络可以存在于单个Fabric中,包括相同类型的多个网络。节点可以具有到任何网络(Hub或外围设备)的接口,并且可以直接与同一网络上的其他节点通信。然而,任何必须跨越网络边界才能到达目的地的通信必须通过边界路由器(Border Router)。
该协议对边界路由器提出了一系列要求。这些要求涉及地址分配、路由分配和广播、多播支持和代理发现。
注:在现Matter1.0版本规范中,Thread是主要支持的LLN(Low-Power and Lossy Network)。在许多情况下,客户安装将尝试维护一简单的网络拓扑,包括一个Wi-Fi/以太网子网和一个单Thread网络。但是,可以支持多个Thread网络。
设备数据模型(Date Model)
在 Matter 中的设备具有明确定义的数据模型 (DM),这是对设备功能的分层建模。在此层次结构的顶层,有一个Device。
1.设备和端点(Node、Endpoint)
所有设备(包括智能手机和家居助理)均由**Node(节点)**组成。“节点”是网络中可以标识为唯一且可寻址的资源,用户可以感知到整个功能。Matter 中的网络通信始于和终止节点。
一组节点包含了多组Endpoint(端点)。而每个端点都封装了一个功能集。例如,端点1可能涉及照明功能,而端点2可能涉及移动侦测,以及其他与实用程序(例如设备 OTA)的处理方式。
设备、节点和端点
2.节点角色(Node roles)
在Matter 中,每一个物理设备都被称之为Node,Node 使用**Node ID(64bit)**来进行表示,在Fabric范围内是唯一的!
Node roles是一组相关的行为。每个节点可能有一个或多个role。Node roles 包括:
- Commissioner :执行调试的节点 。
- 控制器:可以控制一个或多个节点的节点。例子包括Google Home app (GHA), Google Assistant, 和Google Nest Hub (2nd gen). 某些设备类型(例如开/关灯开关)具有控制器角色。
- Controlee : 可以被一个或多个节点控制的节点。大多数设备类型都可以是 Controlee,除了一些具有 Controller 角色的设备类型,例如On/Off Light Switch。开/关灯开关只能是控制器。它不能是受控人。
- OTA Provider : 可以提供 OTA 软件更新的节点。
- OTA 请求者:可以请求 OTA 软件更新的节点。
3.集群(Cluster)
在一个Endpoint中,一个 Node 有一个或多个Clusters。这些是设备层次结构中的另一个步骤,因为它们将特定功能分组,例如 智能插头上的开/关集群,或可调光端点上的电平控制集群。
一个节点也可能有多个端点,每个端点都创建一个具有相同功能的实例。例如,灯具可能会暴露对单个灯的独立控制,或者电源板可能会暴露对单个插座的控制。
3.1 属性(Attributes)
在最后一层,我们会找到Attributes,这是节点持有的状态,表示可以读取或写入的内容,支持多种数据格式,实际中代表了智能设备的相关属性(如门的开关、室内温度等)。
节点、端点、属性和命令
3.2 命令(Commands)
除了 Attributes 之外,Clusters 还有Commands,也就是触发 Cluster 进行某种行为的指令。它们等同于Matter远程过程调用的 DM。命令类似于动词,例如Door Lock集群上的 lock door。命令可能会产生响应和结果;在 Matter,这样的响应也被定义为命令,以相反的方向进行。
3.3 事件(Events)
最后,Clusters 也可能有Events,它可以被认为是过去状态转换的记录。虽然属性代表当前状态,但事件是过去的日志,包括单调递增的计数器、时间戳和优先级。它们能够捕获状态转换,以及使用属性不容易实现的数据建模。
层次结构示例:Matter设备交互模型
Endpoint 0
作为Utility Clusters
保留。Utility Clusters 是特定的集群,它包含端点上的服务功能,例如发现、寻址、诊断和软件更新。另一方面,**Application(应用集群)**支持主要操作,例如开/关或温度测量。