摘? 要: 針對基于IEEE802.15.4a的工業(yè)無線傳感器監(jiān)控網(wǎng)絡嗅探器的研究和實現(xiàn),從分析嗅探器原理,介紹了IEEE802.15.4a協(xié)議,詳細描述了嗅探器的系統(tǒng)結構及設計中對數(shù)據(jù)包的捕獲和過濾過程。給出了針對4種不同過濾設置條件所對應的類定義,可根據(jù)用戶要求對指定類型、特定站點或設定時間段及包含熱點關鍵字的數(shù)據(jù)進行捕獲過濾,動態(tài)顯示網(wǎng)絡的實時狀況。經(jīng)過試驗,本嗅探器完全達到了設計要求,實現(xiàn)了對無線傳感器網(wǎng)絡的主動偵聽監(jiān)控。
關鍵詞: IEEE802.15.4a; 嗅探器; 無線傳感器網(wǎng)絡; 包捕獲; 切普擴頻
?
工業(yè)過程及生產(chǎn)現(xiàn)場環(huán)境中,對于一些禁止使用通信電纜(如超凈或真空封閉的房間)或者很難使用電纜(如高速旋轉的設備、強腐蝕惡劣環(huán)境)的場合,其通信過程是很難或甚至是無法用普通的有線網(wǎng)絡實現(xiàn)的,但可以采用無線通信技術來組建現(xiàn)場設備互連通信網(wǎng)絡。
IEEE802.15.4a是基于切普擴頻(CSS)的無線短距離傳輸技術,特別適合于對抗干擾性能要求很高的工業(yè)無線(傳感器)監(jiān)控網(wǎng)絡,其在2007年7月成為國際標準后引起了多家研究單位的重視,有了許多研究和應用實例。
網(wǎng)絡嗅探技術是網(wǎng)絡管理和監(jiān)測中的一項重要技術。它是通過捕獲并分析數(shù)據(jù)報文,獲取實時有效的網(wǎng)絡狀態(tài)信息,以方便對網(wǎng)絡的運行狀況進行分析和管理。網(wǎng)絡嗅探技術在有線網(wǎng)絡的維護和管理中已經(jīng)得到了廣泛應用[1]。但基于IEEE802.15.4a標準的工業(yè)無線監(jiān)控網(wǎng)絡嗅探器的設計在國內外尚不多見。鑒于此,本文闡述了嗅探器的工作原理,并簡要介紹了IEEE802.15.4a協(xié)議,以及一種針對該協(xié)議標準的工業(yè)無線傳感器監(jiān)控網(wǎng)絡嗅探器的系統(tǒng)結構、數(shù)據(jù)包的捕獲和過濾過程及其對應的類定義、嗅探器的用戶界面設計,對本嗅探器進行了實驗驗證,實現(xiàn)了對無線傳感器網(wǎng)絡的主動偵聽監(jiān)控。
1 嗅探器原理
網(wǎng)絡嗅探是指捕獲在網(wǎng)絡中傳輸?shù)姆獍畔⒉ζ溥M行譯碼和分析,從而獲取網(wǎng)絡的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡上傳輸?shù)臄?shù)據(jù)等信息,以方便找到網(wǎng)絡的潛在問題等。
在共享式有線網(wǎng)絡中,同一網(wǎng)段上的所有網(wǎng)絡接口都有接收物理媒體上傳輸所有數(shù)據(jù)的能力。網(wǎng)卡將根據(jù)所設置的接收模式進行接收。通常情況下,網(wǎng)絡接口只接收與自身地址相匹配的幀和廣播幀。如將接收模式設置為混雜(Promiscuous)模式,則網(wǎng)卡能夠接收到總線上的所有數(shù)據(jù),從而實現(xiàn)對共享式網(wǎng)絡的監(jiān)聽[2]。而對交換式有線網(wǎng)絡的偵聽則是在普通的偵聽上輔以一定的欺騙方法,以擴展的中間人監(jiān)聽的方式來實現(xiàn)[3]。
對于無線網(wǎng)絡,所有的無線站點都能夠監(jiān)聽到目標工作頻段內所有符合目標物理層協(xié)議的無線信號。即使站點對于非廣播包、非組播包且目的地址與接收站點地址不匹配包都丟棄,而只要將無線網(wǎng)絡接口設置為射頻監(jiān)聽模式(RF-MON Mode)都可以接收所有包,以實現(xiàn)無線網(wǎng)絡嗅探[4]。
2 監(jiān)控網(wǎng)絡MAC協(xié)議
目前成熟的無線傳感器網(wǎng)絡MAC協(xié)議中,使用較多的是S-MAC與CSMA協(xié)議。IEEE802.15.4a的MAC層使用CSMA,物理層使用CSS(Chirp Spread Spectrum),即寬帶線性調頻擴頻,又簡稱切普擴頻。
CSS是新一代短距離無線數(shù)字傳輸技術,已被IEEE 802.15.4a任務組選定為基準物理層標準。其每一位傳輸所需功耗是IEEE802.11b的1/6、藍牙的1/60。其數(shù)據(jù)傳送速率最高可達到2 Mb/s,室外視距達900 m,接收靈敏度為-92 dBm/Mb/s。CSS綜合了FSK、PSK和ASK 3種方法的優(yōu)點,能十分有效地抑制工業(yè)環(huán)境中的各種噪音和多徑漫射,并且在擁擠的ISM(Industrial Scientific Medical)頻段與其他現(xiàn)有的信號互不影響,用于實時精準位置和感應網(wǎng)絡。簡單地說,CSS技術加上IEEE802.15.4的MAC協(xié)議和組網(wǎng)規(guī)則就構成了改進的IEEE802.15.4a,特別適合在工業(yè)自動化現(xiàn)場設備層控制網(wǎng)絡使用。
3 系統(tǒng)硬件結構
嗅探器的系統(tǒng)硬件結構如圖1所示。其中微控制器采用Atmel公司的ATmega128L。它采用低功耗CMOS工藝,基于RISC結構,具有片內128 KB的程序存儲器 (Flash)、4 KB的數(shù)據(jù)存儲器(SRAM)和4 KB的EEPROM;有8個10位ADC通道、2個8位和2個16位硬件定時/計數(shù)器、8個PWM通道,具有可編程看門狗定時器和片上振蕩器、片上模擬比較器、JTAG、UART、SPI、I2C總線等接口。ATmega128L可在多種不同模式下工作,除了正常操作模式外,還具有6種不同等級的低能耗操作模式,適合于低能耗的應用場合。
?
為了與PC機的串口相聯(lián),使用了MAXIM公司的串行收發(fā)芯片MAX3232CSE來完成RS232電平到TTL電平的轉換。
無線通信芯片采用德國NanoTron公司的NA1TR8,該芯片符合最新IEEE802.15.4a標準,其內部集成1個可編程控制器,該控制器又分為2個部分:一個是基帶控制器(baseband controller),功能有幀的產(chǎn)生、錯誤糾正、解包/封包等;另一個是MAC控制器,主要作用是控制介質訪問控制,如CSMA/CA、TDMA等。NA1TR8的Memory在邏輯上有1 024 B的編址空間,這1 024 B由兩部分組成:一個是128 B的寄存器,該寄存器依據(jù)編址為0x7F的索引寄存器低2位的不同設置,在地址空間中被映射成4個128 B的地址空間;另一個是512 B的基帶RAM(Baseband memory,BBRAM),由Segment0、Segment1、Segment2、Segment3組成,每個Segment占用128 B。此RAM根據(jù)不同的設計需要可以設置成4種不同的配置模式: Auto/Duplex、Auto/Simplex、Transparent/Duplex、Transparent/Simplex。這4種配置模式各有優(yōu)劣,需要根據(jù)具體的應用需求作出選擇。
嗅探器的主要功能是接收數(shù)據(jù)而不是發(fā)送數(shù)據(jù)。鑒于此,監(jiān)測儀的BBRAM的配置采用Auto/Simplex模式,此模式下的BBRAM配置如圖2所示。
在Auto/Simplex模式下,Segment0、Segment1被保留下來專用于存儲MAC幀頭、加密/解密、站點地址、實時時鐘(RTC)等信息。Segment2、Segment3用于發(fā)送和接收時共享Buffer。針對嗅探器BBRAM的配置,可以將Segment2、Segment3都用于數(shù)據(jù)的接收。
4 數(shù)據(jù)包捕獲過濾
4.1 IEEE802.15.4a中的數(shù)據(jù)幀格式
物理層及MAC層的數(shù)據(jù)幀格式如圖3所示。物理層由4個域組成,分別是前:導碼,其作用是自動增益控制校驗及位同步;同步字段,其作用是幀同步;MAC幀域及尾字符域,其作用是尾部與幀間間隔的分隔符。
?
MAC層有6種幀格式,分別是數(shù)據(jù)幀(Data)、應答幀(Ack)、廣播幀(Brdcast)、時間信標幀(TimeB)、請求發(fā)送幀(Req2S)、清除發(fā)送幀(Clr2S)。依據(jù)上述不同的6種幀格式,MACFrame包含10個域,每個域的詳細功能描述可參見芯片NA1TR8的相關文檔,這里不再贅述。
4.2 數(shù)據(jù)包捕獲
對無線網(wǎng)絡進行監(jiān)聽,首先必須對目標偵聽網(wǎng)絡中符合物理層通信協(xié)議的數(shù)據(jù)包進行捕獲。這是對網(wǎng)絡進行監(jiān)控分析的基礎。在這里首先需要取消監(jiān)聽站點的地址匹配,并設置為監(jiān)聽模式,使其可以監(jiān)聽到所有其他站點發(fā)送的數(shù)據(jù)。再將接收的有效協(xié)議數(shù)據(jù)單元傳送至PC機串口。當串口監(jiān)視進程CSerialPort::CommThread( )監(jiān)測到串口有數(shù)據(jù)到達時,發(fā)送WM_COMM_RXCHAR消息給主框架窗口,由響應函數(shù)CMainFrame::OnComm( )對收到的數(shù)據(jù)進行初步的判斷處理。而數(shù)據(jù)包則定義了一個普通類,其具體定義如下:
class CPacket
{
public:
?? ?……
?void GetReceiveTime( ); //獲取高精度時間
CString m_pTime; ??//數(shù)據(jù)捕獲時間
CString m_pPacket; ?//數(shù)據(jù)包的十六進制代碼
CString m_pData; ??//傳感數(shù)據(jù)
CString m_pPacketNum; ?//傳感數(shù)據(jù)包順序號
CString m_pNetNum; ?//網(wǎng)絡群號
CString m_pSendAdd; ?//數(shù)據(jù)包源地址
CString m_pToAdd; ?//數(shù)據(jù)包目的地址
CString m_pType; ??//數(shù)據(jù)包類型
CString m_pLength; ?//數(shù)據(jù)包總長度
……
};
其中,GetReceiveTime( )對普通的CTime類進行了擴展,提高了時間的精度,為數(shù)據(jù)的進一步分析處理和網(wǎng)絡管理提供了很好的時間記錄。本設計中使用了絕對時間戳。這樣,當知道某事件發(fā)生的大概時間時,可以快速找到詳細的數(shù)據(jù)包解析以及對應的源碼。
4.3 數(shù)據(jù)包過濾
嗅探器在默認情況下會對網(wǎng)絡中所有包進行捕獲。但實際的監(jiān)聽過程中捕獲包的數(shù)量是相當巨大的,而且通常需要關注采集的只是具有某些特定特征的包。這就需要對捕獲的數(shù)據(jù)包按照要求進行過濾,且顯示結果。
過濾條件的設定主要分為如下4類:數(shù)據(jù)包的類型,收發(fā)地址,時間,關鍵字。
詳細的參數(shù)設置界面如圖4所示。其具體過濾功能由COutputBar::OutFilter( )函數(shù)實現(xiàn)。過濾條件的設置可在數(shù)據(jù)監(jiān)聽前預設也可在監(jiān)聽過程中及時按需修改。
?
5 用戶界面設計
嗅探器在WM_CREATE消息處理函數(shù)CMainFrame::OnCreate()中創(chuàng)建了2個子控件窗口,將整個主窗口分為數(shù)據(jù)分析和網(wǎng)絡監(jiān)控2個區(qū),如圖5所示。捕獲數(shù)據(jù)在嗅探器客戶端的顯示由COutputBar::ShowNetworkMessage()實現(xiàn)。其中,一區(qū)的上部為解碼區(qū),給出了數(shù)據(jù)包的收發(fā)時間、地址、類型、具體的傳感數(shù)據(jù)等詳細分析信息;一區(qū)的下部顯示了對應數(shù)據(jù)包的原始十六進制編碼。而二區(qū)則以圖形化的方式顯示了整個無線網(wǎng)絡的拓樸狀態(tài),以實現(xiàn)對整個網(wǎng)絡的實時監(jiān)控。
以對令牌傳遞的監(jiān)控為例,從圖6所示的嗅探器解碼區(qū)所顯示的詳細分析信息可以看到,令牌在網(wǎng)絡內傳遞的一個過程:包70、71表明站點5傳送完數(shù)據(jù)后將令牌傳送至主站點;而包72中主站點將令牌傳給站點6;包73則是站點6獲得令牌并進行了數(shù)據(jù)傳輸;最終,從包74、75中可看出,站點5再次獲得令牌并傳輸了數(shù)據(jù)。
?
從嗅探器的運行結果可看出,嗅探器能夠捕獲無線傳感器網(wǎng)絡中的數(shù)據(jù),并對其過濾分析,提供了整個無線網(wǎng)絡的圖形化監(jiān)控等功能,而且未被原網(wǎng)絡發(fā)現(xiàn),也沒有對其運行造成影響,最終實現(xiàn)了對IEEE802.15.4a無線傳感器網(wǎng)絡的主動偵聽監(jiān)控。
參考文獻
[1] 王石.局域網(wǎng)安全與攻防——基于Sniffer Pro實現(xiàn)[M]. 北京:電子工業(yè)出版社, 2006.
[2] 黃志洪. 現(xiàn)代計算機信息安全技術[M]. 北京:冶金工業(yè)出版社,2004.
[3] 賀龍濤,方濱興,胡銘曾.主動監(jiān)聽中協(xié)議欺騙的研究[J].通信學報, 2003,24(11).
[4] ANH N T, SHOREY R. Network sniffing tools?for WLANs: merits and limitations[C]. 2005 IEEE?International Conference on Personal Wireless?Communications. New Delhi, India, 2005:389-393.
[5] IEEE Std 802.15.4TM-2006.IEEE standard for infor-mation technology-telecommunications and information ?? exchange between systems-Local and metropolitan?area networks-specific requirements [S]. 2006.
[6] 侯維巖,劉偉春,程俊峰,等.面向無線工業(yè)網(wǎng)絡的數(shù)據(jù)鏈路層協(xié)議WICN-Z [J]. 儀器儀表學報,2008,29(3):638-643.
?