Matter 协议系列:发现
Commissionable 发现
Commissionable 发现发生在投入使用(未绑定)之前,指的是发现和识别Commissionable 节点的过程。有三种方法可以通过这些方法中的任何一种来 广播Commissionable 的节点:
-
蓝牙低功耗(BLE)
-
Wi-Fi Soft-AP
-
基于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。这是设备发现的常用方法:
-
Commissionee连接到以太网,因此可以物理访问未加密的网络介质。
-
Commissionee通过任何带外手段加入了Wi-Fi或Thread网络。
-
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。
相关文章:
Matter 协议系列:发现
Commissionable 发现 Commissionable 发现发生在投入使用(未绑定)之前,指的是发现和识别Commissionable 节点的过程。有三种方法可以通过这些方法中的任何一种来 广播Commissionable 的节点: 蓝牙低功耗(BLEÿ…...
Oracle 12c Docker镜像配置SSL
一、Docker运行Oracle 12c服务 a.拉取镜像 docker pull truevoly/oracle-12cb.运行 docker run -d -p 1521:1521 -p 2484:2484 -v /data/oracle/:/opt/oracle --name oracle_12c truevoly/oracle-12cc.查看日志 docker logs -f oracle_12cd.出现如下信息,则启动…...

版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码
目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码 3.1如何在Git代码托管平台等上创建一个仓库 3.2相关文章 4.ruby实现基础git 4.1.Git add 4.2 Git commit 4.3 Git log 1.Git是什么 Git是一个版本控制系统,它可以追踪文件的…...

uqrcode+uni-app 微信小程序生成二维码
使用微信小程序需要弹出动态二维码的需求,从插件市场选了一个下载次数较多的组件引入到项目中uqrcode,使用步骤如下: 1、从插件市场下载 插件地址:https://ext.dcloud.net.cn/plugin?id1287,若你是跟我一样是用uni-…...

从零开始的 MyBatis 拦截器之旅:实战经验分享
文章目录 MyBatis拦截器可以做什么?Mybatis核心对象介绍四大核心对象如何实现?接口讲解Interceptor接口intercept方法plugin方法setProperties 完整SQL打印拦截器实战拦截器实现拦截器注册 MyBatis拦截器可以做什么? MyBatis拦截器是MyBatis…...

网络编程day05(IO多路复用)
今日任务: TCP多路复用的客户端、服务端: 服务端代码: #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …...

人声分离网站,帮你快速提取视频中的人声和背景音乐
今天给大家带来一个可以分离人声的网站——音分轨,他运用人工智能算法可以将音频中的人声部分和音乐部分分离,使我们的视频制作过程可以更方便。 我们点击右下角“选择文件”上传一个音频,上传好音频后,人工智能就开始处理我们上传…...

计算机网络常见问题
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 1.1.为什么要分层? 在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流…...

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技
备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…...
无重复字符的最长子串 - 力扣(LeetCode)
3. 无重复字符的最长子串 - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长…...
企业行政许可的种类有哪些?
从行政许可的性质、功能和适用条件的角度来说,大体可以划分为五类:普通许可、特许、认可、核准、登记。 1.普通许可 普通许可是一种允许符合特定条件的相对方行使某种权利的行为。在许多情况下,需要普通许可的活动都与国家安全、公共安全息…...

Flink--4、DateStream API(执行环境、源算子、基本转换算子)
星光下的赶路人star的个人主页 注意力的集中,意象的孤立绝缘,便是美感的态度的最大特点 文章目录 1、DataStream API1.1 执行环境(Execution Environment)1.1.1 创建执行环境 1.2 执行模式(Execution Mode)…...

#循循渐进学51单片机#指针基础与1602液晶的初步认识#not.11
1、把本节课的指针相关内容,反复学习3到5遍,彻底弄懂指针是怎么回事,即使是死记硬背也要记住,等到后边用的时候可以实现顿悟。学会指针,就是突破了C语言的一道壁垒。 2,1602所有的指令功能都应用一遍&#…...

Lua学习笔记:探究package
前言 本篇在讲什么 理解Lua的package 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级…...

【面试经典150 | 双指针】三数之和
文章目录 写在前面Tag题目来源题目解读解题思路方法一:暴力枚举方法二:双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对…...
现代卷积网络实战系列3:PyTorch从零构建AlexNet训练MNIST数据集
1、AlexNet AlexNet提出了一下5点改进: 使用了Dropout,防止过拟合使用Relu作为激活函数,极大提高了特征提取效果使用MaxPooling池化进行特征降维,极大提高了特征提取效果首次使用GPU进行训练使用了LRN局部响应归一化(…...

Django系列:Django应用(app)的创建与配置
Django系列 Django应用(app)的创建与配置 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article…...
Linux查看程序和动态库依赖的动态库
一. 前言 在一些时候,我们需要知道一个程序或者动态库所依赖的动态库有哪些。比如,当我们运行一个程序的时候,发现可能会报错,提示找不到某个符号,这时我们就需要知道程序依赖了什么库,从而添加对应需要的动…...
vue3 无法使用pnpm安装依赖 或 Cannot find module preinstall.js
创建.npmrc文件在根目录 shamefully-hoisttrue auto-install-peerstrue strict-peer-dependenciesfalse删除 node_modules 和 pnpm-lock.yaml 文件 重新 pnpm i 就可以啦...

C/C++连接数据库,包含完整代码。
C/C连接数据库 本篇文章意在简洁明了的在linux环境下使用C/C连接远程数据库,并对数据库进行增删查改等操作。我所使用的环境是centos7,不要环境除环境配置外,代码是大同小异的。完整代码在最底部!!! 1.前…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...