Matter协议文档:
https://csa-iot.org/wp-content/uploads/2024/05/matter-1-3-core-specification.pdf
https://csa-iot.org/wp-content/uploads/2024/05/matter-application-cluster-specification.pdf
https://csa-iot.org/wp-content/uploads/2024/05/matter-1-3-device-library-specification.pdf
https://csa-iot.org/wp-content/uploads/2024/05/matter-1-3-standard-namespace-specification.pdf
Matter协议的网络分层架构:
Matter只是一个应用标准,它的传输是建立在支持IPv6的TCP和UDP协议上的,Matter不对传输层进行约定,Matter也不对网络进行约定,但是Matter约定了只能使用Thread/Wi-Fi/Ethernet三种连接协议。如果需要连接其他协议,需要通过matter bridge进行连接处理。比如蓝牙、zigbee。
1. Application Layer(应用层)
- 含义:应用层是Matter协议中负责定义设备功能和行为的部分。所有设备的具体功能(如灯泡的亮度控制、温控器的温度调节等)都在这一层实现。
- 应用:设备间的控制和通信均发生在应用层,Matter为设备提供标准化的数据模型和交互模型,以实现设备的互操作性。比如用户通过智能手机或语音助手控制灯泡时,控制命令由应用层处理。
2. Transport Layer(传输层)
- 含义:传输层负责管理数据在设备之间的传输,并确保数据能够可靠或非可靠地传递。Matter协议可以使用TCP和UDP两种传输协议。
- 应用:
- TCP(传输控制协议):提供面向连接的、可靠的数据传输,确保数据包按顺序到达,并在丢包时自动重传。
- UDP(用户数据报协议):提供无连接的传输,适合于对速度要求高但对数据可靠性要求不高的场景,常用于实时通信。
3. Network Layer(网络层)
- 含义:网络层负责处理数据包的路由,确保数据可以从一个设备传输到另一个设备。Matter协议依赖IPv6来进行设备寻址和路由。
- 应用:
- IPv6:Matter使用IPv6作为网络协议,允许设备通过IP地址进行通信。这为智能家居设备提供了更大的地址空间,并支持低功耗设备。
- 网络层的职责是确保数据包能够跨越不同的物理网络传输(例如Wi-Fi、Thread等),并选择最佳路径将数据发送到目标设备。
4. Link / Media Layer(链路层 / 物理介质层)
- 含义:链路层和物理介质层定义了Matter设备使用的具体通信介质和技术。这一层支持多种物理网络标准,确保设备在不同的网络环境下都能通信。
- 应用:
- Ethernet(以太网):用于高速有线连接的设备,适合需要稳定和大带宽传输的场景。
- Wi-Fi:广泛用于智能家居中的无线设备,提供高带宽和较长的通信范围,适合传输大量数据的设备(如摄像头)。
- Thread:是一种低功耗、基于网状网络的无线通信协议,适合智能家居中的低带宽设备(如传感器、智能灯泡等),并且它也是Matter的主要网络协议之一。
- IEEE 802.15.4:这是Thread使用的物理层和MAC层协议,专为低功耗设备设计,支持网状网络结构,确保设备之间能够形成可靠的自我修复网络。
Matter协议栈:
本身又是由application, data model, interaction model, action framing, security, Message Framing and Routing和Transport and IP Framing组成,如下:
1. Application Layer(应用层)
含义:应用层是整个协议栈的顶层,负责定义设备的具体功能和行为。它决定了用户可以如何与设备交互,并实现特定的应用逻辑。 应用:例如,对于一盏智能灯泡,应用层定义了它能够执行的操作(如开/关、调节亮度、颜色设置等),以及如何将这些操作暴露给用户或其他设备。智能家居中的所有设备,无论是灯泡、温控器、锁具,还是传感器,都会在应用层中定义它们各自的具体功能。
2、数据模型(Data Model)
Matter的数据模型是对设备及其属性和功能的抽象描述。它为所有设备类型(如灯泡、温控器、门锁等)定义了通用的数据结构,使设备之间的通信标准化。
核心概念:
- 节点(Node):每个Matter设备称为一个节点。节点可能包含多个“端点”,每个端点可以看作设备的一个独立功能模块。
- 端点(Endpoint):代表一个设备的特定功能。例如,智能灯泡可能有一个端点用于照明,一个端点用于能量监控。
- 集群(Cluster):集群是设备功能的逻辑分组。每个集群包含若干个属性(Attributes)、命令(Commands)和事件(Events)。
- 属性(Attributes):设备的状态或配置项,例如灯泡的亮度、颜色等。
- 命令(Commands):设备可以执行的操作,例如“打开灯”或“调整温度”。
- 事件(Events):设备的状态改变时触发的通知,例如门锁被解锁。
数据模型的作用:
- 统一描述:通过定义标准化的数据结构,各类设备可以用同一种方式进行状态报告和功能控制。
- 可扩展性:数据模型设计支持新设备和新功能的添加,确保系统的灵活性和可扩展性。
3、交互模型(Interaction Model)
交互模型定义了Matter设备之间如何进行通信和交互。它描述了设备如何请求和响应各种操作,是Matter协议中实现设备控制和数据传输的核心部分。
核心概念:
交互模型中定义了四种主要的交互类型,来描述设备之间的通信方式:
- 读取(Read):允许一个设备读取另一个设备的属性。例如,读取灯泡的亮度值。
- 写入(Write):允许一个设备修改另一个设备的属性。例如,设置灯泡的亮度为50%。
- 命令(Command):允许一个设备向另一个设备发送命令,以执行特定操作。例如,发送一个“打开灯”的命令。
- 订阅(Subscribe):允许设备订阅另一个设备的状态变化,并在状态发生变化时接收通知。例如,订阅温控器的温度,当温度变化时自动收到通知。
交互模型的工作机制:
- 请求-响应机制:设备之间的交互遵循请求-响应模式。控制设备发送请求,目标设备执行相应的操作并返回结果。
- 可靠传输:所有交互操作都经过加密和认证,确保数据传输的可靠性和安全性。
- 事件通知机制:当订阅设备的属性发生变化时,会自动推送更新信息给相关设备,减少轮询的需求,提高效率。
交互模型的特点:
- 简化控制:通过统一的操作接口,Matter协议可以有效地控制不同类型的设备。
- 状态同步:交互模型确保所有设备的状态在网络中保持一致,避免状态混乱。
- 高效通信:交互模型设计考虑了低功耗和低延迟,尤其适合家庭环境中的设备通信需求。
4. Action Framing(操作框架)
含义:操作框架负责定义消息的结构和格式,它将交互模型中定义的操作封装成可传输的数据包。每个消息的格式都遵循特定的规则,以确保设备之间的通信一致且可以互相理解。 应用:在Matter设备之间传输的所有命令、读写请求或事件通知,都需要按照一定的格式进行封装。操作框架可以确保所有的这些请求和响应都能正确解码和处理。
5. Security(安全层)
含义:安全层为Matter设备提供了端到端的安全保护,确保设备之间的通信数据安全、私密,并且没有被篡改或拦截。 应用:
- 加密:设备之间的所有通信都经过加密,确保数据不被窃听。
- 认证:设备加入网络之前需要进行身份认证,确保只有可信的设备可以加入Matter网络。
- 数据完整性:在消息传输过程中,安全层负责校验数据的完整性,防止数据被修改或伪造。
6. Message Framing + Routing(消息封装与路由)
含义:消息封装与路由层负责将数据打包并传送到正确的目标设备。它处理数据包的路由和消息封装,确保每个设备都能通过网络找到相应的目标设备进行通信。 应用:在一个家居网络中,多个设备可能通过不同的网络技术(如Wi-Fi、Thread)进行连接。该层确保每条消息都能在复杂的网络环境中找到最优的路径进行传输。它处理路由的选择,确定消息的发送顺序和优先级。
7. IP Framing + Transport Management(IP封装与传输管理)
含义:最底层的IP封装与传输管理层负责处理设备通信的基础设施部分。Matter协议运行在基于IP的网络上,因此这一层负责将Matter消息嵌入IP数据包中,并通过网络传输这些数据。 应用:
- 网络层封装:设备通过IPv6进行通信,这一层负责将高层协议的数据进行IP层的封装。
- 传输管理:负责传输的管理,如使用TCP或UDP协议来确保数据的可靠传输。此外,还包括设备的网络地址分配与维护。
nordic的这篇文章也充分的介绍和如何开发使用,可借鉴:【Nordic博文分享系列】Matter开发,看这一篇就够了