wifi一键配网smartconfig原理及应用

2023-10-27

https://blog.csdn.net/flyingcys/article/details/49283273

智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互.

智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连接路由问题;

目前流行的wifi配置模式一般有以下2:

1:智能硬件处于AP模式,手机用于station模式,手机连接智能插座的AP后组成局域网,手机发送需要连接路由的SSID及密码至智能插座,智能硬件主动去连接指定路由后,完成连接

2:一键配置(smartconfig)模式:智能硬件处于混杂模式下,监听网络中的所有报文;手机APPSSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接

以上两种方式都可以达到让智能硬件连接至指定路由的效果,但是AP模式需要手动切换手机wifi连接的网络,先连接智能硬件的AP网络,配置完成后再恢复连接正常wifi网络.有一定的复杂性;

但是smartconfig由于路由器品牌及手机品牌众多,存在一定的兼容性问题,所以目前一般厂家仍保留AP模式,作为smartconfig失败后的备用配网方案;

下面重点讲解一下一键配置模式原理及应用;当前主流IOTwifi方案有:

 

厂商

芯片方案

技术名称

发包方式

1

TI 

CC3200

SmartConfig

往某一固定IPudp

2

高通

QCA4004/QCA4002

SmartConnection

 

3

联发科MTK

MTK7681

SmartConnection

组播地址编码

4

MARVELL

MC200+8801/MW300

EasyConnect

组播地址编码

5

Reltek

AMEBA

SimpleConfig

组播地址编码

6

乐鑫

Esp8266

SmartConfig

组播,通过长度编码

7

新案线

NL6621

SmartConfig

组播地址编码

8

微信

 

AirKiss

全网广播,通过长度编码

 

这个功能最早是TI提出并应用于CC3200;不过从原理上讲,只要芯片驱动支持开启混杂模式(WiFi Promiscuous),就可以支持一键配网功能,只是各个厂家叫法及实现编码方式不同而已;

手机编码发送采用有UDP组播或广播,不同的发送方式和编码,对应的解码过程也不一样.,当前测试发现,微信是通过UDP广播包实现的;TI是通过往一固定IP地址发送udp;其他芯片厂家提供的一般为UDP组播方式;

由于无线数据传播必定是广播的,所以必然可以被监听到;如果AP没有加密的话,UDP直接可以把相关的信息发送出来.但是路由器AP一般都是加密的,而且加密方式不固定.wifi模块在无法直接解析出数据包

我们通过分析802.11MAC帧格式,可以知道,链路层载荷数据(即网络层的头部及网络层数)在数据帧中是清晰可见的,只要接到到802.11帧就可以立刻提取出载荷数据.

常见两种数据帧格式:

Station to AP

 

AP to Station

 

 

DA:目标MAC地址

SA:MAC地址

LENGTH:表示后面数据的长度

LLC:表示LLC

SNAP:表示3byte的厂商代码和2byte的协议类型表示

DATA:载荷数据

FCS:帧检验序列


发送端:可以采用2种不同的编码发送方式UDP广播和组播;

:UDP广播:小规模测试后,发现当前只有微信的AirKiss采用了全网广播模式,为啥微信会采用广播模式,原因未知;TI采用的是固定IP地址的UDP数据包,原理和微信基本一致;

802.11帧格式分析中获知,无线信号监听方的角度来说,不管无线信道有没有加密,DASALENGTH LLCSNAPFCS字段总是暴露的,因此信号监听方可以从这6个字段获取有效信息.从发送方讲,由于操作系统的限制,如果采用广播只剩下LENGTH发送方可通过改变其所需要发送数据包的长度进行控制.所以只要指定出一套利用长度编码的通讯协议,就可利用数据包的Lenght字段进行数据传递;

 

:UDP组播:

组播地址是保留的D类地址从224.0.0.0-239.255.255.255

IP地址与MAC地址映射关系为:MAC地址的前25位设定为01.00.5e,MAC地址的后23位对应IP地址的位;

故发送端可以将数据编码在组播ip的后23bit,通过组播包发送,接收端进行解码即可;

 

接收端进入一键配置功能后,wifi智能硬件从信道1开始监听路由上的数据,如当前监听信道有符合规则的数据包,就停止信道切换,停留在当前信道接收完全部数据.否则就依次切换至信道2.3.4....直到信道14后又从信道1开始继续监听依次循环;

当然,wifi智能硬件可以在开启混杂模式之前,先行扫描当前环境下存在的AP获取所有当前AP的信道,然后只对当前扫描到的信道进行依次监听,如当前环境下只存在2个路由,分别在1.6信道,只需轮流扫描channel1channel6,这样可以提高配置效率

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wifi一键配网smartconfig原理及应用 的相关文章

  • 10个常见的Redis面试"刁难"问题

    导读 在程序员面试过程中Redis相关的知识是常被问到的话题 作为一名在互联网技术行业打击过成百上千名的资深技术面试官 本文作者总结了面试过程中经常问到的问题 十分值得一读 作者简介 钱文品 老钱 互联网分布式高并发技术十年老兵 目前任掌阅
  • docker搭建测试(项目)管理平台jira

    1 下载镜像 使用docker下载jira和mysql的镜像 docker pull cptactionhank atlassian jira software docker pull mysql 5 6 docker images 查看是
  • Font shape `OMX/cmex/m/n‘ in size <10.53937> not available (Font) size <10.95> substituted.

    Latex在写公式时 报如下错误 Font shape OMX cmex m n in size lt 10 53937 gt not available Font size lt 10 95 gt substituted 解决方案 在 b
  • Web指纹识别技术研究与优化实现(CMS)

    本文通过分析web指纹的检测对象 检测方法 检测原理及常用工具 设计了一个简易的指纹搜集脚本来协助发现新指纹 并提取了多个开源指纹识别工具的规则库并进行了规则重组 开发了一个简单快捷的指纹识别小工具TideFinger 并实现了一套在线的指
  • python爬虫实践-01-携程酒店评论的爬取

    0 关键 携程网其最大的特点就是 基本上所有的有效数据都是通过Ajax异步请求获取的 本博客的主要内容为 构造Ajax请求 获得返回的reviews数据 由于返回的数据为JSON格式 很好分析 判定是否爬完酒店评论 直接获取评论数目 想要通
  • Dorado下拉框多选(ListDropDown)

    最终样式如下图 这里是通过ListDropDown下拉框做出的效果 1 在ListDropDown的Entity属性添加下拉内容 并且设置红色框的属性为false 该控件的onClose事件 var value arg selectedVa
  • ESP32-C3 学习测试 蓝牙 篇(四、GATT Server 示例解析)

    了解了蓝牙 GATT 相关概念 趁热打铁 分析一下官方示例 GATT Server 的应用程序架构 目录 前言 一 GATT Server 示例分析 1 1 初始化 1 2 回调函数 gatts event handler gap even

随机推荐

  • 软件技术基础知识忏悔录C#&.NET篇(一)

    为何开始 人已是大三之年 虽是身在985 心里却没有半分985的底气 自从大二分流以来 自己几乎是没再系统的学过什么 除了几位知识还算渊博的老师教了较为详细的数据库 数据结构的知识之外 其他老师大抵都是迷迷糊糊的念些大家都知道的大条话 然后
  • 开源许可协议:GPL、LGPL、AGPL、MPL和BSD、MIT、Apache

    概述 一 开源许可证的分类 开源许可证分为2种类型 宽松型和著作权型 1 宽松型 Permissive 该类许可证往往只要求被许可方保留原作品的版权信息 对用户施加的限制较少 衍生软件可以成为私有软件 如Apache MIT BSD系列许可
  • 基于Session实现登录流程

    流程一 发送短信验证码 用户在提交手机号后 会校验手机号是否合法 如果不合法 则要求用户重新输入手机号 如果手机号合法 后台此时生成手机号对应的验证码 后台先得到验证码 同时将验证码保存到session中 然后再通过短信的方式 测试中输出到
  • 2020年网络安全国赛解析(仅个人想法)

    A 1任务一登录安全加固 请对服务器Log Web Data 按要求进行相应的设置 提高服务器的安全性 1 密码策略 Log Web Data a 最小密码长度不少于8个字符 windows 打开本地安全策略 开始菜单 管理工具 管理 本地
  • 关于nlohmann::json的简单使用

    nlohmann json的使用非常简单 只需要包含 hpp文件即可 这是它的官网https github com nlohmann json 简单使用 include json hpp include
  • Apache Doris (四) :Doris分布式部署(一) FE部署及启动

    目录 1 Apache Doris下载 2 节点划分 3 节点配置 4 FE部署及启动 进入正文之前 欢迎订阅专题 对博文点赞 评论 收藏 关注IT贫道 获取高质量博客内容 部署Apache Doris时需要分别部署FE BE Broker
  • C# 9 新特性——record的相关总结

    Intro C 9 中引入了 record record 是一个特殊类 用它来实现 model 在有些情况下会非常的好用 Sample record RecordPerson public string Name get init publ
  • AOT

    处理appearance gap很大的图像伪造 比如说复杂的光照条件和肤色 把appearance mapping 定义为一个最优传输问题 在特征空间和像素空间 a relighting generator来模拟最优传输 1通过求特征空间中
  • flvjs播放器事件动态监听并实现flvjs实例销毁(http-flv协议)

    flvjs播放器事件动态监听 http flv协议 1 困扰我的问题 最近在使用flvjs播放器播放http flv协议流的直播视频 业务需求要动态加载非固定数量的视频 不超过6个 使用flv创建flvjs实例简单 但销毁flvjs得想法子
  • LLaMA系列

    文章目录 1 LLaMA 1 1 模型结构 1 2 训练方式 1 3 结论 2 LLaMA 2 2 1 相比LLaMA1的升级 2 3 模型结构 2 3 1 MHA MQA GQA区别与联系 2 4 训练方式 1 LLaMA 纯基座语言模型
  • 1. MongoDB快速实战与基本原理

    分布式技术MongoDB 1 MongoDB介绍 1 1 什么是MongoDB 1 2 MongoDB vs 关系型数据库 1 3 MongoDB的技术优势 1 4 MongoDB的应用场景 2 MongoDB快速开始 2 1 linux安
  • sonarqube启动时报错WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedExcepti

    sonarqube启动时报错WrapperSimpleApp Encountered an error running main java nio file AccessDeniedException sonarqube的logs目录下so
  • Flex builder 项目运行,页面空白

    项目运行 页面空白的原因 游览器兼容性问题 暂时还未解决 请使用fireFox游览器进行调试查看
  • 计算机磁盘序列号是唯一的吗,磁盘id和硬盘序列号一样吗

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 磁盘ID和硬盘序列号不是一回事 1 硬盘ID是硬盘的密码 2 磁盘序号 在磁盘管理页面显示的磁盘0 1 2等 0 1 2即磁盘序号 硬盘是电脑主要的存储媒介之一 由一个或者
  • Flink SQL 1.11新功能详解:Hive 数仓实时化 & Flink SQL + CDC 实践

    问题导读1 Flink 1 11 有哪些新功能 2 如何使用 flink cdc connectors 捕获 MySQL 和 Postgres 的数据变更 3 怎样利用 Flink SQL 做多流 join 后实时同步到 Elasticse
  • Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

    最近在做项目 花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统 页面采用纯Vue2 Element ui搭建 后端采用Springboot Mybatis搭建 数据库采用Mysql 包括了登录验证 根据不同权限进入不同界面 数据增删改
  • Qt标准对话框

    标准对话框 新建桌面应用程序 项目名testStandardDialogs 类名Dialog 基类QDialog 不勾选创建界面文件 1 文件 颜色 字体 对话框 dialog h ifndef DIALOG H define DIALOG
  • java -version 时出现 could not open D:\java\lib\i386\jvm.cfg是什么意思

    简单分几步 删除之前的jdk 删除注册表中相关项 重新安装 注意安装路径不要改变 跟之前可以用的时候一样 配置环境变量 应该是文件缺失导致的问题 JDK在安装的过程当中将会生成如下3个项目 HKEY LOCAL MACHINE SOFTWA
  • what引导的宾语从句

    what引导宾语从句时在从句中作主语 宾语或表语 表示 所 的 1 表示 的东西或事情 相当于 the thing that all that everything that They ve done what they can to he
  • wifi一键配网smartconfig原理及应用

    https blog csdn net flyingcys article details 49283273 智能家居 家电现阶段还处于普及阶段 由于家庭wifi网络的普及 目前普遍采用wifi与路由器完成连接 与手机 云端进行数据交互 智