查看Airkiss的源代码
←
Airkiss
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Overview == AirKiss 是微信提出的一种 WLAN 应用层协议,主要用于给 WiFi 硬件设备配置网络 其原理是将设备的网卡置于监听模式 (monitor mode),又称为混杂模式 (promiscuous mode),获取到周围的 802.11 无线数据帧(俗称抓包)。无线数据包中,有的字段加密,有点字段需要高操作权限,只有 Length 字段是最合适的,利用这个字段我们就能约定一种传输数据的协议,从而在硬件设备初次进入环境时为其提供 WiFi 的帐号密码等信息。其联网方式类似于 TI 的 [http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=CC3000+Smart+Config Smart Config]。 802.11 是 IEEE 制定的无线局域网协议,802.11 以 802.3/802.2 的逻辑链路控制封装来携带 IP 封包: [[文件:802.2.SNAP.frame.jpg | IEEE 802.2/802.3 SNAP Encapsulation Frame Format]] Length 字段表示后面数据的长度,LLC 字段表示 LLC 头,SNAP (Subnet Access Protocol) 字段包括 3bytes 的厂商代码和 2bytes 的协议类型标识,DATA字段为负载 [[文件:802.2.SNAP.frame2.jpg | 600px]] 在实际应用中,采用 UDP 广播包作为信息的载体。信息发送方向空间中发送一系列的 UDP 广播包,其中每一包的长度(即 Length 字段)都按照 AirKiss 通信协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取 802.2 SNAP 格式数据包,便可得到已编码的 Length 字段,随后接收方便可根据 AirKiss 通信协议解析出需要的信息。 Airkiss上层在抓包之前先扫描附近的无线热点并记录其 ssid/crc 以及信道,从而使得 Airkiss 只用在这几个信道切换抓包。为了加快 Airkiss 进度,ssid 部分不再从 data 字段读取而只取其 crc (用 reserved 字段记录),上层应用将记录的 ssid/crc 进行对比,则可以获取目标的 ssid 信息并连接。连接后根据 Airkiss 协议,向 10000 端口广播 random 值通知发送端即可完成配置。 [[文件:80211.png]] <br>
返回到
Airkiss
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面