AirKiss技术实现方案

AirKiss技术实现方案

ID:36338463

大小:104.00 KB

页数:8页

时间:2019-05-09

AirKiss技术实现方案_第1页
AirKiss技术实现方案_第2页
AirKiss技术实现方案_第3页
AirKiss技术实现方案_第4页
AirKiss技术实现方案_第5页
资源描述:

《AirKiss技术实现方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、表示源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.2SNAP数据包中的Length字段进行信息传递。在实际应用中,我们采用UDP广播包作为信息的载体。信息发送方向空间中发送一系列的UDP广播包,其中每一包的长度(即Length字段)都按照AirKiss通信协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2SNAP格式数据包,便可得到已编码的Length字段,随后接收方便可根据AirKiss通信协议解析出需要的信

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

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

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

7、2,3,4}。接收方在接收到这些前导域数据包后,利用SNAP包中的Length字段与之相减,从而获取到这个差异值。举个例子,接受方通过监听,在链路层截获802.2SNAP格式的前导数据包,其Length字段的值分别为53,54,55,56,那差异值就能确定为53-1=52。之后接收方接收到数据之后都用SNAP包的Length字段值减去52,即能得到实际的信息数据。2.1.链路层协议链路层数据结构如下图所示:Magiccodefield(4个9bits)20个magiccodePrefixcodefield(4个9bits)Sequencehead

8、erfield(2个9bits)一个sequence序列N个sequence序列Datafield(4个9bits)链路层数据结构示意图

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。