高 軍, 王仲逸, 汪硯鋮, 高澤坤
(1. 東北大學秦皇島分校 計算機與通信工程學院, 河北 秦皇島 066004;2. 浙江大學 海洋學院, 浙江 舟山 316021)
在高校開放實驗室,會采用指紋簽到[1-2]、打卡(門禁)[3-4]等考勤方式記錄學生進出和使用實驗室的信息。這些傳統考勤方式不能實時統計實驗室內人數,而且考勤過程煩瑣,當同時進入實驗室的人數較多時容易造成擁擠。本文提出一種基于Wi-Fi嗅探技術的開放實驗室人員統計管理系統。當學生攜帶的智能手機Wi-Fi處于喚醒狀態時,會被該系統的Wi-Fi嗅探器捕獲。該學生在實驗室的時間、位置將被實時記錄。相比于傳統考勤方式,不但有效地提高了簽到效率,還可以提供各個時段學生名單、人數以及實驗室使用率等數據信息,輔助實驗室的優化管理。
在IEEE 802.11協議中,移動設備接入Wi-Fi的過程有掃描(scanning)、認證(authentication)和關聯(association)。
在掃描階段,移動終端發現AP有兩種方式:(1)被動掃描,掃描過程中不需要傳送任何關聯信號;(2)主動掃描,移動終端以主動的方式在每個信道上發出探測請求幀(probe request),請求某個無線網絡回應。若某個信道收到幀,則可以進行探測。
在認證階段,AP進行身份驗證,通過驗證后,移動終端才能進行訪問。
在關聯階段,AP返回認證相應信息,認證通過后可以進行關聯,然后成功接入并可以使用無線網[5-8]。
移動終端向外廣播的探測請求幀正是嗅探器需要捕獲的。捕獲探測請求幀數據包后,通過地址解析協議(ARP),將移動終端的IP地址轉換為對應的物理地址(即MAC地址)[9]。MAC地址是每臺移動設備獨有的6字節、十六進制地址,前3個字節由IEEE的注冊管理機構分配給廠家。MAC地址被寫入網絡適配器中,具有全球唯一性[10]。
基于Wi-Fi嗅探技術的實驗室管理系統的結構如圖1所示。智能終端是智能手機等可連入Wi-Fi的移動設備。

圖1 系統結構
嗅探模塊包括天線、ESP8266芯片和GPRS模塊MGTC-1030。ESP8266芯片完成對移動終端主動發送的IEEE 802.11探測請求幀數據包的捕獲,該芯片嵌入超低功耗32位RISC處理器,支持實時操作系統和Wi-Fi協議棧,使本系統能夠快速存儲和處理數據。芯片內的SRAM提供了數據存儲空間,利于程序的穩定和提高處理效率,并且支持I2C、UART、SPI等類型的接口,實現本系統與PC的數據交換。
天線用于無線數據包的獲取和信號的發送。
GPRS模塊實現模塊和服務器之間的數據傳輸。在學校里,Wi-Fi、以太網會受校園網的安全限制,而GPRS通過允許現有Internet和新的GPRS網絡互通,完全實現移動Internet功能[11]。因此,選擇GPRS用以傳輸會更方便。嗅探模塊組成如圖2所示。

圖2 嗅探模塊組成圖
系統采用B/S架構,客戶端計算壓力較小,客戶端大大簡化[12],在瀏覽器頁面即可讀取數據信息。Wi-Fi嗅探器將數據以設定的格式通過GPRS傳輸到服務器,服務器架設在云空間,采用MySQL數據庫,其特點是體積小,速度快,開發成本低。MySQL數據庫集群架構能夠滿足云平臺下存儲擴展的要求,保證在云平臺安全穩定地運行[13]。
嗅探模塊每分鐘發送一次數據。上行的數據包長4+9n個字節,n為探測到的接入Wi-Fi的移動終端數量。上行的數據格式為:幀頭(1字節)+探針ID(1字節)+分隔符(1字節)+MAC地址(6字節)+信號強度(2字節)+分隔符(1字節)+MAC地址(6字節)+信號強度(2字節)+分隔符(1字節)+MAC地址(6字節)+信號強度(2字節)+…+校驗(1字節)+幀尾(1字節)。
傳輸過程數據為16進制,在傳輸時探針編號轉換為16進制。分隔符和信號強度用轉義符,校驗碼在去掉幀頭、幀尾和分隔符之后按位與,取最后一個字節,應該等于探針編號。
每個實驗室可以有多個探針,因此需要設置探針編號(ID),以分辨數據的來源。在得知來源實驗室和具體探針之后,即知道了數據的來源。分隔符的作用是方便上位機(PC端)處理數據。MAC地址和信號強度為實時探測到的移動終端信息。校驗碼若有錯,則丟棄該包。幀的最后以幀尾標識一次傳送的結束。數據格式示例如圖3所示。

圖3 數據格式示例
PC端對數據處理時,通過分隔符將數據分開,然后將每組MAC地址和對應信號強度進行存儲、分類和顯示。
系統中預先錄入人員移動終端的MAC地址,利用探針獲得的信息對MAC地址進行統計和分析,可實現人員分布的實時監測。系統功能主要包括定位分析模塊和考勤統計模塊。
為了監控多個實驗室的人員信息,在每個實驗室都安放1個或者多個探針,并且在服務器中把探針的ID和實驗室名稱進行綁定(見圖4)。由于信號強度的不穩定,可能存在某一區域被多個探針覆蓋的情況。例如某學生攜帶的手機除了會被他所在的大數據實驗室中的1號探針探測到,也可能被鄰近的其他3個探針探測到。但因為距離不同,這4個探針得到的RSSI會不同。通過對比每個探針接收到的某移動終端信號的RSSI值大小,可知該移動設備離1號探針最近,系統對其定位在大數據實驗室。

圖4 多實驗室探針配置情況
由于系統可以通過探針獲取智能終端的首次探測時間、最后探測時間等信息,只需要將捕獲的MAC地址和預先錄入系統的MAC地址相匹配,即可獲得對應人員的出勤時間。首次探測時間可以作為第一次打卡,最后探測時間可作為最后離開實驗室時間(見表1)。

表1 探針探測信息
系統可以統計某段時間學生進入實驗室的天數及累計時長(見表2)。掌握這些時間數據,可以知道各個實驗室的使用時段、時長、人數和頻率等信息,可用于實驗室資源的合理規劃。

表2 一周出勤時長統計
基于Wi-Fi嗅探技術的開放實驗室管理系統實用性很強。利用Wi-Fi嗅探技術收集到的實驗室使用頻率和使用人數等信息,可以判斷哪些實驗室需要優先擴大空間和更新設備等,以滿足更多學生的需求。目前,該項目已經獲得東北大學秦皇島重點實驗室項目資金的支持。在進行1年的測試中,該系統體現出方便使用、成本較低、可靠性高等優點。該系統的投入使用,提高了實驗室的管理效率,給學院領導決策提供了有價值的參考數據,具有很好的推廣前景。