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