Air-Kiss技术实现方案(0.5).doc
《Air-Kiss技术实现方案(0.5).doc》由会员分享,可在线阅读,更多相关《Air-Kiss技术实现方案(0.5).doc(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateAir-Kiss技术实现方案(0.5)Air Kiss(飞吻)技术实现方案 Air Kiss(飞吻)技术实现方案一、Air Kiss技术原理简介802.11是IEEE制定的无线局域网协议,802.11以802.2的逻辑链路控制封装来携带IP封包,因此能够以802.2 SNAP格式接收无线网络数据。如果开启wifi芯片的混杂模式监听空间中的无线信号,并以802.2 SN
2、AP格式从数据链路层截取数据,就会得到如下图所示的数据包:FCSDATASNAPLLCLengthSADA 38-1492bytes 6bytes 6bytes 2bytes 3bytes 5bytes 4bytes802.2 SNAP 格式数据包DA字段表示目标mac地址,SA字段表示源mac地址,Length字段表示后面数据的长度,LLC字段表示LLC头,SNAP字段包括3bytes的厂商代码和2bytes的协议类型标识,DATA字段为负载,对于加密信道来说是密文的,FCS字段表示帧检验序列。从无线信号监听方的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、F
3、CS字段总是暴露的,因此信号监听方便有了从这6个字段获取信息的可能。但从发送方的角度来说,由于操作系统的限制(比如ISO或者Android),DA、SA、LLC、SNAP、FCS五个字段的控制需要很高的控制权限,发送方一般是很难拿到的。因此只剩下Length这一字段,发送方可以通过改变其所需要发送数据包的长度进行很方便的控制。所以,只要制定出一套利用长度编码的通信协议,就可利用802.2 SNAP 数据包中的Length字段进行信息传递。在实际应用中,我们采用UDP广播包作为信息的载体。信息发送方向空间中发送一系列的UDP广播包,其中每一包的长度(即Length字段)都按照Air Kiss通信
4、协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2 SNAP格式数据包,便可得到已编码的Length字段,随后接收方便可根据Air Kiss通信协议解析出需要的信息。整个过程如下图所示:AP转发UDP广播包 AP监听无线广播包,从数据链路层截取数据包,得到已编码的Length字段,再根据Air Kiss通信协议解析出需要的信息发送长度经过编码的UDP广播包 信息接收方 信息发送方 Air Kiss技术信息传输过程二、Air Kiss通信协议2.1. 物理层协议在信号载体方面,采用wifi无线信号进行信息传递,1-14全信道支持。在信号编码方面,802.2 S
5、NAP 数据包中的Length字段为数据发送方唯一可控字段,因此Air 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. 链路层协议链路层数据结构如下图所示:Magic code field(4个9bits)20个magic codePrefix code field
8、(4 个9bits)Sequence header field (2 个9bits)一个sequence 序列N个sequence 序列Data field (4 个9bits) 链路层数据结构示意图链路层数据结构可分为两类,control字段与data字段,magic code、prefix code、sequence header field属于control字段,data field属于data字段。control字段与data字段以第8bit位(最高位)加以区别,该位为1表示data field字段,为0表示control 字段。在control字段中,magic code字段与pre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Air Kiss 技术 实现 方案 0.5
限制150内