于 健,唐 軒,雷 霆,張 旭,呂 方
(天津大學(xué)a.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;b.軟件學(xué)院,天津300072)
網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng)是大規(guī)模機(jī)群和局域網(wǎng)常見的一種系統(tǒng),目的在于為局域網(wǎng)中的客戶提供必要的服務(wù)和幫助。由于各局域網(wǎng)服務(wù)器系統(tǒng)及配置不相同,局域網(wǎng)中的每臺(tái)終端設(shè)備也不盡相同,局域網(wǎng)管理者常根據(jù)自身網(wǎng)絡(luò)情況選擇合適的設(shè)計(jì)方法[1-2]。本文為高校公共計(jì)算機(jī)機(jī)房設(shè)計(jì)了網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng),用于管理學(xué)生上網(wǎng)信息,以便管理人員進(jìn)行有效管理[3-10]。
對(duì)于系統(tǒng)的使用者,首先要能對(duì)監(jiān)控的計(jì)算機(jī)進(jìn)行管理,即有選擇性地決定對(duì)哪些計(jì)算機(jī)進(jìn)行監(jiān)控,必須實(shí)現(xiàn)對(duì)監(jiān)控計(jì)算機(jī)列表的添加、修改、刪除等操作。
對(duì)于截獲的數(shù)據(jù)包,系統(tǒng)使用者應(yīng)該可以以多種自選方式對(duì)截獲的數(shù)據(jù)包進(jìn)行查詢操作,并決定是否對(duì)某些數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì)。對(duì)于數(shù)據(jù)包統(tǒng)計(jì)后的流量信息,系統(tǒng)使用者也應(yīng)可以便利地對(duì)該信息進(jìn)行查詢操作。同時(shí)應(yīng)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,如導(dǎo)入導(dǎo)出等。
經(jīng)過調(diào)查分析得到以下功能需求:①管理員能對(duì)監(jiān)控的機(jī)器信息進(jìn)行管理,至少包括添加、修改和刪除;②管理員可以查看和管理截獲的數(shù)據(jù)包信息,并對(duì)滿足一定條件的數(shù)據(jù)包信息進(jìn)行搜索;③管理員可以查看和管理每臺(tái)機(jī)器的流量統(tǒng)計(jì)系統(tǒng),并對(duì)滿足一定條件的流量記錄信息進(jìn)行搜索;④管理員可以對(duì)后臺(tái)數(shù)據(jù)庫(kù)直觀地進(jìn)行管理和操作;⑤管理員可以根據(jù)需要更改流量統(tǒng)計(jì)系統(tǒng)的設(shè)置。
系統(tǒng)用例如圖1 所示,參與者為“管理員”,用例包括導(dǎo)入數(shù)據(jù)庫(kù),導(dǎo)出數(shù)據(jù)庫(kù),截獲數(shù)據(jù)包,停止截獲,數(shù)據(jù)包管理,流量管理,機(jī)器管理。其導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)用于已收集數(shù)據(jù)的數(shù)據(jù)交換;截獲數(shù)據(jù)包用于監(jiān)控所選擇的計(jì)算機(jī);機(jī)器管理包括添加機(jī)器、修改機(jī)器、刪除機(jī)器、批量添加機(jī)器、批量修改機(jī)器、批量刪除機(jī)器等操作。數(shù)據(jù)包管理包括導(dǎo)入數(shù)據(jù)庫(kù)、導(dǎo)出數(shù)據(jù)庫(kù)、刷新、流量統(tǒng)計(jì)、清空數(shù)據(jù)庫(kù)、按IP 查找數(shù)據(jù)包、按時(shí)間查找數(shù)據(jù)包、按機(jī)房查找數(shù)據(jù)包等操作。流量管理包括導(dǎo)入數(shù)據(jù)庫(kù)、導(dǎo)出數(shù)據(jù)庫(kù)、刷新、清空數(shù)據(jù)庫(kù)、按IP查找流量、按時(shí)間查找流量、按機(jī)房查找流量等操作。
圖1 系統(tǒng)用例圖
在系統(tǒng)中,所有機(jī)房通過一臺(tái)UNIX 操作系統(tǒng)的代理服務(wù)器上網(wǎng),代理服務(wù)器的一端連接Internet,另一端連接一個(gè)用于整個(gè)實(shí)驗(yàn)樓的主交換機(jī),主交換機(jī)連出的各個(gè)分交換機(jī)分布于各個(gè)機(jī)房。機(jī)房中的機(jī)器分為學(xué)生機(jī)與教師機(jī)兩大類,每個(gè)機(jī)房中的學(xué)生機(jī)使用一個(gè)IP 段,而整個(gè)局域網(wǎng)所有的教師機(jī)使用一個(gè)IP段,連接于對(duì)應(yīng)的分交換機(jī),從而形成機(jī)房網(wǎng)絡(luò)局域網(wǎng),系統(tǒng)結(jié)構(gòu)圖如圖2 所示。
圖2 系統(tǒng)結(jié)構(gòu)圖
設(shè)計(jì)中,系統(tǒng)安裝在與學(xué)生機(jī)級(jí)別并列的控制機(jī)上,以便獲得整個(gè)局域網(wǎng)的數(shù)據(jù)流量信息。
該網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng)主要分成三個(gè)部分:網(wǎng)絡(luò)數(shù)據(jù)包截獲、數(shù)據(jù)庫(kù)和界面。
網(wǎng)絡(luò)數(shù)據(jù)包截獲部分對(duì)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)信息進(jìn)行截獲,并解析數(shù)據(jù)包,將其中重要信息保存于數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)部分用來存儲(chǔ)局域網(wǎng)中的機(jī)器信息、系統(tǒng)運(yùn)行過程中截獲的數(shù)據(jù)包信息及分析這些數(shù)據(jù)包后得到的統(tǒng)計(jì)。存儲(chǔ)過程部分則為定義的對(duì)數(shù)據(jù)庫(kù)的所有操作。
系統(tǒng)中的界面是聯(lián)系用戶和系統(tǒng)的接口。用戶能夠以直觀、便捷的方式發(fā)出命令,和系統(tǒng)進(jìn)行交互,完成預(yù)期的操作。
按照結(jié)構(gòu)化的系統(tǒng)設(shè)計(jì)方法,根據(jù)網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng)的功能將系統(tǒng)劃分為網(wǎng)絡(luò)數(shù)據(jù)包截獲模塊、數(shù)據(jù)庫(kù)信息管理、界面模塊,如圖3 所示。
圖3 網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng)模塊劃分
(1) 系統(tǒng)管理。是對(duì)系統(tǒng)全局的操作,可以通過可視化操作的方法,在主界面上完成導(dǎo)入數(shù)據(jù)庫(kù)、導(dǎo)出數(shù)據(jù)庫(kù)、開始截獲數(shù)據(jù)包、停止截獲數(shù)據(jù)包、數(shù)據(jù)包管理、流量管理、機(jī)器信息管理等。功能圖如圖4 所示。
圖4 系統(tǒng)管理功能
(2) 局域網(wǎng)信息管理。系統(tǒng)可以對(duì)局域網(wǎng)中指定的計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)包管理,因此管理員必須建立并維護(hù)機(jī)器信息表,通過添加、修改、刪除機(jī)器信息的方式?jīng)Q定對(duì)哪些機(jī)器的數(shù)據(jù)包進(jìn)行截獲統(tǒng)計(jì)。功能見圖5。
圖5 局域網(wǎng)信息管理功能
(3) 數(shù)據(jù)包管理。當(dāng)數(shù)據(jù)包被截獲時(shí),數(shù)據(jù)包信息會(huì)被提取到數(shù)據(jù)包表中,用戶可以通過可視化的方式導(dǎo)入、導(dǎo)出數(shù)據(jù)包表,通過不同的方式查看數(shù)據(jù)包信息,或手動(dòng)進(jìn)行流量統(tǒng)計(jì)。功能如圖6 所示。
圖6 數(shù)據(jù)包管理功能
(4) 流量管理。和數(shù)據(jù)包管理類似的,用戶可通過可視化的方式導(dǎo)入、導(dǎo)出數(shù)據(jù)包表,通過不同的方式查看流量信息,刷新或清空數(shù)據(jù)表。功能如圖7 所示。
圖7 流量管理功能
系統(tǒng)中的主要數(shù)據(jù)表共有三個(gè)表:機(jī)器信息表、數(shù)據(jù)包信息表、流量信息表。
(1) 機(jī)器信息表。用來存儲(chǔ)局域網(wǎng)中各臺(tái)機(jī)器的信息,包括為其分配的IP 地址、所屬機(jī)房、機(jī)器類型。如表1 所示。
表1 機(jī)器信息表
(2) 數(shù)據(jù)包信息表。用來存儲(chǔ)本系統(tǒng)在局域網(wǎng)截獲的尚未統(tǒng)計(jì)到流量信息的數(shù)據(jù)包中含有的信息。如表2 所示。
表2 數(shù)據(jù)包信息表
(3) 流量信息表。用來存儲(chǔ)局域網(wǎng)每臺(tái)機(jī)器訪問過的不同網(wǎng)站,以及訪問的流量和最后的訪問時(shí)間。如表3 所示。
表3 流量信息表
本節(jié)敘述數(shù)據(jù)包截獲模塊及界面模塊設(shè)計(jì)[11-15]。
2.4.1 網(wǎng)絡(luò)數(shù)據(jù)包截獲模塊
(1) 功能。監(jiān)控整個(gè)局域網(wǎng)的數(shù)據(jù)通信狀態(tài),實(shí)現(xiàn)包的截取,從中提取具體數(shù)據(jù)信息,存入指定數(shù)據(jù)庫(kù)。
(2) 性能。系統(tǒng)的穩(wěn)定性。系統(tǒng)代碼中,對(duì)每一個(gè)關(guān)鍵代碼塊都設(shè)有異常捕獲部分,可以保證即時(shí)獲得系統(tǒng)錯(cuò)誤,并保證系統(tǒng)的穩(wěn)定、長(zhǎng)期的運(yùn)行。
(3) 工作效率。每秒截獲數(shù)據(jù)包的數(shù)量,數(shù)據(jù)包的丟包率。
(4) 輸入項(xiàng)目。到達(dá)該局域網(wǎng)的數(shù)據(jù)包。
(5) 輸出項(xiàng)目。到達(dá)本機(jī)的包的各種信息,包括:發(fā)送數(shù)據(jù)包的IP 源地址及目的地址、包的大小、包的內(nèi)容、源端口及目的端口、數(shù)據(jù)包的類型等。
(6) RawSocket. cs 文件。實(shí)現(xiàn)RawSocket 類,它包含了系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)包監(jiān)視的核心技術(shù)。
(7) LANInformation.cs 文件。用來獲得局域網(wǎng)中在線的機(jī)器列表信息。
2.4.2 界面模塊設(shè)計(jì)
(1) 功能。該模塊是聯(lián)系用戶和系統(tǒng)的接口。使用戶能夠以直觀、便捷的方式發(fā)出命令,和系統(tǒng)進(jìn)行交互,完成預(yù)期的操作。
(2) 性能。交互界面能否以簡(jiǎn)單的方式提示用戶的操作,簡(jiǎn)潔的操作能否達(dá)到用戶預(yù)想的目的,界面的安排是否符合一般用戶的使用習(xí)慣。
(3) 輸入項(xiàng)目。對(duì)按鈕、標(biāo)簽、菜單的點(diǎn)擊等操作,文本框輸入等。
(4) 輸出項(xiàng)目。界面樣式改變、可視化的查詢結(jié)果等。
(5) MoniterWindow. cs 文件。系統(tǒng)的初始界面。該界面是系統(tǒng)的入口,界面在初始化時(shí)會(huì)檢測(cè)整個(gè)局域網(wǎng)中在線的計(jì)算機(jī),獲取他們的信息,并將其顯示于界面中。
(6) CaptureWindow.cs 文件。將“數(shù)據(jù)包信息”表中的數(shù)據(jù)信息以不同的方式顯示于界面中,以便用戶對(duì)其進(jìn)行一些必要的人工分析。
(7) StatisticWindow.cs 文件。將“流量信息”表中的數(shù)據(jù)信息以不同的方式顯示于界面中,以便用戶對(duì)其進(jìn)行一些必要的人工分析。
(8) LANManagement. cs 文件。用于管理員通過界面對(duì)“機(jī)器信息”表進(jìn)行操作。
為高校公共機(jī)房設(shè)計(jì)了具有系統(tǒng)管理、機(jī)器管理、數(shù)據(jù)包管理、流量管理功能的網(wǎng)絡(luò)流量統(tǒng)計(jì)系統(tǒng),實(shí)現(xiàn)了對(duì)計(jì)算機(jī)訪問網(wǎng)絡(luò)的信息的管理、通過IP 地址、所屬機(jī)房等信息對(duì)截獲的數(shù)據(jù)包進(jìn)行查看等操作,完成流量信息的保存和數(shù)據(jù)分析,使管理員可以方便地進(jìn)行數(shù)據(jù)管理和維護(hù),從而提高機(jī)房管理能力和效率。
[1] 朱 航,須 德. 基于SIP 的多媒體業(yè)務(wù)穿越網(wǎng)絡(luò)地址轉(zhuǎn)換/防火墻研究與設(shè)計(jì)[J].北京交通大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,29(2):26-30.
[2] LI Xin. Stateful Inspection Firewall Session Table RocesSing[J].International,2005(2):615-620.
[3] 董 光,王 哲,張俊鵬.數(shù)據(jù)包截獲與分析技術(shù)淺析[J]. 吉林省經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2006,20(2):54-56.
[4] 熊安萍.基于Winsock 技術(shù)的數(shù)據(jù)包解析研究[J].計(jì)算機(jī)科學(xué),2006,33(12):81-82.
[5] 蔣 波.數(shù)據(jù)包的截獲與網(wǎng)絡(luò)協(xié)議分析[J].重慶三峽學(xué)院學(xué)報(bào),2006,22(3):26-27.
[6] 秦根建,張秉權(quán). 網(wǎng)絡(luò)數(shù)據(jù)包截獲機(jī)制研究[J]. 兵工自動(dòng)化,2003,33(3):34-36.
[7] 陳永輝,向科峰,呂 琳.基于Winsock2SPI 的網(wǎng)絡(luò)封包截獲[J].兵工自動(dòng)化,2006,2(3):55-56.
[8] 馬武瑜.局域網(wǎng)絡(luò)技術(shù)的發(fā)展與展望[J].廣西民族學(xué)院學(xué)報(bào)(自然科學(xué)版),1998,4(3):43-45.
[9] Anthony Jones.Windows 網(wǎng)絡(luò)編程技術(shù)[M].北京:機(jī)械工業(yè)出版社,2000:267-270.
[10] W Richard Stevens.TCP/IP 詳解(卷2 實(shí)現(xiàn))[M]. 北京:機(jī)械工業(yè)出版社,2000.249-255.
[11] AShao1981. 初探數(shù)據(jù)包分析程序設(shè)計(jì)[EB/OL]. http://blog.csdn. net/ashao1981/archive/2004/04/12/22352. aspx,2004-04-12.
[12] Anthony Jones,Jim Ohlund.Windows 網(wǎng)絡(luò)編程技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001:113-119.
[13] Douglas EComer. Computer Networks and Internets with Internet Applications[M].北京:電子工業(yè)出版社,2004:189-193.
[14] 侯俊杰.深入淺出MFC[M].2 版. 武漢:華中科技大學(xué)出版社,2001:134-139.
[15] 管章全,唐曉衛(wèi).Visual C+ + 6.0 編程實(shí)例詳解[M]. 北京:電子工業(yè)出版社,1999:201-210.