于 健,唐 軒,雷 霆,張 旭,呂 方
(天津大學a.計算機科學與技術學院;b.軟件學院,天津300072)
網絡流量統計系統是大規模機群和局域網常見的一種系統,目的在于為局域網中的客戶提供必要的服務和幫助。由于各局域網服務器系統及配置不相同,局域網中的每臺終端設備也不盡相同,局域網管理者常根據自身網絡情況選擇合適的設計方法[1-2]。本文為高校公共計算機機房設計了網絡流量統計系統,用于管理學生上網信息,以便管理人員進行有效管理[3-10]。
對于系統的使用者,首先要能對監控的計算機進行管理,即有選擇性地決定對哪些計算機進行監控,必須實現對監控計算機列表的添加、修改、刪除等操作。
對于截獲的數據包,系統使用者應該可以以多種自選方式對截獲的數據包進行查詢操作,并決定是否對某些數據包進行分析統計。對于數據包統計后的流量信息,系統使用者也應可以便利地對該信息進行查詢操作。同時應實現對數據庫的操作,如導入導出等。
經過調查分析得到以下功能需求:①管理員能對監控的機器信息進行管理,至少包括添加、修改和刪除;②管理員可以查看和管理截獲的數據包信息,并對滿足一定條件的數據包信息進行搜索;③管理員可以查看和管理每臺機器的流量統計系統,并對滿足一定條件的流量記錄信息進行搜索;④管理員可以對后臺數據庫直觀地進行管理和操作;⑤管理員可以根據需要更改流量統計系統的設置。
系統用例如圖1 所示,參與者為“管理員”,用例包括導入數據庫,導出數據庫,截獲數據包,停止截獲,數據包管理,流量管理,機器管理。其導入導出數據庫用于已收集數據的數據交換;截獲數據包用于監控所選擇的計算機;機器管理包括添加機器、修改機器、刪除機器、批量添加機器、批量修改機器、批量刪除機器等操作。數據包管理包括導入數據庫、導出數據庫、刷新、流量統計、清空數據庫、按IP 查找數據包、按時間查找數據包、按機房查找數據包等操作。流量管理包括導入數據庫、導出數據庫、刷新、清空數據庫、按IP查找流量、按時間查找流量、按機房查找流量等操作。

圖1 系統用例圖
在系統中,所有機房通過一臺UNIX 操作系統的代理服務器上網,代理服務器的一端連接Internet,另一端連接一個用于整個實驗樓的主交換機,主交換機連出的各個分交換機分布于各個機房。機房中的機器分為學生機與教師機兩大類,每個機房中的學生機使用一個IP 段,而整個局域網所有的教師機使用一個IP段,連接于對應的分交換機,從而形成機房網絡局域網,系統結構圖如圖2 所示。

圖2 系統結構圖
設計中,系統安裝在與學生機級別并列的控制機上,以便獲得整個局域網的數據流量信息。
該網絡流量統計系統主要分成三個部分:網絡數據包截獲、數據庫和界面。
網絡數據包截獲部分對整個網絡的數據信息進行截獲,并解析數據包,將其中重要信息保存于數據庫。
數據庫部分用來存儲局域網中的機器信息、系統運行過程中截獲的數據包信息及分析這些數據包后得到的統計。存儲過程部分則為定義的對數據庫的所有操作。
系統中的界面是聯系用戶和系統的接口。用戶能夠以直觀、便捷的方式發出命令,和系統進行交互,完成預期的操作。
按照結構化的系統設計方法,根據網絡流量統計系統的功能將系統劃分為網絡數據包截獲模塊、數據庫信息管理、界面模塊,如圖3 所示。

圖3 網絡流量統計系統模塊劃分
(1) 系統管理。是對系統全局的操作,可以通過可視化操作的方法,在主界面上完成導入數據庫、導出數據庫、開始截獲數據包、停止截獲數據包、數據包管理、流量管理、機器信息管理等。功能圖如圖4 所示。

圖4 系統管理功能
(2) 局域網信息管理。系統可以對局域網中指定的計算機實現數據包管理,因此管理員必須建立并維護機器信息表,通過添加、修改、刪除機器信息的方式決定對哪些機器的數據包進行截獲統計。功能見圖5。

圖5 局域網信息管理功能
(3) 數據包管理。當數據包被截獲時,數據包信息會被提取到數據包表中,用戶可以通過可視化的方式導入、導出數據包表,通過不同的方式查看數據包信息,或手動進行流量統計。功能如圖6 所示。

圖6 數據包管理功能
(4) 流量管理。和數據包管理類似的,用戶可通過可視化的方式導入、導出數據包表,通過不同的方式查看流量信息,刷新或清空數據表。功能如圖7 所示。

圖7 流量管理功能
系統中的主要數據表共有三個表:機器信息表、數據包信息表、流量信息表。
(1) 機器信息表。用來存儲局域網中各臺機器的信息,包括為其分配的IP 地址、所屬機房、機器類型。如表1 所示。

表1 機器信息表
(2) 數據包信息表。用來存儲本系統在局域網截獲的尚未統計到流量信息的數據包中含有的信息。如表2 所示。

表2 數據包信息表
(3) 流量信息表。用來存儲局域網每臺機器訪問過的不同網站,以及訪問的流量和最后的訪問時間。如表3 所示。

表3 流量信息表
本節敘述數據包截獲模塊及界面模塊設計[11-15]。
2.4.1 網絡數據包截獲模塊
(1) 功能。監控整個局域網的數據通信狀態,實現包的截取,從中提取具體數據信息,存入指定數據庫。
(2) 性能。系統的穩定性。系統代碼中,對每一個關鍵代碼塊都設有異常捕獲部分,可以保證即時獲得系統錯誤,并保證系統的穩定、長期的運行。
(3) 工作效率。每秒截獲數據包的數量,數據包的丟包率。
(4) 輸入項目。到達該局域網的數據包。
(5) 輸出項目。到達本機的包的各種信息,包括:發送數據包的IP 源地址及目的地址、包的大小、包的內容、源端口及目的端口、數據包的類型等。
(6) RawSocket. cs 文件。實現RawSocket 類,它包含了系統實現數據包監視的核心技術。
(7) LANInformation.cs 文件。用來獲得局域網中在線的機器列表信息。
2.4.2 界面模塊設計
(1) 功能。該模塊是聯系用戶和系統的接口。使用戶能夠以直觀、便捷的方式發出命令,和系統進行交互,完成預期的操作。
(2) 性能。交互界面能否以簡單的方式提示用戶的操作,簡潔的操作能否達到用戶預想的目的,界面的安排是否符合一般用戶的使用習慣。
(3) 輸入項目。對按鈕、標簽、菜單的點擊等操作,文本框輸入等。
(4) 輸出項目。界面樣式改變、可視化的查詢結果等。
(5) MoniterWindow. cs 文件。系統的初始界面。該界面是系統的入口,界面在初始化時會檢測整個局域網中在線的計算機,獲取他們的信息,并將其顯示于界面中。
(6) CaptureWindow.cs 文件。將“數據包信息”表中的數據信息以不同的方式顯示于界面中,以便用戶對其進行一些必要的人工分析。
(7) StatisticWindow.cs 文件。將“流量信息”表中的數據信息以不同的方式顯示于界面中,以便用戶對其進行一些必要的人工分析。
(8) LANManagement. cs 文件。用于管理員通過界面對“機器信息”表進行操作。
為高校公共機房設計了具有系統管理、機器管理、數據包管理、流量管理功能的網絡流量統計系統,實現了對計算機訪問網絡的信息的管理、通過IP 地址、所屬機房等信息對截獲的數據包進行查看等操作,完成流量信息的保存和數據分析,使管理員可以方便地進行數據管理和維護,從而提高機房管理能力和效率。
[1] 朱 航,須 德. 基于SIP 的多媒體業務穿越網絡地址轉換/防火墻研究與設計[J].北京交通大學學報(自然科學版),2005,29(2):26-30.
[2] LI Xin. Stateful Inspection Firewall Session Table RocesSing[J].International,2005(2):615-620.
[3] 董 光,王 哲,張俊鵬.數據包截獲與分析技術淺析[J]. 吉林省經濟管理干部學院學報,2006,20(2):54-56.
[4] 熊安萍.基于Winsock 技術的數據包解析研究[J].計算機科學,2006,33(12):81-82.
[5] 蔣 波.數據包的截獲與網絡協議分析[J].重慶三峽學院學報,2006,22(3):26-27.
[6] 秦根建,張秉權. 網絡數據包截獲機制研究[J]. 兵工自動化,2003,33(3):34-36.
[7] 陳永輝,向科峰,呂 琳.基于Winsock2SPI 的網絡封包截獲[J].兵工自動化,2006,2(3):55-56.
[8] 馬武瑜.局域網絡技術的發展與展望[J].廣西民族學院學報(自然科學版),1998,4(3):43-45.
[9] Anthony Jones.Windows 網絡編程技術[M].北京:機械工業出版社,2000:267-270.
[10] W Richard Stevens.TCP/IP 詳解(卷2 實現)[M]. 北京:機械工業出版社,2000.249-255.
[11] AShao1981. 初探數據包分析程序設計[EB/OL]. http://blog.csdn. net/ashao1981/archive/2004/04/12/22352. aspx,2004-04-12.
[12] Anthony Jones,Jim Ohlund.Windows 網絡編程技術[M].北京:機械工業出版社,2001:113-119.
[13] Douglas EComer. Computer Networks and Internets with Internet Applications[M].北京:電子工業出版社,2004:189-193.
[14] 侯俊杰.深入淺出MFC[M].2 版. 武漢:華中科技大學出版社,2001:134-139.
[15] 管章全,唐曉衛.Visual C+ + 6.0 編程實例詳解[M]. 北京:電子工業出版社,1999:201-210.