一 概要
Wi-Fi大家很早就接触了,但是配网对很多人都比较陌生。因为早期的Wi-Fi设备基本都是带屏幕和输入设备的(如笔记本/手机/PDA等),而配网只需要用户直接输入路由器的SSID/password即可,简单到被人忽略。
但是随着物联网的兴起,Wi-Fi被大量应用于没有人机交互方式的设备中,如智能插座等物联网终端产品中,而Wi-Fi(IEEE802.11)标准在设计之初是没有考虑这种无人机交互方式的配网的,也就是没有官方标准。配网成了一种类似于黑客找漏洞的技术,这也就导致了市面上配网的方法多种多样,且各家玩各家的,鱼龙混杂,互不相通,整体体验偏低。
几个概念:
本文讨论的配网如未注明都指狭义配网,并省略云端参与流程。简化示意图如下:
那么市面上的配网技术有哪几种呢?按原理分商用的主要有:
阿里云IoT开发的物联网操作系统AliOS Things支持上述1-6配网方式。
流程
一键配网(Smart Config)主要原理为:
数据传输方式
数据的承载方式有两种,一种广播方式,另一种是组播方式。下面分别介绍。
设备在接入路由器之前,没有获得对应密钥,无法解密路由器局域网内的数据报文(包括连接到目标路由器的用户手机的报文)。
如下图所示,设备在sniffer模式收到的数据报文主体即Frame Body部分是加密的,仅帧头和整个报文长度是不加密的。要通过手机将配网信息传给设备,那么就得考虑使用这些信息。
MAC帧格式:
1)广播包长方式
数据报文长度共2字节,且包头和校验和占掉了一部分字段故不能从0开始编码,而太长会导致整个数据报文冗余数据急剧增加,如折中取11bit。
具体方式为:手机端通过发送不同长度的广播报文,将配网信息编码到报文长度信息中。——有点像藏头诗吧?
2)组播地址方式
如果使用地址编码,即使用下图的DA编码,那么就是组播方式。
ieee802.11将224.0.0.0 ~ 239.255.255.255划定为组播保留地址,在以太网中,目的IP地址为组播保留地址的数据包,目的MAC地址需要做一个映射。具体做法是,MAC地址的3个高字节固定为01:00:5E,后三个字节依次为组地址的从高字节起的第二字节取低7位、组地址的第三字节和第四字节,例如组地址225.215.145.230对应的MAC地址为01:00:5E:57:91:E6。所以有23个bit可用户编码。
用户操作简单,体验好(成功时)。
总结
物联网刚兴起时大多数厂商的默认选择,在饱受用户投诉之后慢慢被弃用。
设备热点配网很好理解:
总结
中庸可靠是其取胜之道,在昔日霸主一键配网由于成功率不高被广为吐槽后,设备热点配网在市场上的占有率稳定提升。
这是热点配网(softAP)的一个变种,热点不由设备创建而是由手机创建。
可与一键配网共存(同时使能),在阿里云IOT手机热点配网中,手机热点SSID固定为aha,这样处在一键配网模式的设备一旦扫描到周围存在aha热点即尝试连接aha。常用来做备用配网方案。
总结
曾经作为一个创新在阿里IoT中作为一键配网失败后的替补方案,由于一键配网本身占比降低,替补的出场率也就更低了。
蓝牙配网整体流程跟设备热点配网差不多。只不过用ble替换了设备端的热点,理论上还是一种基于点对点连接的配网方式。
用户体验好。
总结
适合与本身既有蓝牙又有Wi-Fi的应用场景的设备,或者模组成本相对不是那么敏感的土豪设备。随着低成本BLE的推行,其占有率逐渐提升。
路由器配网的思路就是路由器在配网模式下开启一个特定的用于配网的SSID,设备发现了这个热点后连接这个热点以获取配网信息,流程跟手机热点配网相似。其简化流程图如下:
总结
适合端上整套生态打法的厂商。
这是一种充分利用待配设备/及主配设备的高权限优势的配网,要求主配和待配设备的应用程序都能发送和接收802.11管理帧。直接使用802.11 的管理帧(probe request/response)携带配网信息,从而实现高效配网。简化原理如下:
总结
设计上本身高效可靠,但是由于手机APP权限问题,无法通过第三方程序组装或者接收Wi-Fi管理帧,限制了其在手机上的应用(手机不能当主配),也就使得其只能成为一种辅助或者特定领域的配网方式。
通过一个表格对比各配网方式特点:
除了上面列出的配网方式外,还有其他一些方向供大家参考。
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。