[摘 要] 網絡監(jiān)聽主要是為了管理網絡,監(jiān)視網絡的狀態(tài)和數據流動情況。但是由于它能有效地截獲網上的數據,可作為網絡數據錄取和網絡管理的重要手段,通過記錄網絡上全部底層報文、監(jiān)控流經網絡全部信息流,提供應用層協議的報文重組、還原再現。
[關鍵詞] 網絡監(jiān)聽技術 報文 以太網通信
網絡監(jiān)聽作為數據錄取的一種重要手段,通過接受目標狀態(tài)參數、環(huán)境噪聲、被試系統(tǒng)運行數據,記錄各有關傳感器和信息源模擬的傳感器和信息源輸出參數,記錄評估要求的時刻參數,記錄指揮系統(tǒng)/信息融合及目標綜合識別系統(tǒng)的運行數據,記錄網絡系統(tǒng)狀態(tài)模擬數據等,可供評估時使用。
同時網絡監(jiān)聽系統(tǒng)通過截獲網上的數據并進行分析處理,可以達到管理網絡、監(jiān)測網絡的運行狀態(tài)、網絡故障告警、網絡故障隔離、網絡節(jié)點信息收集的目的,收集處理的信息通過網絡發(fā)往系統(tǒng)的其他節(jié)點,該設備不影響整個系統(tǒng)網絡的正常運行,所收集處理的信息有助于網絡的維護管理。
一、網絡監(jiān)聽技術
網絡監(jiān)聽技術主要是指在局域中捕獲所有的IP包,并對IP包進行分析,是網絡流量測量和網絡管理的基礎,它可以在網上的任何一個位置實施,如局域網中的一臺主機、網關上或遠程網的調制解調器之間等。當主機工作在監(jiān)聽模式下,則所有的數據幀都將被交給上層協議軟件處理。當連接在同一條電纜或集線器上的主機被邏輯地分為幾個子網時,如果一臺主機處于監(jiān)聽模式下,它還能接收到發(fā)向與自己不在同一子網(使用了不同的掩碼、IP地址和網關)的主機的那些信包。
為了使主機工作在監(jiān)聽模式下,需要向網絡接口(Interface)發(fā)送I/O控制命令,將其設置為監(jiān)聽模式。網絡監(jiān)聽常常要保存大量的信息,對收集的信息進行大量的整理工作,因此,正在進行監(jiān)的機器對用戶的請求響應很慢。首先,網絡監(jiān)聽軟件運行時,需要消耗大量的處理器時間,如果在此時,就詳細地分析包中的內容,許多包就會來不信接收而漏掉。其次,網絡中的數據包非常復雜,兩臺主機之間即使連續(xù)發(fā)送和接受數據包,在監(jiān)聽到的結果中,中間必然會夾雜了許多別的主機交互的數據包。事后通過啟動評估分析軟件,對記錄數據進行分析處理,包括對記錄數據進行初步的歸類和整理、合理性檢查(剔除異常值)及采樣分析,最后得出統(tǒng)計結果。
二、網絡監(jiān)聽具體應用分析
1.應用環(huán)境
××型數據監(jiān)測系統(tǒng)由被監(jiān)測系統(tǒng)和監(jiān)測系統(tǒng)組成(見下圖),從圖中看出,網絡監(jiān)聽系統(tǒng)作為被試和測試系統(tǒng)網絡之間的網關,從被監(jiān)測系統(tǒng)中接收測試數據,事后傳送記錄評估系統(tǒng)進行分析,得出測試結果。整個系統(tǒng)網絡采用以太網技術和TCP/IP通信協議,網絡操作系統(tǒng)采用SOLARIS 2.6,數據庫采用ORACEL7.3.4。
網絡監(jiān)聽系統(tǒng)在網絡交換機的一個端口監(jiān)聽記錄在該網絡上流動的所有信息。該系統(tǒng)采用B/S結構,由數據探測部分和監(jiān)控管理部分。用戶通過WEB頁面對系統(tǒng)進行參數、策略配置。數據探針主要負責數據的收集和數據的處理。監(jiān)控管理中心主要負責規(guī)則的設置、數據的查看和系統(tǒng)的管理。該系統(tǒng)應盡量不占用被測軟件運行資源。
網絡監(jiān)聽系統(tǒng)結構圖如下:
2.具體實例分析
在UNIX系統(tǒng)上,當擁有超級權限的用戶要想使自己所控制的主機進入監(jiān)聽模式,只需要向Interface(網絡接口)發(fā)送I/O控制命令,就可以使主機設置成監(jiān)聽模式了。許多網絡管理工具(如SNIFFER等)都是在局域網上通過捕獲IP數據包實現對網絡的分析。如何實現對所有IP包的捕獲,在不同的操作系統(tǒng)中有不同的方法,但基本原理都是用SOCKET進行網絡編程。下面是使用snoop發(fā)現的主機asy8.vineyard.net和主機next之間的一部分對話代碼:
#snoop
asy8.vineyard.net next SMTP C port=1974
asy8.vineyard.net next SMTP C port=1974 MALL FROM: next asy8.vineyard.net SMTP C PORT=1974 250 Asy8.net SMTP C port=1974
Asy8.vineyard.net next SMTP C port=1974 RCPT TO: Next asy8.vineyard.net SMTP C port=1974 250 Asy8.vineyard.net next SMTP C port=1974.
Asy8.vineyard.net next SMPT C port=1974 DATA\\r\.
Next asy8.vineyard.net SMTP c PORT =1974 354 Enter mail,end.
# snoop -I saved -tr -v
ETHER:------------Ether Header------
ETHER:
ETHER: Packet 21 arrived at 17:02:;29.70
ETHER: packet size =85 bytes
ETHER: Desstination =0:20:af:3b:bb:8f,
ETHER: Source =8:0:3e:30:28:87,Motorola VME bus processor
Module
ETHER: Ethertype =0800 (Ip)
ETHER:
包的最外部分是以太幀頭。
IP:-----------IP Header ----------
IP:
IP: Version =4
IP: Header length =20 bytes
IP: Type of service =0x00
Ip: xxx……..=0 (precedence)
IP: …0…=normal delay
IP: ….0...=normal throughput
IP: …..0.. =normal rellability
IP: Total length =71 bytes
IP: Tdentification =2014
IP: Flags =0x0
IP: .0……=may fragment
IP: ..0….. =last fragment
IP: Fragment offest =0 bytes
IP: Time to live =30 seconds/hops
IP: Protocol =17 (UDP)
IP: Header checksum =0714
IP: Source address =11.22.33.41, source.host
IP: Destination address =192.33.4.12, c.root –servers.ndt
IP: No options
IP:
緊跟著以太幀頭的是IP分組的頭部信息。
UDP:-----------UDP Header--------
UDP:
UDP: Source port =53
UDP: Destination port =53 (DNS)
UDP: Length =51
UDP: Checksum =2167
UDP:
這是一個在網絡上傳輸的一個包的信息分解。實際的包由于使用的是流協議,許多翻譯片信息是用一些位來表示的。并不能直接閱讀和理解。從上面的解釋得知,這是個DNS解析的數據包,傳輸層使用的是UDP協議,應用層使用了DNS服務。該協議將一個主機名映射為IP地址。
三、結束語
網絡監(jiān)聽有專用硬件設備、軟硬件復用設備和純軟件實現方案?,F階段主要是純軟件實現方式為主,其優(yōu)點是易于與被監(jiān)測系統(tǒng)集成相連,缺點是軟件處理能力有限,在網絡流量過大時,可能出現個別捕獲的數據包丟失。這里的關鍵技術主要在于調整捕獲IP包鏈表長度的定義,以及使用多線程編程技術,具體應用時可根據具體數據監(jiān)測任務進行選擇不同的監(jiān)聽技術以滿足各類需求。
參考文獻:
[1]網絡通信技術:人民郵電出版社
[2]UNIX網絡編程技術:電子工業(yè)出版社