Air-Kiss技术实现方案(0.5)

上传人:小****克 文档编号:334074882 上传时间:2022-09-05 格式:PDF 页数:10 大小:691.75KB
返回 下载 相关 举报
Air-Kiss技术实现方案(0.5)_第1页
第1页 / 共10页
Air-Kiss技术实现方案(0.5)_第2页
第2页 / 共10页
Air-Kiss技术实现方案(0.5)_第3页
第3页 / 共10页
Air-Kiss技术实现方案(0.5)_第4页
第4页 / 共10页
Air-Kiss技术实现方案(0.5)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Air-Kiss技术实现方案(0.5)》由会员分享,可在线阅读,更多相关《Air-Kiss技术实现方案(0.5)(10页珍藏版)》请在金锄头文库上搜索。

1、-精选文档-Air Kiss(飞吻)技术实现方案一、一、Air KissAir Kiss 技术原理简介技术原理简介802.11 是 IEEE 制定的无线局域网协议,802.11 以 802.2 的逻辑链路控制封装来携带 IP 封包,因此能够以 802.2 SNAP 格式接收无线网络数据。如果开启 wifi 芯片的混杂模式监听空间中的无线信号,并以 802.2 SNAP 格式从数据链路层截取数据,就会得到如下图所示的数据包:38-1492bytesDASALengthLLCSNAPDATAFCS6bytes6bytes2bytes3bytes5bytes4bytes802.2 SNAP 格式数据

2、包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 五个字段的控制需要很高的控制

3、权限,发送方一般是很难拿到的。因此只剩下Length 这一字段,发送方可以通过改变其所需要发送数据包的长度进行很方便的控制。所以,只要制定出一套利用长度可编辑-精选文档-编码的通信协议,就可利用 802.2 SNAP 数据包中的 Length 字段进行信息传递。在实际应用中,我们采用 UDP 广播包作为信息的载体。信息发送方向空间中发送一系列的 UDP 广播包,其中每一包的长度(即 Length 字段)都按照 AirKiss 通信协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取 802.2 SNAP 格式数据包,便可得到已编码的 Length 字段,随后接收方便可根

4、据 Air Kiss 通信协议解析出需要的信息。整个过程如下图所示:监听无线广播包,从数据AP转发UDP 广播包AP链路层截取数据包,得到已编码的 Length 字段,再根据Air Kiss通信协议解析出需要的信息发送长度经过 编 码 的UDP 广播包信息接收方信息发送方Air Kiss 技术信息传输过程二、二、Air KissAir Kiss 通信协议通信协议2.1.2.1.物理层协议物理层协议在信号载体方面,采用 wifi 无线信号进行信息传递,1-14 全信道支持。在信号编码方面,802.2 SNAP 数据包中的 Length 字段为数据发送方唯一可编辑-精选文档-可控字段,因此 Air

5、 Kiss 通信协议利用发送数据包的长度进行编码。由于受到MTU 的限制,Length 字段最大可编码位数为 10bit。但实际测试过程中发现,UDP 包长度与丢包率、乱序率成正比。因此本协议中,我们把 Length 字段编码位数限制在 9bit,即 UDP 广播包的发送长度不大于 512 字节。我们身处的无线网络环境有可能及其复杂,很有可能在同一个空间中存在多个 AP,而这些 AP 又分布在相同或者不同的信道上,这样接收者一开始是不知道发送方在 1-14 哪个信道上发送信息,而且同一个信道上也可能会有很多设备在发送 UDP 广播包。在这种情况下,接收方监听到的数据包是海量的。必须从海量的数据

6、信息中定位出发送方所在的信道和发送方的 mac 地址。另外,由于在 UDP 广播包发送过程中,一个 UDP 层的数据包,要经过 IP 层、数据链路层的封装,并且通过加密(加密方式包括 WPA2、WPA、WEP 三种)后才会被发送出去,所以发送方发送 UDP 广播包的长度与接收方监听 SNAP包中的 Length 字段值存在差异,这就需要进行转义。然而,由于底层加密方式的不确定性,使得这个差异值也具有不确定性。为解决这两个问题,在发送链路层数据(见下节)之前,需要先发送 400ms的前导域(400ms=8*50ms,即如果设备端以 50ms 的频率切换信道,则可以覆盖 8 个信道,因为一般用户环

7、境不用监听 14 个信道,所以覆盖 8 个信道足已)。前导域由 4 个字节组成,其值固定为1,2,3,4。接收方在接收到这些前导域数据包后,利用 SNAP 包中的 Length 字段与之相减,从而获取到这个差异值。举个例子,接受方通过监听,在链路层截获 802.2 SNAP 格式的前导数据包,其 Length 字段的值分别为 53,54,55,56,那差异值就能确定为 53-1=52。可编辑-精选文档-之后接收方接收到数据之后都用 SNAP 包的 Length 字段值减去 52,即能得到实际的信息数据。2.2.2.2.链路层协议链路层协议链路层数据结构如下图所示:链路层数据结构示意图链路层数据

8、结构可分为两类,control字段与data字段,magic code、prefixcode、sequence header field 属于 control 字段,data field 属于 data 字段。control 字段与 data 字段以第 8bit 位(最高位)加以区别,该位为 1 表示 datafield 字段,为 0 表示 control 字段。在 control 字段中,magic code 字段与prefix code 字段完全相同,magic code 字段与 sequence header 字段通过第7bit 位加以区分,该位为 1 表示 sequence heade

9、r 字段,为 0 表示 magic codeN 个 sequence 序列Prefix code field(4 个 9bits)Sequence header field(2 个 9bits)Data field(4 个 9bits)Magic code field(4 个 9bits)20 个 magic code一个 sequence 序列可编辑-精选文档-字段。以下分别对各个字段进行详细介绍。magic code 字段magic code 字段的数据结构如下图所示:高 5 位低 4 位第 1 个 9bits0 x00 x0length(high)0 x10 x1length(low)4

10、bytes0 x20 x2ssid crc(high)0 x30 x3ssid crc(low)magic codeinformationmagic code 字段的数据结构第 2 个 9bits第 3 个 9bits第 4 个 9bitsmagic code 由 4 个 9bits 组成,每个 9bits 的高 5 位为 magic code 字段,低 4 位为 information 字段。前两个 9bits 的 information 字段分别装载要发送数据长度的高 4 位和低 4 位,后面两个 9bits 的 information 字段分别装载要发送 ssid 的 crc8 值的高

11、4 位和低 4 位。这里单独传输 ssid 的 crc8 字段是对整个传输过程所做的优化。在研究中我们发现,在信息传输之前先对AP 进行扫描,通过获取的beacon 可以得知无线环境中所有非隐藏 AP 的 ssid、rssi 以及信道。在传输过程中,接收方先从 magiccode field 中获取目标 AP ssid 的 crc8 值,然后再和事先扫描所得到的 ssid 的可编辑-精选文档-crc8 值进行比对,如果发现相同值,那么在接下来的接收过程中接收方就不用再接收 ssid 信息,这就大大加快了传输的时间。在传输过程中,需要发送 5 个 magic code 字段。这里重复发送的原因是

12、magic code 中的字段很重要,接收端可以通过对比多次接收的结果来保证正确性。prefix code 字段prefix code 字段的数据结构如下图所示:高 5 位低 4 位第 1 个 9bits0 x40 x4psw length(high)0 x50 x5psw length(low)4bytes0 x60 x6psw len crc(high)0 x70 x7psw len crc(low)magic codeinformationmagic code 字段的数据结构第 2 个 9bits第 3 个 9bits第 4 个 9bitsprefix code 由 4 个 9bits

13、组成,每个 9bits 的高 5 位为 magic code 字段,低 4 位为 information 字段。前两个 9bits 的 information 字段分别装载要发送密码的长度的高 4 位和低 4 位,后面两个 9bits 的 information 字段分别装载发送密码长度的 crc8 值的高 4 位和低 4 位。prefix code 有两个作用,首先是表示数据序列的正式开始,其次告诉接收可编辑-精选文档-端发送密码的长度,以便接收方在接收完数据后,对数据进行分割解密。sequence header 字段:sequence header 字段的数据结构如下图所示:sequenc

14、e header 字段的数据结构第 1 个 9bits第 2 个 9bits第 8-7 位第 6-0 位01sequence crc8(低 7 位)2bytes01sequence index我们把待发送的数据以4为粒度进行划分,每4个数据组成一个sequence,以 sequence 为单位进行数据的发送。每个 sequence 都由 sequence header字段和 data 字段组成。最后一个 sequence 如果不够 4 个数据,不用补全。sequence header 字段由两个 9bits 组成,第一个的低 7 位装载的是从本sequence index 开始到本 seque

15、nce 结束发送的所有数据的 crc8 的低 7 位值(计算过程中不计入字段标识位,因此 sequence index 最高位需补 0),在接收完一个 sequence 的数据之后,需进行 crc8 值的效验,如果不相同,证明该sequence 的数据接收出错,应该丢弃。data 字段:data 字段的数据结构如下图所示:可编辑-精选文档-第 4 个 9bits第 1 个 9bits第 8bit第 7-0 bit1data1data4bytes第 2 个 9bits第 3 个 9bits1data1dataControl bitdata bitsdata 字段的数据结构data 字段由 4 个

16、 9bits 组成,每个9bits 的第 8 位为控制位,固定为1,其余的 8 位装载需要传输的数据。2.3.2.3.应用层协议应用层协议送方所要发送的数据由三部分组成:密码、随机数、ssid。其中随机数的作用是,当数据接收方连上 AP 之后,立即发送以该随机数为内容的 UDP 广播包,当发送方收到该广播包后就能确认接收方已经准确接收到所有数据。密码和 ssid都0结尾,并且分别用 AES 进行加密,再发送。这三部分数据的发送顺序为先发送密码,再发送随机数,最后发送 ssid,如下图所示:AES(密码)随机数AES(ssid)1byte应用层协议示意图可编辑-精选文档-三、三、Air KissAir Kiss 通信协议性能分析通信协议性能分析3.1.3.1.纠错能力分析纠错能力分析Air Kiss技术中的通信模型可以抽象为错误率为 0-5%的单向的信道,所需要传递信息的最大长度为 68bytes。在这种情况下,如果不采用纠错算法,就很难保证在有限次数内完成信息的发送。Air Kiss采用了累积纠错算法来保证在有限次内完成传输过程。累积纠错算法的理论基础为:多轮数据发送过程中,在同一位数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号