matter中的Fabric(网络结构)

news2024/11/14 18:46:39

什么是Fabric?

Fabric可以被理解为一组相互信任的设备和控制器,它们共享一个共同的信任域。这意味着在同一个Fabric中的设备和控制器之间可以进行安全的通信,而无需额外的身份验证或安全检查。每个Fabric有一个唯一的标识,确保Fabric之间是隔离的,防止权限混乱。一个Matter Fabric就是一个Matter网络,一个Matter Fabric中的所有节点共享同一个根证书,所以他们可以相互通信,每个Matter Fabric会分配一个64bit的ID进行标识。一般来说,一个Matter生态就是一个Matter fabric,比如苹果的Home就是一个fabric,谷歌的home又是另一个fabric。

Fabric的组成:

一个Fabric主要由以下几个部分组成:

控制器(Controller)

控制器负责管理Fabric内的设备,执行设备的配置、管理和操作指令。

一个Fabric通常有一个或多个控制器。例如,智能手机、智能音箱、家用中枢设备都可以充当控制器角色。

设备(Node)

设备是由控制器管理的实际智能硬件,比如灯泡、温控器、摄像头等。

Fabric中的每个设备都有一个唯一的身份标识符(Node ID),并与控制器共享信任关系,以确保通信的安全性。

Matter Bridge(网桥)可能有

含义:Matter网桥是连接Matter设备和其他不支持Matter协议的智能设备或协议的桥梁,允许不同网络协议之间的设备互操作。

功能

  • 协议转换:Matter网桥可以将不同协议的设备(如Zigbee、Z-Wave、蓝牙等)映射为Matter设备,使它们能够与Matter生态系统中的设备通信。
  • 互操作性:通过网桥,家庭中的老旧设备或非Matter设备也可以被集成到Matter网络中,扩大了设备的兼容性和使用范围。 应用:典型应用是将Zigbee、Z-Wave等设备连接到Matter网络中,网桥充当协议转换的媒介。

Fabric Identifier(Fabric标识符)

每个Fabric都有一个唯一的标识符,确保不同的Fabric之间不会产生混淆。即便是同一家庭的不同设备也可以加入不同的Fabric,而不会相互影响。

操作凭证(Operational Credentials)

这些是控制器和设备之间进行身份认证和加密通信的凭证。它们确保Fabric中的所有通信都是加密和受信任的。

Fabric的特性:

信任域

在Matter协议中,Fabric表示的是一个受信任的网络结构,Fabric内的所有设备和控制器共享相同的信任域。这意味着Fabric中的所有设备可以相互通信和控制,而无需额外的信任验证。控制器可以轻松地向Fabric中的设备发送命令或读取设备状态。

安全通信

Fabric中的通信通过强大的加密机制保护,确保设备和控制器之间的消息在传输过程中不会被截获或篡改。

每个Fabric都有独立的加密密钥,保证Fabric间的隔离性。即便设备加入了多个Fabric(见Multi-Fabric),它在每个Fabric中的通信依然是独立加密的。

Fabric的唯一性与隔离性

每个Fabric有一个唯一的标识符,保证了Fabric之间的隔离。不同的Fabric代表不同的信任域和安全通信通道,即使一个设备加入了多个Fabric,不同Fabric的控制器之间仍不会共享设备的权限或控制。

Fabric的使用场景

单一家庭网络(Single-Fabric Scenario)

在典型的智能家居环境中,一个家庭可以有一个Fabric,所有的Matter设备和控制器都属于这个Fabric。用户可以通过智能手机、智能音箱等控制器管理和控制家中的所有设备。

例如,用户可以通过智能手机App控制灯光、门锁和恒温器,而这些设备都在同一个Fabric中,并且它们之间可以相互通信和协作。

多家庭网络或共享设备(Multi-Fabric Scenario)

Fabric允许多个Fabric并存,这意味着一个设备可以同时属于多个不同的Fabric。比如,一个设备可以既属于家庭的Fabric,又属于工作场所的Fabric,或者同时属于云服务提供商的Fabric。

这种设计使得设备可以在多个不同的控制环境中运行,而不会在控制权限上产生冲突。例如,你可以在家中通过本地控制器控制家中的设备,但在不同时,你的云服务提供商的控制器也可以对设备进行远程监控和操作。

隔离的控制权限

Fabric之间的隔离意味着即便一个设备加入了多个Fabric,每个Fabric的控制器之间也不会共享控制权限。例如,如果你有一个工作Fabric和家庭Fabric,工作Fabric中的控制器无法控制家庭Fabric中的设备,反之亦然。

Fabric的管理

  • Commissioning(设备加入Fabric)

    • 当一个设备被添加到一个Fabric中时,它需要通过一个称为“commissioning”的过程进行设备加入。控制器负责将设备纳入Fabric并生成相应的操作凭证,使设备和控制器可以相互验证身份并安全通信。
  • 设备的移除和重置

    • 如果设备需要退出一个Fabric,它可以被安全移除。设备被移除后,它将失去与该Fabric中的控制器的信任关系。为了重新加入另一个Fabric或控制器,设备需要经过重新commissioning的过程。

多个Fabric之间的相互通信:

设备跨多个Fabric加入(Multi-Fabric Scenario)

虽然不同的Fabric彼此隔离,但设备本身可以同时加入多个Fabric。这种场景下,设备本质上在多个不同的信任域中工作,但它在每个Fabric中的通信是独立的。这是通过以下方式实现的:

  • 独立的信任关系:设备在每个Fabric中都有独立的凭证和加密密钥,因此即使设备属于多个Fabric,不同Fabric之间的数据流也不会互相影响或泄露。
  • 不同的控制器控制:在Multi-Fabric模式下,设备可以被多个控制器(属于不同的Fabric)控制。例如,设备可以被家里的本地控制器控制(家庭Fabric),同时也可以通过云端的控制器管理(云服务Fabric),但这两者互不影响。

示例场景

  • 一盏智能灯可以同时属于家庭的Fabric和办公室的Fabric。你可以通过家庭的控制器(比如智能手机)在家里控制它,但当你在办公室时,办公室的控制器也可以控制这盏灯。

Multi-Fabric模式下,一个设备会拥有多个凭证和加密密钥

设备加入多个Fabric的过程:

加入第一个Fabric

当设备首次加入一个Fabric时(如家庭Fabric),控制器会与设备进行通信,并通过设备配对的过程生成操作凭证和加密密钥。设备与控制器之间建立起安全通信的信任关系。

加入第二个Fabric

当设备加入第二个Fabric时(如办公室Fabric),它将与该Fabric的控制器重新进行认证,生成新的操作凭证加密密钥。这些凭证和密钥与之前在家庭Fabric中生成的凭证和密钥是完全独立的。

多Fabric同时存在

当设备同时属于多个Fabric时,它可以根据不同的需求在不同Fabric中进行操作。例如,当家庭控制器向设备发送指令时,设备使用家庭Fabric中的凭证和密钥进行通信;当办公室控制器发送指令时,它使用办公室Fabric的凭证和密钥进行通信。

节点在Fabric中的通信机制:

节点ID(Node ID)

    1. 每个设备在加入Fabric时,会获得一个唯一的节点ID(Node ID),这个ID在Fabric内是唯一的。节点ID用于标识Fabric中的每个设备。
    2. 当一个控制器或设备要与另一个设备通信时,它会使用目标设备的节点ID来定位它,而不是直接使用IP地址。这是Matter协议通信的基础寻址方式。

Fabric ID

    1. 每个Fabric有一个Fabric ID,标识该Fabric中的所有节点。Fabric ID加上节点ID可以唯一标识某个Fabric中的特定设备。
    2. 当设备或控制器在多Fabric环境下工作时,Fabric ID确保了设备知道自己要操作的目标是在哪个Fabric中,以避免混淆。

组播(Multicast)

    1. Matter协议支持使用组播来高效地向多个设备发送控制指令,尤其是在多设备同时响应某个命令的场景(例如群组控制灯光)。控制器可以向一组设备发送单一的组播消息,而不需要逐个设备发送。
    2. 设备通过其节点ID或组ID(Group ID)接收消息,然后决定是否对消息进行响应。组ID用于将多个设备分组,方便在相同类型设备之间进行批量操作。

服务发现(Service Discovery)

    1. Matter使用**mDNS(多播DNS)**来进行设备和服务的发现。通过mDNS,设备可以在网络中广播自己的存在,并提供它们的节点ID等信息。
    2. 当控制器想要找到特定的设备时,它可以通过mDNS来查找相应的节点ID。设备会在其网络范围内进行公告,使控制器知道哪些设备可以被控制。

路径计算和消息路由

    1. Matter协议基于IP网络(通常是IPv6),因此底层网络层仍然使用传统的IP地址来进行通信。设备和控制器之间的消息在传输时会被封装在IP层消息中,设备的IP地址在这个阶段仍然发挥作用。
    2. 尽管在传输过程中可能使用IP地址,但Matter协议主要通过节点ID进行设备间的寻址和控制,而不是直接使用IP地址作为逻辑目标。

目录服务(Directory Service)

    1. 在一些场景中,Matter可以使用目录服务来维持设备的注册信息。这种服务可以帮助控制器快速找到某个特定节点的设备和其关联的服务。这种服务通常用于较大规模的Matter网络中,帮助优化设备和服务发现。

寻址过程举例:

点对点控制
    1. 当一个控制器要控制特定设备时,它会根据设备的节点ID(以及可能的Fabric ID)发送指令。
    2. 控制器首先通过mDNS发现设备,并得到其节点ID和相关信息,然后通过设备的节点ID定位它。
    3. 消息通过Matter协议封装,并在底层网络中传输时使用设备的IP地址。目标设备接收消息后,解封并通过节点ID确认是否是自己的控制消息。
组控制
    1. 如果控制器想要控制多个设备(如一组灯光),则它可以使用组播,向拥有相同组ID的设备发送命令。所有设备都会接收到该命令,但只有与该组ID匹配的设备才会响应。
    2. 这大大提高了群组控制的效率,不需要每次都对每个设备单独发送消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迁移替换AD域时,有几个关键点需要注意

在当今的数字化时代,企业对于身份管理和访问控制的需求日益增长。然而,传统的AD域控方案在面对国产化替代和业务上云的趋势时,逐渐显露出一些局限性。宁盾国产化身份域管作为一种迁移替换AD域控的创新解决方案,正逐渐崭露头角&…

文心一言 VS 讯飞星火 VS chatgpt (341)-- 算法导论23.1 10题

十、给定图 G G G和 G G G的一棵最小生成树 T T T,假设减小了 T T T中一条边的权重。证明: T T T仍然是 G G G的一棵最小生成树。更形式化地,设 T T T为 G G G的一棵最小生成树, G G G的边权重由权重函数 w w w给出。选择一条边 (…

职称评审中,论文发表要求?

无论是医生、教师或其他等职业,职称评审无疑是一个非常重要的环节。而职称评审中的论文发表则是评定我们专业能力的重要一环,可如何才能让自己辛苦撰写的的论文被发表,达到论文发表都有哪些要求呢? 一、选题要新颖 编辑和审稿人…

VMware的三种网络模式及应用场景

在VMware中,虚拟机网络连接的方式主要有三种模式:桥接模式(Bridged Mode)、NAT模式(Network Address Translation Mode)、仅主机模式(Host-Only Mode)。每种模式都有其独特的用途和配…

SSM+Ajax实现广告系统

文章目录 1.案例需求2.编程思路3.案例源码(这里只给出新增部分的Handler和ajax部分,需要详情的可以私信我)4.小结 1.案例需求 使用SSMAjax实现广告系统,包括登录、查询所有、搜索、新增、删除、修改等功能,具体实现的效果图如下:…

『功能项目』状态模式转换场景【30】

本章项目成果展示 打开上一篇29Unity本地数据库读取进入游戏的项目, 本章要做的事情是通过状态者模式转换场景,在进入账号登陆界面前闪烁显示Logo 首先创建一个新的场景命名为StartUI 修改游戏场景名字 重命名为FightGame01 首先创建一个脚本文件夹&…

gazebo可能打不开的问题

如果经常遇到gazebo只能断网才能运行的时候,主要就是因为无法联网访问gazebo的在线模型库,此时我们一般无法在联网的情况下打开gazebo。 这个时候就直接将下载好的模型先放到~/.gazebo/models/文件夹下面即可: https://github.com/osrf/gazeb…

RTOS Sensor Framework对比

1.背景 传感器(Sensor)是物联网(IOT)的重要组成部分,用于感知和采集环境中的各种数据,大部分智能硬件都需要。 为使传感器能正常⼯作,驱动开发者需要开发不同的驱动程序,驱动程序要实现芯片寄存器\IO设置,又要响应使用…

搭建 canal 监控mysql数据到 elasticsearch 中(本机到远端sql)

搭建 canal 监控mysql数据到 elasticsearch 中(本机到远端sql) 需求: 要将 MySQL 数据库 info 中的 notice 和 result 表的增、删、改操作同步到 Elasticsearch 的 notice 和 result 索引,您需要正确配置 MySQL、Canal 、Canal Adapter 、 …

3--Web前端开发-前端工程化,vue项目

目录 端口配置 element 快速入门 table表格组件 分页组件 Dialog对话框组件 表单组件 端口配置 在vue.config.js中更改 源代码为 const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true })更改为 const { def…

Linux——redis主从复制、哨兵模式

一、redis 的安全加固: 对redis数据库访问的角度 auth // 验证登录redis 数据库的用户acl // 设置redis用户的权限将配置完成的ACL策略写入配置文件 config rewrite //目前redis生效的配置全部写入到默认配置文件的尾部写入到acl文件中,在加载配置文件时…

《论软件设计模式及其应用》通关范文,软考高级系统架构设计师

论文真题 设计模式(Design Pattern)是一套被反复使用的代码设计经验总结,代表了软件开发人员在软件开发过程中面临的一般问题的解决方案和最佳实践。使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性。现有的设计模式已经在前人的系统中…

每日一练:和为K的子数组

一、题目要求 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:n…

python深度学习:从注意力机制到生成模型,全面解析现代AI技术

近年来,伴随着以卷积神经网络(CNN)为代表的深度学习的快速发展,人工智能迈入了第三次发展浪潮,AI技术在各个领域中的应用越来越广泛。注意力机制、Transformer模型(BERT、GPT-1/2/3/3.5/4、DETR、ViT、Swin…

OpenCV结构分析与形状描述符(10)检测并提取轮廓函数findContours()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在二值图像中查找轮廓。 该函数使用算法 253从二值图像中检索轮廓。轮廓是有用的工具,可用于形状分析和对象检测与识别。参见 OpenC…

SDN架构详解

目录 1)经典的IP网络-分布式网络 2)经典网络面临的问题 3)SDN起源 4)OpenFlow基本概念 5)Flow Table简介 6)SDN的网络架构 7)华为SDN网络架构 8)传统网络 vs SDN 9&#xf…

网络安全与恶意攻击:如何应对?

引言 随着技术的发展,我们的生活越来越依赖于网络。但是,这也暴露了我们的系统对各种网络威胁的脆弱性。无论是个人还是企业,网络安全都成为了我们不能忽视的话题。 网络威胁的类型 网络威胁主要有以下几种: 网络钓鱼攻击&#…

linux学习--第四天

--linux文件操作 文件IO操作包括: (注:I:input(输入)O:output(输出)) open:打开 close:关闭 read:读取 write:…

c++一个数因子和(快速求解)

void 一个数因子和(int 整数) {//缘由https://ask.csdn.net/questions/1054457#answer_1251715int he 0, j 0; string a "";while (j < 整数)if (!(整数%j))he j, a to_string(j) "";cout << a << "的因子和&#xff1a;" …

如何在 Java 应用程序中定位高 CPU 使用率问题

文章目录 ♨ 前言♨ 提前准备♨ 线上定位♨ 结语 ♨ 前言 在运行 Java 应用程序的服务器上&#xff0c;高 CPU 使用率可能会影响应用程序的性能和稳定性。本文将介绍如何通过一系列步骤和工具来准确诊断和解决高 CPU 使用率问题&#xff0c;特别是针对 Java 环境下的应用程序。…