Wi-Fi快速配网介绍

一类让不具备人机交互功能的Wi-Fi设备实现配网的技术方案,也称为一键配网、智能配网、无感配网、零配配网、Wi-Fi快连等。

快速配网的目的是让待配网设备获得无线路由器的SSID、密码、加密方式这三项内容,除此外,不同厂商还会根据需要传递一些比如注册token、设备ID、设备类型之类的数据,以便于设备连网成功后向云端发起注册,或是便于在局域网内发现当前设备。

目前市面上存在着众多的快速配网方案,这些方案实现原理大体一致,都是让待配网的Wi-Fi设备处在监听模式(也称为混杂模式),通过监听无线信道中特定的网络包,来实现获取配网信息的目的,含有配网信息的网络包一般由已连接路由器的APP发出,或是由路由器本身发出,或是其他已配网的同类设备发出。

由于无线路由器的工作信道是固定的,而待配网的设备并不知道路由器的工作信道,所以设备一般需要逐个扫描所有的信道,通过检测当前信道是否存在的一些事先约定的具有明显特征的网络包,来锁定真正用于配网的信道。配网信息发送方除了要发送配网包,还要发送一些具有明显特征的包,以便于设备锁定信道。锁信道策略的好坏,将直接影响快速配网的速度

除了信道锁定,快速配网还要具有纠错和抗丢包能力,因为无线信道是共用的,设备有可能收到其他设备发出的具有配网包特征、但并非配网包的数据包,这就要求算法具有纠错能力,不能返回错误的配网信息。同时,无线信道也是复杂的,设备在接收配网包时有可能丢包,这就要求算法要有抗丢包能力,考虑一轮接收不到全部配网包的情况下,要能够通过多轮接收来获得全部配网包。

信道扫描+锁信道方式的快速配网一般用于2.4G Wi-Fi,5G频段由于信道数量多且信道绑定复杂,信道扫描并不合适,这时可以使用管理帧配网,比如向路由器发起Probe请求时携带一些定制字段,路由器收到带有定制字段的Probe请求时在Probe响应中嵌入配网信息字段,但这种方式缺点也显而易见,那就是路由器端的程序也要定制,普通的路由器不支持。


以下是一些Wi-Fi快速配网的方案示例:

方案名称厂家配网技术备注
HiLink华为

FastConfig雄迈广播+组播配网只支持2.4G频段,需要扫描信道,方案通用,任何路由器都可以实施。
BeaconConfig雄迈beacon包配网

路由器将配网信息写在beacon包中,设备扫描beacon包获取配网信息。

缺点:私有协议,路由器和设备端程序都要定制。

Pegasus配网涂鸦管理帧配网

采用802.11协议中Beacon/Probe Request/Probe Response帧实现待配网设备无感配网,支持2.4G/5G频段,无需扫描信道,缺点是路由器需要定制,比如路由器要能够在Probe Response中嵌入配网信息。

缺点:私有协议,路由器和设备端程序都要定制,且设备端对Wi-Fi协议栈的操作性要求较高。

参考:无感配网路由SDK参考-TuyaOS-涂鸦开发者

AirKiss配网腾讯广播+组播配网参考:物联网开发平台 AirKiss配网开发-设备端开发指南-文档中心-腾讯云
零配配网阿里云通过局域网内已配网的设备对未配网的设备进行配网参考:Wi-Fi设备配网方案介绍-零配配网
ESP-TOUCH乐鑫广播+组播配网参考:ESP-TOUCH编码规则及解码
SmartConfigTM德州仪器广播+组播配网


除了上述方案,还有以下方案也可以实现设备配网:

配网方案说明
二维码配网摄像头类产品使用,扫描含有配网信息的二维码实现配网。
AP配网待配网设备先切换到AP模式,手机连接设备AP热点后输入路由器SSID和密码,设备收到后再切换回STA模式并连接指定路由器。
声波配网参考链接:给摄像机远程配网,原理是手机将配网信息编码到音频声波中,待配网设备通过识别音频信号来获取配网信息。
蓝牙辅助配网通过蓝牙发送配网信息。
WPS配网这是WPA标准支持的配网方式,有按键和pin码两种模式,按键模式下,设备进WPS配网状态后,路由器上按下WPS按键即可完成配网,pin码模式下,设备进WPS配网状态后,输入路由器上指定的pin码可以完成配网。
路由器私有协议配网以小米快连为例,路由器内置私有的配网协议,可实现小米生态链设备零配置配网,并且路由器修改密码后设备可自动同步密码。这为方案的本质其实也是管理帧配网或广播+组播配网。
NFC触碰配网路由器内置NFC芯片并写入配网信息,设备扫描NFC后获取配网信息。


参考链接:

广播+组播快速配网原理

已连接路由器的APP重复向局域网内广播和组播配网信息包,待配网设备切到监听模式并逐个扫描所有Wi-Fi信道,通过配网特征包定位到路由器所在的Wi-Fi信道,再接收配网包,待所有的配网包都收齐后,解析其中的路由器SSID和密码信息并连网。

为什么不使用单播?

这点保留疑问,理论上单播应该也是可行的,因为Wi-Fi通信是大喇叭模式,单播的Wi-Fi报文从天线上发出来后,附近所有设备都可以收到。

可以解释的地方是,Wi-Fi单播需要明确指定对端的MAC地址,这个MAC地址对于待配网设备来说是未知的,不能用于锁定配网包,另一方面局域网内可能并不存在其他设备,无法发起有效的单播,而随便向一个不存在的地址发起单播,则数据有可能被路由器丢弃,导致配网成功率降低。

网络信息怎么在配网包中表示?



广播配网

通过广播包的长度来携带配网信息。

组播配网

通过组播包的地址来携带配网信息。

网络包的数据部分都是加密过的,将配网信息写在数据部分的路走不通。

注意点:

  1. 机密性,配网包很容易截获,要使得配网信息不容易被破解。
  2. 加密内容尽量短,比如典型的异常加密,不增加长度。
  3. 抗丢包性,考虑一轮接收不到全部配网包的情况下,要能够多轮接收配网信息。
  4. 方便接收端锁定信道。
  5. 兼容性,不同的路由器,不同的加密方式,都要能够适配,考虑WPA3能否跑通快速配网,WPA3PSK肯定使用的也是AES加密,和WPA2PSK长度理论上应该是一样的,这两者会不会无法区分,还有WPA3 SAE认证和OWE认证等等。

Q&A:

  1. 为什么不需要输入认证方式?

广播+组播快速配网实现

发送的数据包不能超过802.11帧最大长度2346字节,否则会被分片。

可以考虑Wi-Fi设备配网适配开发这样的实现,将HAL接口实现与算法分离,定义一套通用的快速配网算法,在适配不同的Wi-Fi设备时,只要实现其对应HAL接口即可,涂鸦好像也是这么做的。

广播+组播快速配网方案注意点

无线路由器不转发组播包,但大概率会发送广播包。

设备既可能收到APP发出的配网包,也可以收到路由器转发的配网包。

锁信道,纠错,抗丢包(重复发能力)。

配网什么时候结束?APP怎么检测设备已经配好网了?

  • 无标签