王存睿,段曉東
(大連民族學(xué)院 大連市民族文化數(shù)字技術(shù)重點(diǎn)實驗室,遼寧 大連116605)
線上電子商務(wù)供求信息在生產(chǎn)者與銷售商,銷售商與消費(fèi)者之間傳遞的非常流暢,生產(chǎn)者更能了解消費(fèi)者的需求,消費(fèi)者也更容易第一時間從生產(chǎn)者和銷售商處獲得產(chǎn)品信息。相比之下,線下商業(yè)受到了線上電子商務(wù)一定程度的擠壓,并且隨著線下商業(yè)自身的發(fā)展,對科學(xué)、精細(xì)化管理的需求日益迫切。線下商業(yè)數(shù)據(jù)具有復(fù)雜性與不確定性的特點(diǎn)。以往通過問卷隨機(jī)調(diào)查等方式獲取客流量、顧客偏愛產(chǎn)品等經(jīng)營數(shù)據(jù)難度十分大。
客流分析通過識別移動設(shè)備WLAN(Wireless LAN,簡記WLAN)信號對客流實施監(jiān)測[1]。這種方式具有非接觸性和準(zhǔn)確性的特點(diǎn),無需顧客接入商場WiFi 網(wǎng)絡(luò)。本文構(gòu)建了基于WALN 的線下客流分析方法和技術(shù),通過對手機(jī)WLAN 信號數(shù)據(jù)包的截獲來分析客流行為。這些數(shù)據(jù)可以幫助商家更全面了解顧客群,優(yōu)化服務(wù)策略,提升收益。
無線局域網(wǎng)多采用IEEE802.11 標(biāo)準(zhǔn),工作在2.4G 和5G 頻段下,其中2.4G 頻段(2412MHz -2467MHz)為WLAN 中主要使用頻段,大多數(shù)WLAN 設(shè)備都可以工作在該頻段下,該頻段在全球大部分地區(qū)分為了11 個頻道。
WLAN 設(shè)備工作在一個頻道下,在該頻道中存在多個無線局域網(wǎng)。WLAN 主要由站(Station,STA)、接 入 點(diǎn)(Access Point,AP)、無 線 介 質(zhì)(Wireless Medium,WM)和分布式系統(tǒng)(Distribution System,DS)組成。主要設(shè)備包含兩類,一類是WLAN 接入點(diǎn)AP,另一類是WLAN 客戶端STA,AP 的作用是為STA 提供接入服務(wù)[1]。STA 要先連接注冊到某無線局域網(wǎng)中,這時網(wǎng)卡會在所有支持的頻道反復(fù)掃描,接收Beacon 數(shù)據(jù)包,Beacon包是由AP 在其工作的頻道上不斷發(fā)出的。Beacon 包的作用是向所有的STA 進(jìn)行廣播,告訴一個無線局域網(wǎng)存在并可以連接。
STA 當(dāng)沒有數(shù)據(jù)包要發(fā)送的時候在某特定的頻率上監(jiān)聽,如數(shù)據(jù)包的發(fā)送者不是與其連接的AP,則直接丟棄數(shù)據(jù)包,如果是與自己連接的那臺AP 則收到數(shù)據(jù)包后,進(jìn)行完整性校驗,如果數(shù)據(jù)包損壞則直接丟棄;如果數(shù)據(jù)包完整,則驗證數(shù)據(jù)包接收者M(jìn)AC 地址是否與自身MAC 地址相符,如不是則丟棄該數(shù)據(jù)包;如果是,則將數(shù)據(jù)包交給操作系統(tǒng)內(nèi)核進(jìn)一步處理。從流程中可以看出,如按照正常的網(wǎng)卡工作流程,無法獲得所需要的信息,因為數(shù)據(jù)包在網(wǎng)卡驅(qū)動程序?qū)泳椭苯颖粊G棄。要截獲和分析數(shù)據(jù)需要對WALN 的混雜模式(Promiscuous Mode)和監(jiān)聽模式(Monitor Mode)進(jìn)行分析。混雜模式(Promiscuous Mode)下,網(wǎng)卡對收到的數(shù)據(jù)包只會進(jìn)行完整性校驗,無線局域網(wǎng)是需要STA 主動連接AP 加入網(wǎng)絡(luò),因不可能獲得所有AP 的密碼,所以也就無法與其連接獲取數(shù)據(jù)包。監(jiān)聽模式(Monitor Mode)是無線網(wǎng)卡所特有的一種極為特殊的工作模式,網(wǎng)卡不加入任何無線局域網(wǎng),而是直接在指定的某一個頻道下監(jiān)聽所有設(shè)備發(fā)出的數(shù)據(jù)包,接收到數(shù)據(jù)包后,校驗數(shù)據(jù)包的完整性,將數(shù)據(jù)包交給內(nèi)核處理。因此監(jiān)聽模式適于對移動設(shè)備進(jìn)行數(shù)據(jù)分析和統(tǒng)計。
無線網(wǎng)卡只能工作在WLAN11 個頻道中的一個頻道,最大限度獲取盡可能多的數(shù)據(jù)包成為首要解決的問題。本文給出兩種技術(shù)方案:一種解決方案構(gòu)建由11 張網(wǎng)卡組成的陣列,每個網(wǎng)卡處于1 個頻道中,優(yōu)點(diǎn)是可以毫不遺漏地接收到所有的數(shù)據(jù)包,缺點(diǎn)是硬件成本過高,并且協(xié)調(diào)處理這11 個網(wǎng)卡捕獲到的數(shù)據(jù)較為復(fù)雜[2];另一種解決方案是網(wǎng)卡跳頻技術(shù),即無線網(wǎng)卡先在某一個頻道工作一段時間,然后切換到另一個頻道再工作一段時間,再切換到下一個頻道進(jìn)行循環(huán)。該技術(shù)方案優(yōu)點(diǎn)是硬件成本低,方便數(shù)據(jù)處理,缺點(diǎn)是無法獲取全部的數(shù)據(jù)包,會遺漏剩余10 個頻道的信息。經(jīng)過大量實驗證明WLAN 設(shè)備在無線局域網(wǎng)中發(fā)送數(shù)據(jù)包極為頻繁,每秒鐘最多可以達(dá)到上百個數(shù)據(jù)包,采用跳頻技術(shù)雖會遺漏部分?jǐn)?shù)據(jù),但是如果跳頻時間間隔設(shè)置合理,可以收集到足夠多的數(shù)據(jù)包進(jìn)行無線設(shè)備行為分析。本文對跳頻技術(shù)方案進(jìn)行測試及驗證,參數(shù)包括頻道和跳頻間隔時間。
(1)確定采集頻道
采集WLAN 數(shù)據(jù)并不需要在所有頻道捕獲數(shù)據(jù)包,而只需要在1、6、11 頻道捕獲,因為802.11標(biāo)準(zhǔn)把2.4 GHz 的頻段劃分為14 個互相重疊的頻道(中國使用1 ~11 頻道),每個頻道的中心頻率相差5MHz,在每個頻道發(fā)射與接收時,雖然只使用中心頻率附近的一段頻寬,可還會對周圍的頻道造成干擾。由于802.11 標(biāo)準(zhǔn)沒有規(guī)定每個頻道的頻寬,而只分別規(guī)定了中心頻率與頻譜遮蔽(Spectral Mask),頻譜遮蔽的含義是正常發(fā)射時對周圍頻率的影響程度。802.11b 的頻譜遮蔽要求為:在中心頻率±11 MHz 處,至少衰減30 dB(只剩發(fā)射功率的1/2^30),±22 MHz 處要衰減50 dB(只剩發(fā)射功率的1/2^50)。頻譜遮蔽只規(guī)定到距離中心頻率±22 MHz 處的射頻能量限制,所以實際應(yīng)用中都認(rèn)為一個頻道所影響的頻寬小于44 MHz(±22MHz)。
頻道1 與6、6 與11 之間間隔25 MHz,大于22 MHz,所以1 與6、6 與11 頻道之間互相影響和干擾較少,為3 個最優(yōu)頻道。實際中絕大多數(shù)的AP 都工作在這3 個頻道下,正規(guī)運(yùn)營商在公共場所架設(shè)的AP 全部工作也在這3 個頻道下。因此系統(tǒng)只需要在這3 個頻率下捕捉數(shù)據(jù)包。即使有架設(shè)不規(guī)范的AP 設(shè)備,工作在1、6、11 頻道以外的頻道上,也能捕捉到鏈接到這個AP 上的WLAN設(shè)備發(fā)出的信號。因為即便WLAN 設(shè)備已經(jīng)連接上了一個AP,為了保證可在AP 之間漫游的特性,WLAN 設(shè)備還會繼續(xù)在所有的頻道定期廣播一種叫Prob 包的控制包,Prob 包的作用是請求AP 信息,AP 在收到Prob 包之后會主動把自身信息參數(shù)發(fā)回給Prob 包的發(fā)出者。因此即便有不規(guī)范的AP 工作在1、6、11 以外的頻道上,與其鏈接的STA 依然會在1、6、11 頻道里發(fā)送Prob 包,捕捉到這些Prob 包后,可以從中提取有用信息,實現(xiàn)對這個STA 的監(jiān)測與統(tǒng)計。
(2)跳頻間隔實驗
確定在哪幾個頻道內(nèi)捕獲數(shù)據(jù)包以后,還需要確定跳頻的間隔。為了確定跳頻的最佳間隔,本文設(shè)計并進(jìn)行了如下實驗:在一個相對穩(wěn)定的無線網(wǎng)絡(luò)環(huán)境下,編寫實驗程序進(jìn)行抓包。首先不進(jìn)行跳頻,分別在1、6、11 頻道各抓包1 min,統(tǒng)計抓到的數(shù)據(jù)包個數(shù),作為基準(zhǔn)值。然后從間隔0.1 s 開始,在1、6、11 頻道跳頻,進(jìn)行抓包,抓包時長1 min,統(tǒng)計抓到的數(shù)據(jù)包個數(shù)以及這些數(shù)據(jù)包來自多少個不同的WLAN 設(shè)備。以0.1 s 為步長,分別間隔0.2,0.3,0.4……1 s 跳頻,重復(fù)上述步驟,進(jìn)行抓包并統(tǒng)計。另外,為了驗證跳頻時間間隔過短會對系統(tǒng)性能造成嚴(yán)重影響,還分別以間隔1μs,1 ms,10 ms 為間隔,進(jìn)行上述實驗。網(wǎng)絡(luò)環(huán)境的6 頻道最為繁忙,1 頻道不定期會出現(xiàn)較多數(shù)據(jù)包,11 頻道幾乎沒有數(shù)據(jù)包。在這種環(huán)境下,實驗結(jié)果較為明顯。捕獲不到數(shù)據(jù)包的時間包括跳頻過程中的時間和在空閑頻道的時間,如果跳頻間隔過短,跳頻過程中的時間會占據(jù)很大的一份比例。如果跳頻間隔過長,則很容易留在空閑頻道而錯過其它頻道的數(shù)據(jù)包。最終捕獲的數(shù)據(jù)包個數(shù)最多的跳頻間隔為最優(yōu)間隔。重復(fù)實驗10 次,得到的平均值見表1。

表1 不同跳頻間隔時間下的數(shù)據(jù)捕獲結(jié)果
由實驗結(jié)果可以明顯看出,當(dāng)跳頻間隔為0.6 s時,捕獲的數(shù)據(jù)包數(shù)量最多,0.6 s 的間隔為最優(yōu)間隔。
捕獲有效數(shù)據(jù)包后,要從中分離有用的信息。802.11 協(xié)議下,無線局域網(wǎng)中的數(shù)據(jù)幀(包)的結(jié)構(gòu)與類型如圖1[3-4]。

圖1 IEEE802.11 所規(guī)定的基本幀格式
Preamble 是一個前置標(biāo)志,告訴設(shè)備這是一個802.11 數(shù)據(jù)幀;PLCP 域中是一些物理層的協(xié)議參數(shù),顯然Preamble 及PLCP 是物理層的細(xì)節(jié);MAC 層處理幀數(shù)據(jù),截取圖1 中MAC 頭開始的部分構(gòu)成MAC 幀格式如圖2。

圖2 MAC 幀格式
其中MAC Header(MAC 頭):Frame Control(幀控制域)、Duration/ID(持續(xù)時間/標(biāo)識)、Address(地址域)、Sequence Control(序列控制域)、QoS Control(服務(wù)質(zhì)量控制)。Frame Control 格式如圖3。

圖3 幀控制域的格式
Protocol Version 默認(rèn)值為0;Type 與Subtype的作用是判定幀的類型;To DS 是指該幀是從BSS發(fā)送到DS 的幀;而From DS 卻相反,是指由DS 向BSS 發(fā)送的幀;More Frag 用于說明是否還有后續(xù)幀;Retry 主要用于幀的重傳。當(dāng)Pwr Mgt 為1 時,STA 為power_save 模式,為0 時,為active 模式;More Data 為1 時,表明至少還有一個數(shù)據(jù)幀要發(fā)送給STA ;當(dāng)Protected Frame 為1 時,幀體數(shù)據(jù)是加密的,0 是明文。Order 值為1 時,長幀分段傳送采用嚴(yán)格編號方式,否則為0。
本文構(gòu)建WLAN 信號分析系統(tǒng),采用了多層軟件設(shè)計:分為捕獲層、數(shù)據(jù)及挖掘和分析層、呈現(xiàn)層其系統(tǒng)架構(gòu)圖如圖4。

圖4 系統(tǒng)架構(gòu)圖

圖5 WIFI 商業(yè)線下分析系統(tǒng)
(1)捕獲層
捕獲端與無線網(wǎng)卡一同工作,部署在實際的使用環(huán)境中,例如大型商場。捕獲端與數(shù)據(jù)庫通過網(wǎng)絡(luò)連接,作用是捕獲數(shù)據(jù)包并進(jìn)行預(yù)處理,然后插入數(shù)據(jù)庫中以待進(jìn)一步的數(shù)據(jù)挖掘處理。捕獲端可以有多個,一同工作,同時向數(shù)據(jù)庫輸出信息。
(2)數(shù)據(jù)庫及挖掘分析層
數(shù)據(jù)庫負(fù)責(zé)存儲捕獲端捕獲的數(shù)據(jù),數(shù)據(jù)庫端采用MySQL。數(shù)據(jù)挖掘?qū)又饕糜诓煌杉藦钠渌谖恢冒l(fā)送給數(shù)據(jù)庫合并數(shù)據(jù),對數(shù)據(jù)進(jìn)行清洗過濾,同時計算顧客的相應(yīng)的行為,停留時間,結(jié)合歷史數(shù)據(jù)對其行為進(jìn)行分析。此外,還可以通過設(shè)置進(jìn)行數(shù)據(jù)跟蹤單一顧客行為。經(jīng)過統(tǒng)計分析和處理形成客流數(shù)據(jù),并構(gòu)建Web 服務(wù)進(jìn)行發(fā)布。
(3)呈現(xiàn)層
呈現(xiàn)層把數(shù)據(jù)挖掘曾挖掘出的數(shù)據(jù)與統(tǒng)計結(jié)果等呈現(xiàn)給本系統(tǒng)的最終用戶,如商場管理人員,業(yè)主等。呈現(xiàn)層可以是多種多樣的,如WEB,Android 客戶端,IOS 客戶端,桌面應(yīng)用程序等。
如圖5WIFI 商業(yè)線下分析系統(tǒng)能夠準(zhǔn)確識別周邊WLAN 信號,區(qū)分AP 與STA,并將移動終端的生成廠家進(jìn)行識別,計算顧客的信號強(qiáng)度、停留時間、出現(xiàn)次數(shù)。還可以對當(dāng)前人數(shù)、當(dāng)天人數(shù),當(dāng)日新顧客和老顧客、AP 數(shù)量和所有顧客的平均停留時間進(jìn)行統(tǒng)計,然后將數(shù)據(jù)存儲于網(wǎng)絡(luò)數(shù)據(jù)庫。該客戶端可以部署在運(yùn)行LINUX 系統(tǒng)的嵌入式和PC 設(shè)備上。
(1)抓取的數(shù)據(jù)包內(nèi)不包含發(fā)送者的MAC 地址
問題描述:在實驗中,會收到不包含發(fā)送者的MAC 地址的數(shù)據(jù)包。這會導(dǎo)致程序無法判斷數(shù)據(jù)包的來源出現(xiàn)異常。這些數(shù)據(jù)包屬于特定的WLAN 控制幀,本文在程序的數(shù)據(jù)包處理模塊將此類控制幀的數(shù)據(jù)包過濾丟棄。
(2)出現(xiàn)用戶抖動現(xiàn)象
問題描述:處在系統(tǒng)信號接收范圍邊緣的設(shè)備,由于文中提到的影響信號強(qiáng)度的各種原因,信號強(qiáng)度時大時小,而其設(shè)備本身并未移動,容易造成使系統(tǒng)誤判其來回進(jìn)出商場。本文根據(jù)日常生活中的真實情況,某顧客來回反復(fù)進(jìn)出商場是不合理的。為避免上述情況,本文設(shè)定如果某設(shè)備頻繁進(jìn)出,且信號強(qiáng)度小于一定閾值,則認(rèn)為該設(shè)備是有效的,忽略此類信息。
本文構(gòu)建的基于WLAN 監(jiān)聽的線下商業(yè)客流分析,詳細(xì)的分析了系統(tǒng)的解決方案和實施過程中存在的工程問題。通過實驗找出了部署成本較低的線下客流分析方案,實驗結(jié)果也表明該系統(tǒng)的有效性和商業(yè)使用性,該系統(tǒng)可為商業(yè)賣場等提供成本較低的線下客流分析提供解決方案。
[1]滕勁,徐昌慶. WiFi 中多AP 間快速切換的研究與實現(xiàn)[J]. 通信技術(shù),2009(11):121 -123.
[2]楊衛(wèi)東. IEEE802.11 無線網(wǎng)絡(luò)媒體訪問控制及認(rèn)證協(xié)議研究[D].西安:西安電子科技大學(xué),2008.
[3]聶家發(fā). 關(guān)于802.11 協(xié)議的研究[D].哈爾濱:哈爾濱工程大學(xué),2004.
[4]李浩,高澤華,高峰,等. IEEE 802.11 無線局域網(wǎng)標(biāo)準(zhǔn)研究[J]. 計算機(jī)應(yīng)用研究,2009,05:1616 -1620.