Air Kiss(飞吻)技术实现方案 一、Air Kis s 技术原理简介 802.11 是IEEE 制定的无线局域网协议,802.11 以802.2 的逻辑链路控制封装来携带IP 封包,因此能够以802.2 SNAP 格式接收无线网络数据。如果开启wifi 芯片的混杂模式监听空间中的无线信号,并以802.2 SNAP 格式从数据链路层截取数据,就会得到如下图所示的数据包: 38-1492bytes 6bytes 6bytes 2bytes 3bytes 5bytes 4bytes 802.2 SNAP 格式数据包 DA 字段表示目标mac 地址,SA 字段表示源mac 地址,Length 字段表示后面数据的长度,LLC 字段表示LLC 头,SNAP 字段包括3bytes的厂商代码和2bytes的协议类型标识,DATA 字段为负载,对于加密信道来说是密文的,FCS 字段表示帧检验序列。 从无线信号监听方的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、FCS 字段总是暴露的,因此信号监听方便有了从这 6 个字段获取信息的可能。但从发送方的角度来说,由于操作系统的限制(比如ISO 或者Android),DA、SA、LLC、SNAP、FCS 五个字段的控制需要很高的控制权限,发送方一般是很难拿到的。因此只剩下Length 这一字段,发送方可以通过改变其所需要发送数据包的长度进行很方便的控制。所以,只要制定出一套利用长度编码的通信协议,就可利用 802.2 SNAP 数据包中的Length 字段进行信息传递。 在实际应用中,我们采用 UDP 广播包作为信息的载体。信息发送方向空间中发送一系列的UDP 广播包,其中每一包的长度(即 Length 字段)都按照 Air Kiss通信协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2 SNAP 格式数据包,便可得到已编码的Length 字段,随后接收方便可根据Air Kiss 通信协议解析出需要的信息。整个过程如下图所示: DA SA Length LLC SNAP DATA FCS AP 信息接收方 信息发送方 Air Kiss 技术信息传输过程 二、Air Kis s 通信协议 2.1. 物理层协议 在信号载体方面,采用w ifi 无线信号进行信息传递,1-14 全信道支持。 在信号编码方面,802.2 SNAP 数据包中的Length 字段为数据发送方唯一可控字段,因此Air Kiss 通信协议利用发送数据包的长度进行编码。由于受到MTU的限制,Length 字段最大可编码位数为10bit。但实际测试过程中发现,UDP 包长度与丢包率、乱序率成正比。因此本协议中,我们把 Length 字段编码位数限制在9bit,即 UDP ...