王存睿,段晓东
(大连民族学院 大连市民族文化数字技术重点实验室,辽宁 大连116605)
线上电子商务供求信息在生产者与销售商,销售商与消费者之间传递的非常流畅,生产者更能了解消费者的需求,消费者也更容易第一时间从生产者和销售商处获得产品信息。相比之下,线下商业受到了线上电子商务一定程度的挤压,并且随着线下商业自身的发展,对科学、精细化管理的需求日益迫切。线下商业数据具有复杂性与不确定性的特点。以往通过问卷随机调查等方式获取客流量、顾客偏爱产品等经营数据难度十分大。
客流分析通过识别移动设备WLAN(Wireless LAN,简记WLAN)信号对客流实施监测[1]。这种方式具有非接触性和准确性的特点,无需顾客接入商场WiFi 网络。本文构建了基于WALN 的线下客流分析方法和技术,通过对手机WLAN 信号数据包的截获来分析客流行为。这些数据可以帮助商家更全面了解顾客群,优化服务策略,提升收益。
无线局域网多采用IEEE802.11 标准,工作在2.4G 和5G 频段下,其中2.4G 频段(2412MHz -2467MHz)为WLAN 中主要使用频段,大多数WLAN 设备都可以工作在该频段下,该频段在全球大部分地区分为了11 个频道。
WLAN 设备工作在一个频道下,在该频道中存在多个无线局域网。WLAN 主要由站(Station,STA)、接 入 点(Access Point,AP)、无 线 介 质(Wireless Medium,WM)和分布式系统(Distribution System,DS)组成。主要设备包含两类,一类是WLAN 接入点AP,另一类是WLAN 客户端STA,AP 的作用是为STA 提供接入服务[1]。STA 要先连接注册到某无线局域网中,这时网卡会在所有支持的频道反复扫描,接收Beacon 数据包,Beacon包是由AP 在其工作的频道上不断发出的。Beacon 包的作用是向所有的STA 进行广播,告诉一个无线局域网存在并可以连接。
STA 当没有数据包要发送的时候在某特定的频率上监听,如数据包的发送者不是与其连接的AP,则直接丢弃数据包,如果是与自己连接的那台AP 则收到数据包后,进行完整性校验,如果数据包损坏则直接丢弃;如果数据包完整,则验证数据包接收者MAC 地址是否与自身MAC 地址相符,如不是则丢弃该数据包;如果是,则将数据包交给操作系统内核进一步处理。从流程中可以看出,如按照正常的网卡工作流程,无法获得所需要的信息,因为数据包在网卡驱动程序层就直接被丢弃。要截获和分析数据需要对WALN 的混杂模式(Promiscuous Mode)和监听模式(Monitor Mode)进行分析。混杂模式(Promiscuous Mode)下,网卡对收到的数据包只会进行完整性校验,无线局域网是需要STA 主动连接AP 加入网络,因不可能获得所有AP 的密码,所以也就无法与其连接获取数据包。监听模式(Monitor Mode)是无线网卡所特有的一种极为特殊的工作模式,网卡不加入任何无线局域网,而是直接在指定的某一个频道下监听所有设备发出的数据包,接收到数据包后,校验数据包的完整性,将数据包交给内核处理。因此监听模式适于对移动设备进行数据分析和统计。
无线网卡只能工作在WLAN11 个频道中的一个频道,最大限度获取尽可能多的数据包成为首要解决的问题。本文给出两种技术方案:一种解决方案构建由11 张网卡组成的阵列,每个网卡处于1 个频道中,优点是可以毫不遗漏地接收到所有的数据包,缺点是硬件成本过高,并且协调处理这11 个网卡捕获到的数据较为复杂[2];另一种解决方案是网卡跳频技术,即无线网卡先在某一个频道工作一段时间,然后切换到另一个频道再工作一段时间,再切换到下一个频道进行循环。该技术方案优点是硬件成本低,方便数据处理,缺点是无法获取全部的数据包,会遗漏剩余10 个频道的信息。经过大量实验证明WLAN 设备在无线局域网中发送数据包极为频繁,每秒钟最多可以达到上百个数据包,采用跳频技术虽会遗漏部分数据,但是如果跳频时间间隔设置合理,可以收集到足够多的数据包进行无线设备行为分析。本文对跳频技术方案进行测试及验证,参数包括频道和跳频间隔时间。
(1)确定采集频道
采集WLAN 数据并不需要在所有频道捕获数据包,而只需要在1、6、11 频道捕获,因为802.11标准把2.4 GHz 的频段划分为14 个互相重叠的频道(中国使用1 ~11 频道),每个频道的中心频率相差5MHz,在每个频道发射与接收时,虽然只使用中心频率附近的一段频宽,可还会对周围的频道造成干扰。由于802.11 标准没有规定每个频道的频宽,而只分别规定了中心频率与频谱遮蔽(Spectral Mask),频谱遮蔽的含义是正常发射时对周围频率的影响程度。802.11b 的频谱遮蔽要求为:在中心频率±11 MHz 处,至少衰减30 dB(只剩发射功率的1/2^30),±22 MHz 处要衰减50 dB(只剩发射功率的1/2^50)。频谱遮蔽只规定到距离中心频率±22 MHz 处的射频能量限制,所以实际应用中都认为一个频道所影响的频宽小于44 MHz(±22MHz)。
频道1 与6、6 与11 之间间隔25 MHz,大于22 MHz,所以1 与6、6 与11 频道之间互相影响和干扰较少,为3 个最优频道。实际中绝大多数的AP 都工作在这3 个频道下,正规运营商在公共场所架设的AP 全部工作也在这3 个频道下。因此系统只需要在这3 个频率下捕捉数据包。即使有架设不规范的AP 设备,工作在1、6、11 频道以外的频道上,也能捕捉到链接到这个AP 上的WLAN设备发出的信号。因为即便WLAN 设备已经连接上了一个AP,为了保证可在AP 之间漫游的特性,WLAN 设备还会继续在所有的频道定期广播一种叫Prob 包的控制包,Prob 包的作用是请求AP 信息,AP 在收到Prob 包之后会主动把自身信息参数发回给Prob 包的发出者。因此即便有不规范的AP 工作在1、6、11 以外的频道上,与其链接的STA 依然会在1、6、11 频道里发送Prob 包,捕捉到这些Prob 包后,可以从中提取有用信息,实现对这个STA 的监测与统计。
(2)跳频间隔实验
确定在哪几个频道内捕获数据包以后,还需要确定跳频的间隔。为了确定跳频的最佳间隔,本文设计并进行了如下实验:在一个相对稳定的无线网络环境下,编写实验程序进行抓包。首先不进行跳频,分别在1、6、11 频道各抓包1 min,统计抓到的数据包个数,作为基准值。然后从间隔0.1 s 开始,在1、6、11 频道跳频,进行抓包,抓包时长1 min,统计抓到的数据包个数以及这些数据包来自多少个不同的WLAN 设备。以0.1 s 为步长,分别间隔0.2,0.3,0.4……1 s 跳频,重复上述步骤,进行抓包并统计。另外,为了验证跳频时间间隔过短会对系统性能造成严重影响,还分别以间隔1μs,1 ms,10 ms 为间隔,进行上述实验。网络环境的6 频道最为繁忙,1 频道不定期会出现较多数据包,11 频道几乎没有数据包。在这种环境下,实验结果较为明显。捕获不到数据包的时间包括跳频过程中的时间和在空闲频道的时间,如果跳频间隔过短,跳频过程中的时间会占据很大的一份比例。如果跳频间隔过长,则很容易留在空闲频道而错过其它频道的数据包。最终捕获的数据包个数最多的跳频间隔为最优间隔。重复实验10 次,得到的平均值见表1。
表1 不同跳频间隔时间下的数据捕获结果
由实验结果可以明显看出,当跳频间隔为0.6 s时,捕获的数据包数量最多,0.6 s 的间隔为最优间隔。
捕获有效数据包后,要从中分离有用的信息。802.11 协议下,无线局域网中的数据帧(包)的结构与类型如图1[3-4]。
图1 IEEE802.11 所规定的基本帧格式
Preamble 是一个前置标志,告诉设备这是一个802.11 数据帧;PLCP 域中是一些物理层的协议参数,显然Preamble 及PLCP 是物理层的细节;MAC 层处理帧数据,截取图1 中MAC 头开始的部分构成MAC 帧格式如图2。
图2 MAC 帧格式
其中MAC Header(MAC 头):Frame Control(帧控制域)、Duration/ID(持续时间/标识)、Address(地址域)、Sequence Control(序列控制域)、QoS Control(服务质量控制)。Frame Control 格式如图3。
图3 帧控制域的格式
Protocol Version 默认值为0;Type 与Subtype的作用是判定帧的类型;To DS 是指该帧是从BSS发送到DS 的帧;而From DS 却相反,是指由DS 向BSS 发送的帧;More Frag 用于说明是否还有后续帧;Retry 主要用于帧的重传。当Pwr Mgt 为1 时,STA 为power_save 模式,为0 时,为active 模式;More Data 为1 时,表明至少还有一个数据帧要发送给STA ;当Protected Frame 为1 时,帧体数据是加密的,0 是明文。Order 值为1 时,长帧分段传送采用严格编号方式,否则为0。
本文构建WLAN 信号分析系统,采用了多层软件设计:分为捕获层、数据及挖掘和分析层、呈现层其系统架构图如图4。
图4 系统架构图
图5 WIFI 商业线下分析系统
(1)捕获层
捕获端与无线网卡一同工作,部署在实际的使用环境中,例如大型商场。捕获端与数据库通过网络连接,作用是捕获数据包并进行预处理,然后插入数据库中以待进一步的数据挖掘处理。捕获端可以有多个,一同工作,同时向数据库输出信息。
(2)数据库及挖掘分析层
数据库负责存储捕获端捕获的数据,数据库端采用MySQL。数据挖掘层主要用于不同采集端从其所在位置发送给数据库合并数据,对数据进行清洗过滤,同时计算顾客的相应的行为,停留时间,结合历史数据对其行为进行分析。此外,还可以通过设置进行数据跟踪单一顾客行为。经过统计分析和处理形成客流数据,并构建Web 服务进行发布。
(3)呈现层
呈现层把数据挖掘曾挖掘出的数据与统计结果等呈现给本系统的最终用户,如商场管理人员,业主等。呈现层可以是多种多样的,如WEB,Android 客户端,IOS 客户端,桌面应用程序等。
如图5WIFI 商业线下分析系统能够准确识别周边WLAN 信号,区分AP 与STA,并将移动终端的生成厂家进行识别,计算顾客的信号强度、停留时间、出现次数。还可以对当前人数、当天人数,当日新顾客和老顾客、AP 数量和所有顾客的平均停留时间进行统计,然后将数据存储于网络数据库。该客户端可以部署在运行LINUX 系统的嵌入式和PC 设备上。
(1)抓取的数据包内不包含发送者的MAC 地址
问题描述:在实验中,会收到不包含发送者的MAC 地址的数据包。这会导致程序无法判断数据包的来源出现异常。这些数据包属于特定的WLAN 控制帧,本文在程序的数据包处理模块将此类控制帧的数据包过滤丢弃。
(2)出现用户抖动现象
问题描述:处在系统信号接收范围边缘的设备,由于文中提到的影响信号强度的各种原因,信号强度时大时小,而其设备本身并未移动,容易造成使系统误判其来回进出商场。本文根据日常生活中的真实情况,某顾客来回反复进出商场是不合理的。为避免上述情况,本文设定如果某设备频繁进出,且信号强度小于一定阈值,则认为该设备是有效的,忽略此类信息。
本文构建的基于WLAN 监听的线下商业客流分析,详细的分析了系统的解决方案和实施过程中存在的工程问题。通过实验找出了部署成本较低的线下客流分析方案,实验结果也表明该系统的有效性和商业使用性,该系统可为商业卖场等提供成本较低的线下客流分析提供解决方案。
[1]滕劲,徐昌庆. WiFi 中多AP 间快速切换的研究与实现[J]. 通信技术,2009(11):121 -123.
[2]杨卫东. IEEE802.11 无线网络媒体访问控制及认证协议研究[D].西安:西安电子科技大学,2008.
[3]聂家发. 关于802.11 协议的研究[D].哈尔滨:哈尔滨工程大学,2004.
[4]李浩,高泽华,高峰,等. IEEE 802.11 无线局域网标准研究[J]. 计算机应用研究,2009,05:1616 -1620.