摘? 要: 針對基于IEEE802.15.4a的工業(yè)無線傳感器監(jiān)控網(wǎng)絡(luò)嗅探器的研究和實現(xiàn),從分析嗅探器原理,,介紹了IEEE802.15.4a協(xié)議,,詳細描述了嗅探器的系統(tǒng)結(jié)構(gòu)及設(shè)計中對數(shù)據(jù)包的捕獲和過濾過程,。給出了針對4種不同過濾設(shè)置條件所對應(yīng)的類定義,可根據(jù)用戶要求對指定類型,、特定站點或設(shè)定時間段及包含熱點關(guān)鍵字的數(shù)據(jù)進行捕獲過濾,,動態(tài)顯示網(wǎng)絡(luò)的實時狀況。經(jīng)過試驗,,本嗅探器完全達到了設(shè)計要求,,實現(xiàn)了對無線傳感器網(wǎng)絡(luò)的主動偵聽監(jiān)控。
關(guān)鍵詞: IEEE802.15.4a,; 嗅探器,; 無線傳感器網(wǎng)絡(luò); 包捕獲,; 切普擴頻
?
工業(yè)過程及生產(chǎn)現(xiàn)場環(huán)境中,,對于一些禁止使用通信電纜(如超凈或真空封閉的房間)或者很難使用電纜(如高速旋轉(zhuǎn)的設(shè)備、強腐蝕惡劣環(huán)境)的場合,,其通信過程是很難或甚至是無法用普通的有線網(wǎng)絡(luò)實現(xiàn)的,,但可以采用無線通信技術(shù)來組建現(xiàn)場設(shè)備互連通信網(wǎng)絡(luò)。
IEEE802.15.4a是基于切普擴頻(CSS)的無線短距離傳輸技術(shù),,特別適合于對抗干擾性能要求很高的工業(yè)無線(傳感器)監(jiān)控網(wǎng)絡(luò),其在2007年7月成為國際標準后引起了多家研究單位的重視,,有了許多研究和應(yīng)用實例,。
網(wǎng)絡(luò)嗅探技術(shù)是網(wǎng)絡(luò)管理和監(jiān)測中的一項重要技術(shù)。它是通過捕獲并分析數(shù)據(jù)報文,,獲取實時有效的網(wǎng)絡(luò)狀態(tài)信息,,以方便對網(wǎng)絡(luò)的運行狀況進行分析和管理。網(wǎng)絡(luò)嗅探技術(shù)在有線網(wǎng)絡(luò)的維護和管理中已經(jīng)得到了廣泛應(yīng)用[1],。但基于IEEE802.15.4a標準的工業(yè)無線監(jiān)控網(wǎng)絡(luò)嗅探器的設(shè)計在國內(nèi)外尚不多見,。鑒于此,本文闡述了嗅探器的工作原理,,并簡要介紹了IEEE802.15.4a協(xié)議,以及一種針對該協(xié)議標準的工業(yè)無線傳感器監(jiān)控網(wǎng)絡(luò)嗅探器的系統(tǒng)結(jié)構(gòu),、數(shù)據(jù)包的捕獲和過濾過程及其對應(yīng)的類定義、嗅探器的用戶界面設(shè)計,對本嗅探器進行了實驗驗證,,實現(xiàn)了對無線傳感器網(wǎng)絡(luò)的主動偵聽監(jiān)控,。
1 嗅探器原理
網(wǎng)絡(luò)嗅探是指捕獲在網(wǎng)絡(luò)中傳輸?shù)姆獍畔⒉ζ溥M行譯碼和分析,,從而獲取網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)等信息,,以方便找到網(wǎng)絡(luò)的潛在問題等,。
在共享式有線網(wǎng)絡(luò)中,同一網(wǎng)段上的所有網(wǎng)絡(luò)接口都有接收物理媒體上傳輸所有數(shù)據(jù)的能力,。網(wǎng)卡將根據(jù)所設(shè)置的接收模式進行接收,。通常情況下,網(wǎng)絡(luò)接口只接收與自身地址相匹配的幀和廣播幀,。如將接收模式設(shè)置為混雜(Promiscuous)模式,,則網(wǎng)卡能夠接收到總線上的所有數(shù)據(jù),從而實現(xiàn)對共享式網(wǎng)絡(luò)的監(jiān)聽[2],。而對交換式有線網(wǎng)絡(luò)的偵聽則是在普通的偵聽上輔以一定的欺騙方法,,以擴展的中間人監(jiān)聽的方式來實現(xiàn)[3]。
對于無線網(wǎng)絡(luò),,所有的無線站點都能夠監(jiān)聽到目標工作頻段內(nèi)所有符合目標物理層協(xié)議的無線信號,。即使站點對于非廣播包、非組播包且目的地址與接收站點地址不匹配包都丟棄,而只要將無線網(wǎng)絡(luò)接口設(shè)置為射頻監(jiān)聽模式(RF-MON Mode)都可以接收所有包,,以實現(xiàn)無線網(wǎng)絡(luò)嗅探[4],。
2 監(jiān)控網(wǎng)絡(luò)MAC協(xié)議
目前成熟的無線傳感器網(wǎng)絡(luò)MAC協(xié)議中,使用較多的是S-MAC與CSMA協(xié)議,。IEEE802.15.4a的MAC層使用CSMA,,物理層使用CSS(Chirp Spread Spectrum),即寬帶線性調(diào)頻擴頻,又簡稱切普擴頻,。
CSS是新一代短距離無線數(shù)字傳輸技術(shù),,已被IEEE 802.15.4a任務(wù)組選定為基準物理層標準。其每一位傳輸所需功耗是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)有的信號互不影響,用于實時精準位置和感應(yīng)網(wǎng)絡(luò),。簡單地說,,CSS技術(shù)加上IEEE802.15.4的MAC協(xié)議和組網(wǎng)規(guī)則就構(gòu)成了改進的IEEE802.15.4a,特別適合在工業(yè)自動化現(xiàn)場設(shè)備層控制網(wǎng)絡(luò)使用。
3 系統(tǒng)硬件結(jié)構(gòu)
嗅探器的系統(tǒng)硬件結(jié)構(gòu)如圖1所示,。其中微控制器采用Atmel公司的ATmega128L,。它采用低功耗CMOS工藝,基于RISC結(jié)構(gòu),,具有片內(nèi)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種不同等級的低能耗操作模式,,適合于低能耗的應(yīng)用場合,。
?
為了與PC機的串口相聯(lián),使用了MAXIM公司的串行收發(fā)芯片MAX3232CSE來完成RS232電平到TTL電平的轉(zhuǎn)換,。
無線通信芯片采用德國NanoTron公司的NA1TR8,,該芯片符合最新IEEE802.15.4a標準,其內(nèi)部集成1個可編程控制器,,該控制器又分為2個部分:一個是基帶控制器(baseband controller),,功能有幀的產(chǎn)生、錯誤糾正,、解包/封包等,;另一個是MAC控制器,主要作用是控制介質(zhì)訪問控制,,如CSMA/CA、TDMA等,。NA1TR8的Memory在邏輯上有1 024 B的編址空間,,這1 024 B由兩部分組成:一個是128 B的寄存器,該寄存器依據(jù)編址為0x7F的索引寄存器低2位的不同設(shè)置,,在地址空間中被映射成4個128 B的地址空間,;另一個是512 B的基帶RAM(Baseband memory,BBRAM),由Segment0、Segment1,、Segment2,、Segment3組成,每個Segment占用128 B,。此RAM根據(jù)不同的設(shè)計需要可以設(shè)置成4種不同的配置模式: Auto/Duplex,、Auto/Simplex、Transparent/Duplex,、Transparent/Simplex,。這4種配置模式各有優(yōu)劣,需要根據(jù)具體的應(yīng)用需求作出選擇,。
嗅探器的主要功能是接收數(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)、應(yīng)答幀(Ack),、廣播幀(Brdcast),、時間信標幀(TimeB)、請求發(fā)送幀(Req2S),、清除發(fā)送幀(Clr2S),。依據(jù)上述不同的6種幀格式,MACFrame包含10個域,,每個域的詳細功能描述可參見芯片NA1TR8的相關(guān)文檔,這里不再贅述,。
4.2 數(shù)據(jù)包捕獲
對無線網(wǎng)絡(luò)進行監(jiān)聽,,首先必須對目標偵聽網(wǎng)絡(luò)中符合物理層通信協(xié)議的數(shù)據(jù)包進行捕獲。這是對網(wǎng)絡(luò)進行監(jiān)控分析的基礎(chǔ),。在這里首先需要取消監(jiān)聽站點的地址匹配,,并設(shè)置為監(jiān)聽模式,,使其可以監(jiān)聽到所有其他站點發(fā)送的數(shù)據(jù),。再將接收的有效協(xié)議數(shù)據(jù)單元傳送至PC機串口。當串口監(jiān)視進程CSerialPort::CommThread( )監(jiān)測到串口有數(shù)據(jù)到達時,,發(fā)送WM_COMM_RXCHAR消息給主框架窗口,,由響應(yīng)函數(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)絡(luò)群號
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)絡(luò)管理提供了很好的時間記錄,。本設(shè)計中使用了絕對時間戳。這樣,,當知道某事件發(fā)生的大概時間時,,可以快速找到詳細的數(shù)據(jù)包解析以及對應(yīng)的源碼。
4.3 數(shù)據(jù)包過濾
嗅探器在默認情況下會對網(wǎng)絡(luò)中所有包進行捕獲,。但實際的監(jiān)聽過程中捕獲包的數(shù)量是相當巨大的,而且通常需要關(guān)注采集的只是具有某些特定特征的包,。這就需要對捕獲的數(shù)據(jù)包按照要求進行過濾,,且顯示結(jié)果。
過濾條件的設(shè)定主要分為如下4類:數(shù)據(jù)包的類型,,收發(fā)地址,,時間,關(guān)鍵字,。
詳細的參數(shù)設(shè)置界面如圖4所示,。其具體過濾功能由COutputBar::OutFilter( )函數(shù)實現(xiàn)。過濾條件的設(shè)置可在數(shù)據(jù)監(jiān)聽前預設(shè)也可在監(jiān)聽過程中及時按需修改,。
?
5 用戶界面設(shè)計
嗅探器在WM_CREATE消息處理函數(shù)CMainFrame::OnCreate()中創(chuàng)建了2個子控件窗口,,將整個主窗口分為數(shù)據(jù)分析和網(wǎng)絡(luò)監(jiān)控2個區(qū),如圖5所示,。捕獲數(shù)據(jù)在嗅探器客戶端的顯示由COutputBar::ShowNetworkMessage()實現(xiàn),。其中,一區(qū)的上部為解碼區(qū),,給出了數(shù)據(jù)包的收發(fā)時間,、地址、類型,、具體的傳感數(shù)據(jù)等詳細分析信息,;一區(qū)的下部顯示了對應(yīng)數(shù)據(jù)包的原始十六進制編碼。而二區(qū)則以圖形化的方式顯示了整個無線網(wǎng)絡(luò)的拓樸狀態(tài),,以實現(xiàn)對整個網(wǎng)絡(luò)的實時監(jiān)控,。
以對令牌傳遞的監(jiān)控為例,從圖6所示的嗅探器解碼區(qū)所顯示的詳細分析信息可以看到,,令牌在網(wǎng)絡(luò)內(nèi)傳遞的一個過程:包70,、71表明站點5傳送完數(shù)據(jù)后將令牌傳送至主站點;而包72中主站點將令牌傳給站點6,;包73則是站點6獲得令牌并進行了數(shù)據(jù)傳輸,;最終,從包74,、75中可看出,,站點5再次獲得令牌并傳輸了數(shù)據(jù),。
?
從嗅探器的運行結(jié)果可看出,,嗅探器能夠捕獲無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù),并對其過濾分析,,提供了整個無線網(wǎng)絡(luò)的圖形化監(jiān)控等功能,,而且未被原網(wǎng)絡(luò)發(fā)現(xiàn),也沒有對其運行造成影響,,最終實現(xiàn)了對IEEE802.15.4a無線傳感器網(wǎng)絡(luò)的主動偵聽監(jiān)控,。
參考文獻
[1] 王石.局域網(wǎng)安全與攻防——基于Sniffer Pro實現(xiàn)[M]. 北京:電子工業(yè)出版社, 2006.
[2] 黃志洪. 現(xiàn)代計算機信息安全技術(shù)[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)絡(luò)的數(shù)據(jù)鏈路層協(xié)議WICN-Z [J]. 儀器儀表學報,,2008,29(3):638-643.
?