Matter 协议系列:发现

2023-09-22 13:56:09

Commissionable 发现

Commissionable 发现发生在投入使用(未绑定)之前,指的是发现和识别Commissionable 节点的过程。有三种方法可以通过这些方法中的任何一种来 广播Commissionable 的节点:

  1. 蓝牙低功耗(BLE)

  2. Wi-Fi Soft-AP

  3. 基于IP的网络上的DNS-SD,也称为现有的IP传输网络

无论使用哪种方法,Commissionable 的节点都会以表格1中所示的信息进行广播。

表1:Commissionable 节点的广播

字段 长度bit 是否必需

Discriminator 识别码 12位 是

Vendor ID 供应商ID 16位 否

Product ID 产品ID 16位 否

Extended data 扩展数据 可变 否

根据Matter规范,供应商ID和产品ID不是必需的,但可以包含在内。识别码是强制性的,在投入使用过程中是关键的,以便在同时连接多个相同设备时正确配置设备。扩展数据可以用来编码自定义的供应商特定信息。

许多设备在通电后会短暂广播一段时间(约3-15分钟)。其他设备不会开始广播,要么是因为它们的主要控制不起源于fabric,要么是因为自动未进行授权的设备(如锁)的广播不安全。

蓝牙低功耗

在这种广播模式下,Commissioner将看到BLE广播。

  • Commissionee必须实现通用访问配置文件(GAP)外围接口,并定期广播其未投入使用(未绑定)状态。

  • 在设备打开后的前30秒内,广播频率必须很高,间隔为20到60毫秒。

  • 30秒后,设备必须以低频率广播,间隔为150到1500毫秒。当将设备投入到其第一个fabric时,设备必须停止其BLE广播。

  • Commissioner不需要发出扫描请求。它应该在三个BLE广播频道上进行被动扫描:37(2402 MHz)、38(2426 MHz)和39(2480 MHz)。这些通道是从频谱中的区域选择的,与Wi-Fi通道的重叠最小,从而最小化跨无线电的干扰。

BLE不用于Operational发现。

Wi-Fi Soft-AP

在使用Wi-Fi Soft-AP时,通过自组织Soft-AP(soft AP)网络发现Commissionee。网络的SSID(网络名称)采用以下形式:MATTER-ddd-vvvv-pppp,其中:

  • ddd是十六进制的12位识别码。

  • vvvv是十六进制的16位供应商ID。

  • pppp是十六进制的16位产品ID。

当Commissioner连接到Commissionee时,两者都将配置唯一的IPv6链路本地地址,从而在Wi-Fi层进行连接。在这一点上,发现将与下一部分中涵盖的DNS-SD方法的情况相同地继续。

此外,Wi-Fi Soft-AP可以实现IPv4的DHCP和信息元素(IE)来公开供应商特定的附加信息。IE是802.11(Wi-Fi)管理帧中的可变长度字段,允许将自定义信息传递给其他系统。

在Commissioner扫描时,应优选Wi-Fi信道1、6和11,但必须扫描本地频谱规定允许的所有信道。

注意: Matter SDK的1.0版本中没有实现Wi-Fi Soft-AP,因此目前没有设备使用这种广播方法。

DNS-SD

在这种情况下,通过其域名服务 - 服务发现(DNS-SD)广播来发现Commissionee,其中包含有关节点提供的服务的信息。有关DNS-SD的更多信息,请参阅RFC 6762。这是设备发现的常用方法:

  1. Commissionee连接到以太网,因此可以物理访问未加密的网络介质。

  2. Commissionee通过任何带外手段加入了Wi-Fi或Thread网络。

  3. Commissionee 已经被 Commission 到另一个fabric,并且已经加入了Wi-Fi/Thread网络。在这种情况下,Commissionee不能使用BLE广播或创建Soft AP。因此,所有的辅助网络都通过这种方法进行配置。

Thread设备不直接使用DNS-SD,而是使用由Thread边界路由器提供的代理方法。这种方法由DNS-SD服务注册协议及其广播代理定义。Thread设备通常在Thread Border Router提供的SRP服务中注册自己。该服务代表每个已注册的Thread节点处理mDNS流量,而无需由这些协议生成的附加流量负担Thread网络。

设备发现的DNS-SD实例名称是_matterc._udp,主机名是由48位 MAC地址或 64位MAC扩展地址构建的,表示为十六进制字符串,例如A5F15790B0D15F32.local。

在发现之后,AAAA记录中返回IPv6地址,并在DNS-SD TXT记录中返回键/值对。键/值对包含信息,例如识别码、供应商ID和产品ID。该节点还广播已绑定设备的子类型,从而可以过滤结果,仅查找与特定属性匹配的Commissionees。

Operational 发现

Operational发现是发现和识别已经被绑定入网的节点的过程。Operational发现仅通过基于IP的DNS-SD方法进行。节点实例名称将由64位压缩的fabricID和64位节点ID组成。这些十六进制的ID会与连字符连接,例如2906C908D115D362-8FC7772401CD0696.local。Operational发现与DNS-SD设备发现共享相同的目标主机名。

DNS-SD服务类型是_matter._tcp。尽管使用了_tcp命名,但设备可能会使用其他传输,如UDP。

更多推荐

C# net core中的过滤器(Filter)使用及跳过过滤器

过滤器(Filters)是用于在ASP.NETCore应用程序中执行全局或局部的操作的组件。这些过滤器可以用于处理请求前、请求后、异常处理等不同的阶段。以下是.NET5中常用的一些过滤器类型:在ASP.NETCore中,过滤器是一种可以在特定的阶段处理请求的方法。它们在一个action方法执行之前或之后运行,可以用来处

yarn的资源优化的调整参数

yarn的资源优化的调整参数官网:https://hadoop.apache.org/docs/r3.3.6/hadoop-yarn/hadoop-yarn-common/yarn-default.xml没事多看官网哈yarn.nodemanager.resource.memory-mb:用于设置NodeManager

解释什么是分布式数据库,列举几种常见的分布式数据库系统

1、什么是敏感信息和隐私保护?解释隐私保护的技术手段。敏感信息和隐私保护是指在收集、存储和使用个人数据时,需要采取一系列措施来保护这些数据的安全和机密性,防止数据被未经授权的第三方访问、使用或泄露。这些措施包括加密、访问控制、数据脱敏、数据加密、隐私政策等。在隐私保护的技术手段方面,常用的技术包括加密和访问控制。加密技

mysql自动删除过期的binlog

一、binlog_expire_logs_seconds配置项mysql8.0使用配置项binlog_expire_logs_seconds设置binlog过期时间,单位为秒。mysql旧版本使用配置项expire_logs_days设置binlog过期时间,单位为天,不方便测试。在8.0使用expire_logs_d

OPTEE Benchmark框架

安全之安全(security²)博客目录导读OPTEE调试技术汇总目录一、序言二、Benchmark框架三、Benchmark实现细节1、设计概况2、时间戳源3、调用时序图4、添加自定义时间戳5、构建并运行Benchmark6、限制和进一步措施一、序言本节中描述的特性依赖于上游不可用的Linuxkernelpatch,

conda手动下载虚拟环境中的包

一.下载导入tar安装包1.准备安装包安装包可从官网下载,或直接拷贝已有虚拟环境中的包【补充】关于虚拟环境中包的存储路径打开cmd,输入condaconfig--show查看pkgs_dirs属性的值C:\Users\XXX>condaconfig--showpkgs_dirs:-D:\program\anaconda

PostgreSQL 事务&并发&锁

文章目录PostgreSQL事务大家都知道的ACID事务的基本使用保存点PostgreSQL并发并发问题MVCCPostgreSQL锁机制表锁行锁总结PostgreSQL事务大家都知道的ACID在日常操作中,对于一组相关操作,通常要求要么都成功,要么都失败。在关系型数据库中,称这一组操作为事务。为了保证整体事务的安全性

软件设计模式系列之十二——外观模式

在软件设计中,经常会遇到需要与复杂子系统进行交互的情况。为了简化客户端与子系统之间的交互,提高系统的可维护性和可用性,外观模式应运而生。外观模式(FacadePattern)是一种结构型设计模式,它提供一个统一的界面,用于访问系统中的一组相关接口,从而隐藏了系统的复杂性。在本文中,我们将深入探讨外观模式,包括其定义、举

员工犯错,就应该受惩罚吗?

先说结论,惩罚肯定是不能有的。我们应该指导员工减少犯错的概率。在项目开发过程中,总会遇到项目成员犯错的场景。根据所犯错误是否具有共性特征,我把问题归为二类,不同类型的错误,采取不同的应对措施。第一类:有共性的问题。第二类:没有共性的问题。共性的定义:一个人多次或者多个人都犯过的错误。第一类:有共性的问题。对于有共性的问

vue3 - 使用reactive定义响应式数据进行赋值时,视图没有改变,值已经改变的解决方案

问题:在Vue3.0中我们使用reactive()定义的响应式数据的时候,当是一个数组或对象时,我们直接进行赋值,发现数据已经修改成功,但是页⾯并没有自动渲染成最新的数据;这是为什么呢?就如同官网所说的reactive存在一些局限性:(官方的描述)原因:原因就是reactive函数会返回一个Proxy包装的对象,所以当

网络安全深入学习第六课——热门框架漏洞(RCE— Weblogic反序列化漏洞)

文章目录一、Weblogic介绍二、Weblogic反序列化漏洞历史三、Weblogic框架特征1、404界面2、登录界面四、weblogic常用弱口令账号密码五、Weblogic漏洞介绍六、Weblogic漏洞手工复现1、获取账号密码,这是一个任意文件读取的漏洞1)读取SerializedSystemIni.dat文

热文推荐