当前位置: 首页 > news >正文

802.11s Mesh 组网框架流程

协议标准

使用 802.11s (标准 Mesh 协议)

基础流程框架

在这里插入图片描述

  • 连接流程本质:Beacon → Peer Link → HWMP 路径发现 → 数据传输。
  • mesh与easymesh的区别
    在这里插入图片描述

阶段详解

阶段1:Beacon广播
  • 作用:周期性宣告Mesh网络存在,同步参数(如Mesh ID、信道)。
  • 关键字段:SSID/Wildcard: 包含Mesh ID(如 my-mesh)、Mesh Capability:
  • 特点
    无需应答,默认间隔
    双方独立广播,无先后顺序。
    在这里插入图片描述
阶段2: Peer Link建立
  • 交互流程
    节点A → 节点B: 发送 Peer Link Open,携带本地生成的 Local Link ID=123。
    在这里插入图片描述
    节点B → 节点A: 回复 Peer Link Confirm,携带匹配的 Peer Link ID=123。
    在这里插入图片描述
  • 必要条件
    双方认证协议一致(如 Authentication Protocol: 0x00 开放认证)。
    信号质量达标(可通过 iw station dump 检查RSSI)。
阶段3: HWMP路径发现
  • 作用:在双节点直连场景中,HWMP路径发现可能被优化跳过(因Peer Link已建立直连路径)。
  • 若触发:
    PREQ: 节点A广播路径请求(目标=节点B)。
    在这里插入图片描述
    PREP: 节点B单播回复,确认直连路径(跳数=1,METRIC基于信号质量)。
    在这里插入图片描述
阶段4: 数据传输
  • 帧结构:
    如果有帧转发,数据包通过 Mesh Header 封装,包含源/目的MAC和路径信息。
    如果只有两个节点,则无Mesh Header 封装。
  • 特点:
    直连通信无需中继,数据帧直接发送。
    若启用加密,数据帧会被加密。

HWMP协议

  • HWMP(Hybrid Wireless Mesh Protocol,混合无线Mesh协议)是 IEEE 802.11s标准中定义的路由协议,负责在Mesh网络中动态发现路径、维护拓扑和转发数据。HWMP是802.11s的“大脑”,通过控制报文动态管理Mesh路由。
HWMP的核心作用
  • 路径发现:通过交换控制报文,找到源节点到目标节点的最优路径。
  • 路径维护:监控链路质量,在节点移动或信号变化时重新计算路径。
  • 多跳转发:支持数据包通过中间节点中继传输
HWMP报文类型

HWMP通过以下几种控制报文实现功能:

  • PREQ (Path Request) 广播发起路径请求,询问到目标节点的路径(路由请求)
  • PREP (Path Reply) 目标节点或中间节点回复路径信息 (路由回复)
  • PERR (Path Error) 通知其他节点某条路径失效 (路由错误)
  • RANN (Root Announce) 根节点(如有)周期性广播自己的存在,简化路径发现 类似广播信标
HWMP工作流程示例(多节点情况下的流程)

在这里插入图片描述

  • 场景:节点A想发送数据给节点D,但无直接路径。
  • PREQ广播:
    节点A广播PREQ报文,询问到D的路径。
    中间节点(B、C)记录A的路径信息,并转发PREQ。
  • PREP回复:
    节点D收到PREQ后,沿反向路径(D→C→B→A)单播PREP。
  • 路径建立:
    各节点更新路由表,后续数据包按此路径转发。

mesh 组网

硬件设备
  1. 两个TP link WN722N v1版本
    查看是否支持mesh point:iw list | grep -A 15 “Supported interface modes”
    在这里插入图片描述

  2. 关闭 NetworkManager 和 wpa_supplicant(可能占用网卡)
    sudo systemctl stop NetworkManager wpa_supplicant
    在这里插入图片描述

  3. 接口确认
    在这里插入图片描述

  4. 创建 Mesh 接口
    sudo ip link set wlx0c826806f70a down
    sudo iw dev wlx0c826806f70a interface add mesh0 type mp
    在这里插入图片描述
    新建了一个mesh网口 rename6

  5. 启动 mesh0 接口
    sudo ip link set rename6 up
    在这里插入图片描述

  6. 加入 Mesh 网络
    设置相同的 Mesh ID 和信道(例如信道6,2437 MHz)
    sudo iw dev rename6 mesh join my-mesh freq 2437

  7. 分配 IP 地址
    sudo ip addr add 192.168.100.2/24 dev rename6
    在另一台设备上重复操作
    使用相同的 Mesh ID (my-mesh) 和 频率 (2437 MHz)。
    分配不同 IP,如 192.168.100.1/24。
    在这里插入图片描述

  8. 验证 Mesh 连接连通性
    在这里插入图片描述

  9. 离开当前 Mesh 网络
    sudo iw dev wlx0c826806f70a mesh leave
    在这里插入图片描述

  10. 删除创建的 mesh0 接口(如果存在)
    sudo iw dev rename6 del

  11. 将接口恢复为默认管理模式
    sudo ip link set wlx0c826806f70a down
    sudo iw dev wlx0c826806f70a set type managed
    sudo ip link set wlx0c826806f70a up

  12. 重启 NetworkManager 和 wpa_supplicant
    sudo systemctl restart NetworkManager wpa_supplicant

  13. 检查接口模式
    iw dev wlx0c826806f70a info
    确认接口已恢复为 managed 模式
    输出应显示:type managed
    在这里插入图片描述

信息查看

  • 查看邻居节点
    sudo iw dev rename6 station dump
    在这里插入图片描述
    如果输出为空,说明节点间未建立连接。
  • 检查当前 Mesh 配置
    iw dev mesh0 info
    在这里插入图片描述
  • 查看 Mesh 路径
    sudo iw dev rename6 mpath dump
    在这里插入图片描述

连接流程只需要一对Peer Link Open帧和Peer Link Confirm帧吗?

  • 在802.11s Mesh网络中,Peer Link的建立确实需要一对交互帧(Open + Confirm),也是最小交互单元

从抓包看到,两个mesh的设备,都发了Peer Link Open 帧和Peer Link Confirm 帧,连接的必要条件是什么?

  • 正常重传机制:无线环境不稳定时,协议可能重传Open/Confirm帧以确保可靠性,同一对节点间可能出现多组Open/Confirm,但Local Link ID相同
  • 若两个节点 发起Open,可能短暂形成双向Open/Confirm,最终会收敛为单条Peer Link(通过Link ID)

相关文章:

802.11s Mesh 组网框架流程

协议标准 使用 802.11s (标准 Mesh 协议) 基础流程框架 连接流程本质:Beacon → Peer Link → HWMP 路径发现 → 数据传输。mesh与easymesh的区别 阶段详解 阶段1:Beacon广播 作用:周期性宣告Mesh网络存在,同步参数(如Mesh …...

gitcode 上传文件报错文件太大has exceeded the limited size (10 MiB) in commit

登陆gitcoe,在项目设置->提交设置 ,勾选提交文件限制,修改限制的大小。 修改完后,重新提交代码。...

C++代码随想录刷题知识分享-----判断两个字符串是否为字母异位词(Anagram)【LeetCode 242】

✨ 题目描述 给定两个字符串 s 和 t,请判断 t 是否是 s 的字母异位词。 📌 示例 1: 输入:s "anagram", t "nagaram" 输出:true📌 示例 2: 输入:s "…...

Canal mysql to mysql 增加 online 库同步配置指南

Canal 增加新库 online 的配置指南 1. 停止 Canal Adapter 服务 ./bin/stop.sh2. 数据库备份与导入 备份源数据库 mysqldump -h 127.0.0.1 -P 3307 --single-transaction -uroot -p -B online > online.sql导入到目标数据库 mysql -h 127.0.0.1 -P 3308 -uroot -p <…...

Spring MVC中Controller是如何把数据传递给View的?

在 Spring MVC 中&#xff0c;Controller 负责请求的处理&#xff0c;准备需要展示的数据&#xff0c;并将这些数据传递给 View&#xff0c;由 View 负责最终的页面渲染。数据从 Controller 传递到 View 主要通过模型 (Model) 实现。 Spring MVC 提供了以下几种方式让 Control…...

FAST-LIO笔记

1.FAST-LIO FAST-LIO 是一个计算效率高、鲁棒性强的激光-惯性里程计系统。该系统通过紧耦合的迭代扩展卡尔曼滤波器&#xff08;IEKF&#xff09;将激光雷达特征点与IMU数据进行融合&#xff0c;使其在快速运动、噪声较大或环境复杂、存在退化的情况下仍能实现稳定的导航。 1…...

挑战用豆包教我学Java01天

今天是豆包教我学Java的第一天&#xff0c;废话不多说直接开始。 1.每日题目&#xff1a; 基础语法与数据类型 题目&#xff1a;编写一个 Java 程序&#xff0c;从控制台读取两个整数&#xff0c;然后计算它们的和、差、积、商&#xff0c;并输出结果。题目&#xff1a;编写…...

基于RT-Thread的STM32G4开发第二讲第二篇——ADC

文章目录 前言一、RT-Thread工程创建二、ADC工程创建三、ADC功能实现1.ADC.c2.ADC.h3.mian.c 四、效果展示和工程分享总结 前言 本文使用的是RT-Thread最新的驱动5.1.0&#xff0c;兼容下面的所有驱动。使用的开发板是蓝桥杯嵌入式国信长安的开发板&#xff0c;MCU是STM32G431…...

居民健康监测小程序|基于微信小程序的居民健康监测小程序设计与实现(源码+数据库+文档)

居民健康监测小程序 目录 基于微信小程序的居民健康监测小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、健康科普管理 5.3公告类型管理 3、论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 …...

电商双11美妆数据分析

图中展示的是在Jupyter Notebook环境下的Python代码及运行结果。代码利用 seaborn 和 matplotlib 库&#xff0c;以 datal 数据集为基础&#xff0c;绘制上下两个子图。上方子图呈现各店铺中各大类的销售量&#xff0c;下方子图展示各店铺中各大类的销售额&#xff0c;通过条形…...

Spark-Core(双Value类型)

一、RDD转换算子&#xff08;双Value类型&#xff09; 1、intersection 函数签名&#xff1a; def intersection(other: RDD[T]): RDD[T] 函数说明&#xff1a;对源 RDD 和参数 RDD 求交集后返回一个新的 RDD 举栗&#xff1a; val dataRDD1 sparkContext.makeRDD(List(…...

【数据库原理及安全实验】实验六 角色访问控制

指导书原文 安全性管理二 【实验目的】 1) 通过语句设置登录用户的权限&#xff0c;实现对不同用户的操作权限的限定。 【实验原理】 1) 定义数据库角色&#xff0c;授予该角色特定权限&#xff0c;建立不同的用户将其置入不同的角色之下&#xff0c;即等于分配了该用户不…...

windows安装micromamba

windows安装 winget install Mamba.Micromamba Set-ExecutionPolicy RemoteSigned micromamba activate 第一次运行会报错&#xff0c;把报错中间那一句init代码跑一下 创建环境什么的和conda一样 把conda换成micromamba就行 绑定快捷键&#xff0c;winget安装&#x…...

vue-quill-editor的失焦事件

vue-quill-editor的用法再此就不再赘述了&#xff0c;只记录我在使用过程中踩的坑。 版本&#xff1a;Vue2 vue-quill-editor3.0.6 封装组件&#xff1a; <vue-quill-editorclass"editor":class"dynamicClasses"ref"myTextEditor"v-model&quo…...

【工具变量】最新华证ESG评级得分数据-含xlsx及dta格式(2009-2024.12)

参考《经济研究》中方先明&#xff08;2023&#xff09;的做法&#xff0c;将华证ESG评级进行赋值&#xff0c;指标包含C、CC、CCC、B、BB、BBB、A、AA、AAA共9个等级&#xff0c;将上市公司ESG等级从低到高分别赋值为1至9。将华证ESG评级得分数据更新至2024年12月31日&#xf…...

【纯小白博客搭建】Hugo+Github博客部署及主题(stack)美化等界面优化记录

这里写目录标题 HugoGithub博客部署及主题&#xff08;stack&#xff09;美化等界面优化写在前面hugo博客搭建教程第一种方案第二种方案 添加浏览量和统计字数添加评论功能添加访客地图 HugoGithub博客部署及主题&#xff08;stack&#xff09;美化等界面优化 效果图如下 如果…...

题解:CF2107E Ain and Apple Tree

首先考虑无解的情况。 当这棵树为一条链时&#xff0c;答案取到最大值。证明很简单&#xff0c;假设存在一个节点 u u u 至少有 2 2 2 个孩子节点&#xff0c;任取两个 v 1 , v 2 v_1,v_2 v1​,v2​&#xff0c;则 dep ( LCA ⁡ ( v 1 , v 2 ) ) dep ( u ) \text{dep}(\o…...

STM32的看门狗

独立看门狗&#xff08;IWDG&#xff09; IWDG简介 独立看门狗&#xff08;Independent Watchdog&#xff0c;通常缩写为IWDG&#xff09;主要作用是主要用于检测外界电磁干扰&#xff0c;或硬件异常导致的程序跑飞问题。 WDG本质上是一个12位的递减计数器&#xff08;滴答定…...

小王包子铺的融资过程以及IPO上市过程

用包子铺来打个通俗易懂的比喻&#xff0c;一步步讲清楚从创业到融资上市的全过程。 &#x1f95f; 故事背景&#xff1a;老王的包子铺 老王做的包子特别好吃&#xff0c;于是他决定不再只是摆摊&#xff0c;而是创办一家叫 “老王包子铺” 的连锁店。我们就以老王创业为线索&…...

WPF 触发器 Trigger

触发器 Trigger 触发器&#xff08;Trigger&#xff09;是 WPF 中的一种机制&#xff1a; 当某个条件满足时&#xff0c;自动改变控件的某些属性&#xff0c;比如颜色、大小、透明度等。 换句话说&#xff0c;就是"如果……那么就……" 的一种规则。 常见触发器类…...

CentOS算法部署

CentOS服务部署 第一章 启动两个算法服务第一步&#xff1a;上传算法文件第二步&#xff1a;安装 tmux第三步&#xff1a;启动服务&#xff08;1&#xff09; 启动第一个算法服务&#xff08;2&#xff09; 启动第二个算法服务 第四步&#xff1a;关闭防火墙 第一章 启动两个算…...

极狐GitLab 命名空间的类型有哪些?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 命名空间 命名空间在极狐GitLab 中组织项目。因为每一个命名空间都是单独的&#xff0c;您可以在多个命名空间中使用相同的项…...

使用 Apache POI 生成包含文本和图片的 Word 文档

一、概述 在实际开发场景中&#xff0c;我们经常需要自动生成包含文本和图片的 Word 文档。本示例借助 Apache POI 库&#xff0c;实现了向 Word 文档中插入文本和图片的功能。代码会循环插入多次文本和同一张图片&#xff0c;并且对图片进行等比缩放处理&#xff0c;以保证图片…...

Eclipse通过Tomcat启动web项目报错

错误内容&#xff1a;Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext。 本来运行的好好的&#xff0c;执行了Maven->Update Porject后就报上面的错。 通过检查发现&#xff0c;执行上面的命令后会将下面截图中的maven depen…...

5.7线性动态规划1

P2285 [HNOI2004] 打鼹鼠 #include<bits/stdc.h> using namespace std; struct node{int x, y, t; }a[100010]; int dp[100010]; void solve(){int n, m; cin >> n >> m;for(int i 1; i < m; i){cin >> a[i].t >> a[i].x >> a[i].y;}…...

Word如何制作三线表格

1.需求 将像这样的表格整理成论文中需要的三线表格。 2.直观流程 选中表格 --> 表格属性中的边框与底纹B --> 在设置中选择无&#xff08;重置表格&#xff09;–> 确定 --> 选择第一行&#xff08;其实是将第一行看成独立表格了&#xff0c;为了设置中线&…...

【Mybatis-plus常用语法】

MyBatis-Plus 是 MyBatis 的增强工具&#xff0c;提供了很多便捷的功能来简化开发。以下是一些 MyBatis-Plus 的常见语法&#xff1a; 实体类注解&#xff1a;使用 TableName 注解来指定实体类和数据库表的映射关系。 TableName("user") public class User {privat…...

16.Excel:数据收集

一 使用在线协作工具 简道云。 excel的在线表格协作在国内无法使用&#xff0c;而数据采集最需要在线协作。 二 使用 excel 1.制作表格 在使用excel进行数据采集的时候&#xff0c;会制作表头给填写人&#xff0c;最好还制作一个示例。 1.输入提示 当点击某个单元格的时候&am…...

基于Django框架开发的企业级IT资产管理系统

CMDB 资产管理系统 资产管理系统是一个基于Django框架开发的企业级IT资产管理平台&#xff0c;专注于数据中心和IT设备的全生命周期管理。该系统提供了完整的资产管理功能&#xff0c;包括设备管理、数据中心管理、用户权限管理等核心功能。 项目截图 技术栈 后端 Python 3…...

Redis 集群版本升级指南:从 Redis 7 升级到 Redis 8

Redis 集群升级主要有两种方案&#xff1a; 1、在线滚动升级&#xff08;无需停机&#xff09; 2、停机升级&#xff08;需停止服务&#xff09; 一、准备工作 1. 下载 Redis 8 安装包 # Redis 8.0.0 示例&#xff08;请替换为实际版本&#xff09; http://download.redis.io…...

使用 Couchbase Analytics Service 的典型步骤

下面是使用 Couchbase Analytics Service 的典型步骤&#xff0c;包括部署、配置、创建数据集、运行查询以及监控优化等环节。 首先&#xff0c;您需要安装并启用 Analytics 服务&#xff1b;然后将节点加入集群并重平衡&#xff1b;接着在 Analytics 中映射数据服务的集合&am…...

C++ stl中的vector的相关用法 迭代器失效问题

文章目录 vector的介绍及使用vector的定义 vector的空间相关问题vector的迭代器的使用vector的增删查改vector迭代器失效问题 vector的介绍及使用 1、vector是用于表示可变大小数组的序列容器。 2、vector就像数组一样&#xff0c;采用的是连续的空间来存储元素&#xff0c;也…...

【Redis】哨兵机制和集群

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 一、哨兵机制 Redis的主从复制模式下&#xff0c;一旦主节点由于故障不能提供服务&#xff0c;需要人工的进行主从切换&#xff0c;同时需要大量的客户端需要被通知切换到…...

uni-app 引入vconsole web端正常,安卓端报错 Cannot read property ‘sendBeacon‘ of undefined

reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: Cannot read property sendBeacon of undefined vconsole 只支持 web 端&#xff0c;…...

数据管道的解耦艺术:Dagster I/O管理器实现存储与逻辑分离

在现代数据工程中&#xff0c;高效管理数据的读写逻辑是构建可维护管道的关键。Dagster的**I/O管理器&#xff08;I/O Managers&#xff09;**通过分离数据处理与数据存储逻辑&#xff0c;显著提升了代码的可复用性和灵活性。本文将深入解析其核心概念、应用场景及实战示例。 一…...

shell脚本--2

1、实时监控cpu、内存的shell脚本 #!/bin/bash# 获取当前时间 DATE$(date "%Y-%m-%d %H:%M:%S")# 获取CPU使用情况 CPU_USAGE$(top -b -n1 | grep "Cpu(s)" | awk {print $2 $4})# 获取内存使用情况 MEMORY_USAGE$(free | grep Mem | awk {print $3/$2 *…...

jenkins配置多nexus仓库多maven版本

jenkins多环境多nexus仓库&#xff0c;多maven版本 使用优化&#xff0c;jenkins多环境多nexus仓库&#xff0c;多maven版本 1、多settings.xml设置构建 背景&#xff1a;jenkins本地安装一个maven版本&#xff0c;默认只有一个settings.xml文件指定本地和远端nexus仓库&#x…...

Linux理解文件fd

先来段代码回顾C文件接口 myfile.c写文件 #include <stdio.h>int main() {FILE *fp fopen("log.txt","a");if(NULL fp){perror("fopen");return 1;}fprintf(fp,"helloWorld,%d,%s,%lf\n",10,"lsf",3.14);fclose(fp)…...

【Python】os模块

os 模块是 Python 标准库中用于与操作系统交互的核心模块&#xff0c;提供了许多操作文件和目 录的函数。 1. 基本介绍 os 模块提供了以下主要功能&#xff1a; 文件和目录操作路径操作进程管理环境变量访问 import os2. 常用功能分类 2.1 文件和目录操作 函数/方法描述o…...

2025 Mac常用软件安装配置

1、homebrew 2、jdk 使用brew安装jdk&#xff1a; 配置环境变量&#xff1a; 3、maven 使用brew安装maven&#xff1a; 配置环境变量&#xff1a; 4、光标平滑移动 5、鼠标滚轮调整 mos 6、常用的终端工具 tabby 7、软件卸载 腾讯柠檬&#xff1a;https://lemon.qq.com/ 8、…...

PyQt5 实现自定义滑块,效果还不错

最近,黄老师闲来无事,需要做一个 播放器的滑块,但是Qt官方的长这个样子,不太好看 于是我自己写了一个,效果还不错,请看下面的效果图: 功能可以点击,可以拖拽改变进度,和播放器的进度条一样 源码如下: 需要的自取 import sys from PyQt5.QtWidgets import QApplicat…...

如何在ENVI Classic 和 ENVI中进行波段合成

示例使用Landsat的三个波段进行合成为示例&#xff0c;合成后展示为假彩色。 对应关系为&#xff1a; Red -- b4&#xff08;近红外 near-infrared&#xff09;NIR Green -- b3 &#xff08;红光 Red&#xff09; Blue -- b2 &#xff08;绿光 Green&#xff09; 一、ENVI…...

协方差与皮尔逊相关系数:从定义到应用的全面解析

目录 一、协方差与皮尔逊相关系数的定义1.1 协方差&#xff08;Covariance&#xff09;1.2 皮尔逊相关系数&#xff08;Pearson Correlation Coefficient&#xff09; 二、协方差的定义与推导逻辑2.1 核心目标&#xff1a;衡量变量的“协同变化”2.2 数学表达的直观性2.3 从线性…...

ICML 2025录取率公布,spotlight posters仅占2.6%

近日&#xff0c;ICML 2025公布了论文录用结果。本次大会共收到 12,107篇有效论文投稿&#xff0c;比去年增加了28%&#xff0c;今年录取论文3,260篇&#xff0c;录取率为 26.9%。其中仅有313篇被列为“焦点海报”&#xff08;即所有投稿中排名前2.6%的论文&#xff09;&#x…...

kotlin一个函数返回多个值

一、主要实现方式 1. Pair/Triple 元组 用途&#xff1a;临时快速返回 2 或 3 个简单值&#xff0c;适用于简单场景语法&#xff1a; fun getStatus(): Pair<Int, String> {return Pair(200, "Success") // 等价于 200 to "Success" }// 解构接收 …...

Clojure 学习笔记

Clojure哲学 1.又一种Lisp&#xff1f; 优美、灵活、代码即数据。 实现一门程序设计语言&#xff0c;代码同数据一般对待&#xff0c;这需要语言本身具有非常强的可塑性。当语言就是以这种本质的数据结构表现时&#xff0c;语言本身就可以操作自己的结构和行为了。 2.函数式编…...

5.7 react 路由

react 状态管理库 14:20 react 路由&#xff08;补充&#xff09; 数据路由 路由hooks 路由跳转 &#xff08;方法 标签/内置方法&#xff09; 获取路由地址栏信息 动态路由实现&#xff08;多角色权限路由&#xff09; redux redux-toolkit 状态管理 antd 组件使用 1.…...

8. HTML 表单基础

表单是网页开发中与用户交互的核心组件&#xff0c;用于收集、验证和提交用户输入的数据。本文将基于提供的代码素材&#xff0c;系统讲解 HTML 表单的核心概念、常用控件及最佳实践。 一、表单的基本结构 一个完整的 HTML 表单由以下部分组成&#xff1a; <form action&q…...

遥感数据处理、机器学习建模与空间预测的全流程指南——涵盖R语言(随机森林、XGBoost、SVM等)、特征提取、模型优化及生态学案例分析

随机森林是一种强大的集成学习方法&#xff0c;特别适用于复杂的遥感数据分析。它通过构建多棵决策树并引入随机性&#xff0c;有效降低模型的方差和过拟合风险。在训练过程中&#xff0c;随机森林利用Bootstrap抽样生成多样化的训练集&#xff0c;并在节点分裂时随机选择特征子…...

Android 数据持久化之数据库存储 Room 框架

一、简介 Room 是 Google 推出的 Android 持久层框架&#xff0c;建立在 SQLite 之上&#xff0c;提供了一个抽象层&#xff0c;简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。 Room 主要由以下三个组件组成&#xff1a; Entity&#xff08;实体&#x…...