王存睿,段曉東
(大連民族學(xué)院 大連市民族文化數(shù)字技術(shù)重點(diǎn)實(shí)驗(yàn)室,遼寧 大連116605)
線(xiàn)上電子商務(wù)供求信息在生產(chǎn)者與銷(xiāo)售商,銷(xiāo)售商與消費(fèi)者之間傳遞的非常流暢,生產(chǎn)者更能了解消費(fèi)者的需求,消費(fèi)者也更容易第一時(shí)間從生產(chǎn)者和銷(xiāo)售商處獲得產(chǎn)品信息。相比之下,線(xiàn)下商業(yè)受到了線(xiàn)上電子商務(wù)一定程度的擠壓,并且隨著線(xiàn)下商業(yè)自身的發(fā)展,對(duì)科學(xué)、精細(xì)化管理的需求日益迫切。線(xiàn)下商業(yè)數(shù)據(jù)具有復(fù)雜性與不確定性的特點(diǎn)。以往通過(guò)問(wèn)卷隨機(jī)調(diào)查等方式獲取客流量、顧客偏愛(ài)產(chǎn)品等經(jīng)營(yíng)數(shù)據(jù)難度十分大。
客流分析通過(guò)識(shí)別移動(dòng)設(shè)備WLAN(Wireless LAN,簡(jiǎn)記WLAN)信號(hào)對(duì)客流實(shí)施監(jiān)測(cè)[1]。這種方式具有非接觸性和準(zhǔn)確性的特點(diǎn),無(wú)需顧客接入商場(chǎng)WiFi 網(wǎng)絡(luò)。本文構(gòu)建了基于WALN 的線(xiàn)下客流分析方法和技術(shù),通過(guò)對(duì)手機(jī)WLAN 信號(hào)數(shù)據(jù)包的截獲來(lái)分析客流行為。這些數(shù)據(jù)可以幫助商家更全面了解顧客群,優(yōu)化服務(wù)策略,提升收益。
無(wú)線(xiàn)局域網(wǎng)多采用IEEE802.11 標(biāo)準(zhǔn),工作在2.4G 和5G 頻段下,其中2.4G 頻段(2412MHz -2467MHz)為WLAN 中主要使用頻段,大多數(shù)WLAN 設(shè)備都可以工作在該頻段下,該頻段在全球大部分地區(qū)分為了11 個(gè)頻道。
WLAN 設(shè)備工作在一個(gè)頻道下,在該頻道中存在多個(gè)無(wú)線(xiàn)局域網(wǎng)。WLAN 主要由站(Station,STA)、接 入 點(diǎn)(Access Point,AP)、無(wú) 線(xiàn) 介 質(zhì)(Wireless Medium,WM)和分布式系統(tǒng)(Distribution System,DS)組成。主要設(shè)備包含兩類(lèi),一類(lèi)是WLAN 接入點(diǎn)AP,另一類(lèi)是WLAN 客戶(hù)端STA,AP 的作用是為STA 提供接入服務(wù)[1]。STA 要先連接注冊(cè)到某無(wú)線(xiàn)局域網(wǎng)中,這時(shí)網(wǎng)卡會(huì)在所有支持的頻道反復(fù)掃描,接收Beacon 數(shù)據(jù)包,Beacon包是由AP 在其工作的頻道上不斷發(fā)出的。Beacon 包的作用是向所有的STA 進(jìn)行廣播,告訴一個(gè)無(wú)線(xiàn)局域網(wǎng)存在并可以連接。
STA 當(dāng)沒(méi)有數(shù)據(jù)包要發(fā)送的時(shí)候在某特定的頻率上監(jiān)聽(tīng),如數(shù)據(jù)包的發(fā)送者不是與其連接的AP,則直接丟棄數(shù)據(jù)包,如果是與自己連接的那臺(tái)AP 則收到數(shù)據(jù)包后,進(jìn)行完整性校驗(yàn),如果數(shù)據(jù)包損壞則直接丟棄;如果數(shù)據(jù)包完整,則驗(yàn)證數(shù)據(jù)包接收者M(jìn)AC 地址是否與自身MAC 地址相符,如不是則丟棄該數(shù)據(jù)包;如果是,則將數(shù)據(jù)包交給操作系統(tǒng)內(nèi)核進(jìn)一步處理。從流程中可以看出,如按照正常的網(wǎng)卡工作流程,無(wú)法獲得所需要的信息,因?yàn)閿?shù)據(jù)包在網(wǎng)卡驅(qū)動(dòng)程序?qū)泳椭苯颖粊G棄。要截獲和分析數(shù)據(jù)需要對(duì)WALN 的混雜模式(Promiscuous Mode)和監(jiān)聽(tīng)模式(Monitor Mode)進(jìn)行分析?;祀s模式(Promiscuous Mode)下,網(wǎng)卡對(duì)收到的數(shù)據(jù)包只會(huì)進(jìn)行完整性校驗(yàn),無(wú)線(xiàn)局域網(wǎng)是需要STA 主動(dòng)連接AP 加入網(wǎng)絡(luò),因不可能獲得所有AP 的密碼,所以也就無(wú)法與其連接獲取數(shù)據(jù)包。監(jiān)聽(tīng)模式(Monitor Mode)是無(wú)線(xiàn)網(wǎng)卡所特有的一種極為特殊的工作模式,網(wǎng)卡不加入任何無(wú)線(xiàn)局域網(wǎng),而是直接在指定的某一個(gè)頻道下監(jiān)聽(tīng)所有設(shè)備發(fā)出的數(shù)據(jù)包,接收到數(shù)據(jù)包后,校驗(yàn)數(shù)據(jù)包的完整性,將數(shù)據(jù)包交給內(nèi)核處理。因此監(jiān)聽(tīng)模式適于對(duì)移動(dòng)設(shè)備進(jìn)行數(shù)據(jù)分析和統(tǒng)計(jì)。
無(wú)線(xiàn)網(wǎng)卡只能工作在WLAN11 個(gè)頻道中的一個(gè)頻道,最大限度獲取盡可能多的數(shù)據(jù)包成為首要解決的問(wèn)題。本文給出兩種技術(shù)方案:一種解決方案構(gòu)建由11 張網(wǎng)卡組成的陣列,每個(gè)網(wǎng)卡處于1 個(gè)頻道中,優(yōu)點(diǎn)是可以毫不遺漏地接收到所有的數(shù)據(jù)包,缺點(diǎn)是硬件成本過(guò)高,并且協(xié)調(diào)處理這11 個(gè)網(wǎng)卡捕獲到的數(shù)據(jù)較為復(fù)雜[2];另一種解決方案是網(wǎng)卡跳頻技術(shù),即無(wú)線(xiàn)網(wǎng)卡先在某一個(gè)頻道工作一段時(shí)間,然后切換到另一個(gè)頻道再工作一段時(shí)間,再切換到下一個(gè)頻道進(jìn)行循環(huán)。該技術(shù)方案優(yōu)點(diǎn)是硬件成本低,方便數(shù)據(jù)處理,缺點(diǎn)是無(wú)法獲取全部的數(shù)據(jù)包,會(huì)遺漏剩余10 個(gè)頻道的信息。經(jīng)過(guò)大量實(shí)驗(yàn)證明WLAN 設(shè)備在無(wú)線(xiàn)局域網(wǎng)中發(fā)送數(shù)據(jù)包極為頻繁,每秒鐘最多可以達(dá)到上百個(gè)數(shù)據(jù)包,采用跳頻技術(shù)雖會(huì)遺漏部分?jǐn)?shù)據(jù),但是如果跳頻時(shí)間間隔設(shè)置合理,可以收集到足夠多的數(shù)據(jù)包進(jìn)行無(wú)線(xiàn)設(shè)備行為分析。本文對(duì)跳頻技術(shù)方案進(jìn)行測(cè)試及驗(yàn)證,參數(shù)包括頻道和跳頻間隔時(shí)間。
(1)確定采集頻道
采集WLAN 數(shù)據(jù)并不需要在所有頻道捕獲數(shù)據(jù)包,而只需要在1、6、11 頻道捕獲,因?yàn)?02.11標(biāo)準(zhǔn)把2.4 GHz 的頻段劃分為14 個(gè)互相重疊的頻道(中國(guó)使用1 ~11 頻道),每個(gè)頻道的中心頻率相差5MHz,在每個(gè)頻道發(fā)射與接收時(shí),雖然只使用中心頻率附近的一段頻寬,可還會(huì)對(duì)周?chē)念l道造成干擾。由于802.11 標(biāo)準(zhǔn)沒(méi)有規(guī)定每個(gè)頻道的頻寬,而只分別規(guī)定了中心頻率與頻譜遮蔽(Spectral Mask),頻譜遮蔽的含義是正常發(fā)射時(shí)對(duì)周?chē)l率的影響程度。802.11b 的頻譜遮蔽要求為:在中心頻率±11 MHz 處,至少衰減30 dB(只剩發(fā)射功率的1/2^30),±22 MHz 處要衰減50 dB(只剩發(fā)射功率的1/2^50)。頻譜遮蔽只規(guī)定到距離中心頻率±22 MHz 處的射頻能量限制,所以實(shí)際應(yīng)用中都認(rèn)為一個(gè)頻道所影響的頻寬小于44 MHz(±22MHz)。
頻道1 與6、6 與11 之間間隔25 MHz,大于22 MHz,所以1 與6、6 與11 頻道之間互相影響和干擾較少,為3 個(gè)最優(yōu)頻道。實(shí)際中絕大多數(shù)的AP 都工作在這3 個(gè)頻道下,正規(guī)運(yùn)營(yíng)商在公共場(chǎng)所架設(shè)的AP 全部工作也在這3 個(gè)頻道下。因此系統(tǒng)只需要在這3 個(gè)頻率下捕捉數(shù)據(jù)包。即使有架設(shè)不規(guī)范的AP 設(shè)備,工作在1、6、11 頻道以外的頻道上,也能捕捉到鏈接到這個(gè)AP 上的WLAN設(shè)備發(fā)出的信號(hào)。因?yàn)榧幢鉝LAN 設(shè)備已經(jīng)連接上了一個(gè)AP,為了保證可在AP 之間漫游的特性,WLAN 設(shè)備還會(huì)繼續(xù)在所有的頻道定期廣播一種叫Prob 包的控制包,Prob 包的作用是請(qǐng)求AP 信息,AP 在收到Prob 包之后會(huì)主動(dòng)把自身信息參數(shù)發(fā)回給Prob 包的發(fā)出者。因此即便有不規(guī)范的AP 工作在1、6、11 以外的頻道上,與其鏈接的STA 依然會(huì)在1、6、11 頻道里發(fā)送Prob 包,捕捉到這些Prob 包后,可以從中提取有用信息,實(shí)現(xiàn)對(duì)這個(gè)STA 的監(jiān)測(cè)與統(tǒng)計(jì)。
(2)跳頻間隔實(shí)驗(yàn)
確定在哪幾個(gè)頻道內(nèi)捕獲數(shù)據(jù)包以后,還需要確定跳頻的間隔。為了確定跳頻的最佳間隔,本文設(shè)計(jì)并進(jìn)行了如下實(shí)驗(yàn):在一個(gè)相對(duì)穩(wěn)定的無(wú)線(xiàn)網(wǎng)絡(luò)環(huán)境下,編寫(xiě)實(shí)驗(yàn)程序進(jìn)行抓包。首先不進(jìn)行跳頻,分別在1、6、11 頻道各抓包1 min,統(tǒng)計(jì)抓到的數(shù)據(jù)包個(gè)數(shù),作為基準(zhǔn)值。然后從間隔0.1 s 開(kāi)始,在1、6、11 頻道跳頻,進(jìn)行抓包,抓包時(shí)長(zhǎng)1 min,統(tǒng)計(jì)抓到的數(shù)據(jù)包個(gè)數(shù)以及這些數(shù)據(jù)包來(lái)自多少個(gè)不同的WLAN 設(shè)備。以0.1 s 為步長(zhǎng),分別間隔0.2,0.3,0.4……1 s 跳頻,重復(fù)上述步驟,進(jìn)行抓包并統(tǒng)計(jì)。另外,為了驗(yàn)證跳頻時(shí)間間隔過(guò)短會(huì)對(duì)系統(tǒng)性能造成嚴(yán)重影響,還分別以間隔1μs,1 ms,10 ms 為間隔,進(jìn)行上述實(shí)驗(yàn)。網(wǎng)絡(luò)環(huán)境的6 頻道最為繁忙,1 頻道不定期會(huì)出現(xiàn)較多數(shù)據(jù)包,11 頻道幾乎沒(méi)有數(shù)據(jù)包。在這種環(huán)境下,實(shí)驗(yàn)結(jié)果較為明顯。捕獲不到數(shù)據(jù)包的時(shí)間包括跳頻過(guò)程中的時(shí)間和在空閑頻道的時(shí)間,如果跳頻間隔過(guò)短,跳頻過(guò)程中的時(shí)間會(huì)占據(jù)很大的一份比例。如果跳頻間隔過(guò)長(zhǎng),則很容易留在空閑頻道而錯(cuò)過(guò)其它頻道的數(shù)據(jù)包。最終捕獲的數(shù)據(jù)包個(gè)數(shù)最多的跳頻間隔為最優(yōu)間隔。重復(fù)實(shí)驗(yàn)10 次,得到的平均值見(jiàn)表1。
表1 不同跳頻間隔時(shí)間下的數(shù)據(jù)捕獲結(jié)果
由實(shí)驗(yàn)結(jié)果可以明顯看出,當(dāng)跳頻間隔為0.6 s時(shí),捕獲的數(shù)據(jù)包數(shù)量最多,0.6 s 的間隔為最優(yōu)間隔。
捕獲有效數(shù)據(jù)包后,要從中分離有用的信息。802.11 協(xié)議下,無(wú)線(xiàn)局域網(wǎng)中的數(shù)據(jù)幀(包)的結(jié)構(gòu)與類(lèi)型如圖1[3-4]。
圖1 IEEE802.11 所規(guī)定的基本幀格式
Preamble 是一個(gè)前置標(biāo)志,告訴設(shè)備這是一個(gè)802.11 數(shù)據(jù)幀;PLCP 域中是一些物理層的協(xié)議參數(shù),顯然Preamble 及PLCP 是物理層的細(xì)節(jié);MAC 層處理幀數(shù)據(jù),截取圖1 中MAC 頭開(kāi)始的部分構(gòu)成MAC 幀格式如圖2。
圖2 MAC 幀格式
其中MAC Header(MAC 頭):Frame Control(幀控制域)、Duration/ID(持續(xù)時(shí)間/標(biāo)識(shí))、Address(地址域)、Sequence Control(序列控制域)、QoS Control(服務(wù)質(zhì)量控制)。Frame Control 格式如圖3。
圖3 幀控制域的格式
Protocol Version 默認(rèn)值為0;Type 與Subtype的作用是判定幀的類(lèi)型;To DS 是指該幀是從BSS發(fā)送到DS 的幀;而From DS 卻相反,是指由DS 向BSS 發(fā)送的幀;More Frag 用于說(shuō)明是否還有后續(xù)幀;Retry 主要用于幀的重傳。當(dāng)Pwr Mgt 為1 時(shí),STA 為power_save 模式,為0 時(shí),為active 模式;More Data 為1 時(shí),表明至少還有一個(gè)數(shù)據(jù)幀要發(fā)送給STA ;當(dāng)Protected Frame 為1 時(shí),幀體數(shù)據(jù)是加密的,0 是明文。Order 值為1 時(shí),長(zhǎng)幀分段傳送采用嚴(yán)格編號(hào)方式,否則為0。
本文構(gòu)建WLAN 信號(hào)分析系統(tǒng),采用了多層軟件設(shè)計(jì):分為捕獲層、數(shù)據(jù)及挖掘和分析層、呈現(xiàn)層其系統(tǒng)架構(gòu)圖如圖4。
圖4 系統(tǒng)架構(gòu)圖
圖5 WIFI 商業(yè)線(xiàn)下分析系統(tǒng)
(1)捕獲層
捕獲端與無(wú)線(xiàn)網(wǎng)卡一同工作,部署在實(shí)際的使用環(huán)境中,例如大型商場(chǎng)。捕獲端與數(shù)據(jù)庫(kù)通過(guò)網(wǎng)絡(luò)連接,作用是捕獲數(shù)據(jù)包并進(jìn)行預(yù)處理,然后插入數(shù)據(jù)庫(kù)中以待進(jìn)一步的數(shù)據(jù)挖掘處理。捕獲端可以有多個(gè),一同工作,同時(shí)向數(shù)據(jù)庫(kù)輸出信息。
(2)數(shù)據(jù)庫(kù)及挖掘分析層
數(shù)據(jù)庫(kù)負(fù)責(zé)存儲(chǔ)捕獲端捕獲的數(shù)據(jù),數(shù)據(jù)庫(kù)端采用MySQL。數(shù)據(jù)挖掘?qū)又饕糜诓煌杉藦钠渌谖恢冒l(fā)送給數(shù)據(jù)庫(kù)合并數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行清洗過(guò)濾,同時(shí)計(jì)算顧客的相應(yīng)的行為,停留時(shí)間,結(jié)合歷史數(shù)據(jù)對(duì)其行為進(jìn)行分析。此外,還可以通過(guò)設(shè)置進(jìn)行數(shù)據(jù)跟蹤單一顧客行為。經(jīng)過(guò)統(tǒng)計(jì)分析和處理形成客流數(shù)據(jù),并構(gòu)建Web 服務(wù)進(jìn)行發(fā)布。
(3)呈現(xiàn)層
呈現(xiàn)層把數(shù)據(jù)挖掘曾挖掘出的數(shù)據(jù)與統(tǒng)計(jì)結(jié)果等呈現(xiàn)給本系統(tǒng)的最終用戶(hù),如商場(chǎng)管理人員,業(yè)主等。呈現(xiàn)層可以是多種多樣的,如WEB,Android 客戶(hù)端,IOS 客戶(hù)端,桌面應(yīng)用程序等。
如圖5WIFI 商業(yè)線(xiàn)下分析系統(tǒng)能夠準(zhǔn)確識(shí)別周邊WLAN 信號(hào),區(qū)分AP 與STA,并將移動(dòng)終端的生成廠(chǎng)家進(jìn)行識(shí)別,計(jì)算顧客的信號(hào)強(qiáng)度、停留時(shí)間、出現(xiàn)次數(shù)。還可以對(duì)當(dāng)前人數(shù)、當(dāng)天人數(shù),當(dāng)日新顧客和老顧客、AP 數(shù)量和所有顧客的平均停留時(shí)間進(jìn)行統(tǒng)計(jì),然后將數(shù)據(jù)存儲(chǔ)于網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。該客戶(hù)端可以部署在運(yùn)行LINUX 系統(tǒng)的嵌入式和PC 設(shè)備上。
(1)抓取的數(shù)據(jù)包內(nèi)不包含發(fā)送者的MAC 地址
問(wèn)題描述:在實(shí)驗(yàn)中,會(huì)收到不包含發(fā)送者的MAC 地址的數(shù)據(jù)包。這會(huì)導(dǎo)致程序無(wú)法判斷數(shù)據(jù)包的來(lái)源出現(xiàn)異常。這些數(shù)據(jù)包屬于特定的WLAN 控制幀,本文在程序的數(shù)據(jù)包處理模塊將此類(lèi)控制幀的數(shù)據(jù)包過(guò)濾丟棄。
(2)出現(xiàn)用戶(hù)抖動(dòng)現(xiàn)象
問(wèn)題描述:處在系統(tǒng)信號(hào)接收范圍邊緣的設(shè)備,由于文中提到的影響信號(hào)強(qiáng)度的各種原因,信號(hào)強(qiáng)度時(shí)大時(shí)小,而其設(shè)備本身并未移動(dòng),容易造成使系統(tǒng)誤判其來(lái)回進(jìn)出商場(chǎng)。本文根據(jù)日常生活中的真實(shí)情況,某顧客來(lái)回反復(fù)進(jìn)出商場(chǎng)是不合理的。為避免上述情況,本文設(shè)定如果某設(shè)備頻繁進(jìn)出,且信號(hào)強(qiáng)度小于一定閾值,則認(rèn)為該設(shè)備是有效的,忽略此類(lèi)信息。
本文構(gòu)建的基于WLAN 監(jiān)聽(tīng)的線(xiàn)下商業(yè)客流分析,詳細(xì)的分析了系統(tǒng)的解決方案和實(shí)施過(guò)程中存在的工程問(wèn)題。通過(guò)實(shí)驗(yàn)找出了部署成本較低的線(xiàn)下客流分析方案,實(shí)驗(yàn)結(jié)果也表明該系統(tǒng)的有效性和商業(yè)使用性,該系統(tǒng)可為商業(yè)賣(mài)場(chǎng)等提供成本較低的線(xiàn)下客流分析提供解決方案。
[1]滕勁,徐昌慶. WiFi 中多AP 間快速切換的研究與實(shí)現(xiàn)[J]. 通信技術(shù),2009(11):121 -123.
[2]楊衛(wèi)東. IEEE802.11 無(wú)線(xiàn)網(wǎng)絡(luò)媒體訪(fǎng)問(wèn)控制及認(rèn)證協(xié)議研究[D].西安:西安電子科技大學(xué),2008.
[3]聶家發(fā). 關(guān)于802.11 協(xié)議的研究[D].哈爾濱:哈爾濱工程大學(xué),2004.
[4]李浩,高澤華,高峰,等. IEEE 802.11 無(wú)線(xiàn)局域網(wǎng)標(biāo)準(zhǔn)研究[J]. 計(jì)算機(jī)應(yīng)用研究,2009,05:1616 -1620.