凌高源++朱琳



摘要:網絡監控是為了收集網絡行為與狀態信息的操作,是網絡管理的主要組成部分,其主要功能是為了收集網絡的相關信息,包括了動態信息與靜態信息,并具有收集網絡事件的統計信息的功能。網絡流量監測是一個從網絡設備上采集數據、解碼數據、分析數據的過程。它從網絡中采集一些具體的指標性數據,并反饋給監測者。這些數據對網絡的資源分配、容量規劃、服務質量分析、錯誤監測與隔離、安全管理都十分重要。這些數據可以用來作為分析網絡性能、了解網絡運行動態、診斷可能存在的問題,甚至預測可能出現的問題。本文從計算機網絡監測的背景和意義出發,首先對計算機網絡流量的相關課題背景進行研究,分析了網絡流量監控的研究現狀,提出了論文主要內容和研究目標;接著介紹了網絡流量監控系統業務的概念與發展,描述了系統實現的開發環境。其次,研究了網絡流量監控系統的功能需求與性能需求。
關鍵詞:上網監測系統;網絡流量;.NET技術;數據庫;流量監測
中圖分類號:TP311
文獻標識碼:A DOI: 10.3969/j.issn.1003-6970.2016.01.012
0 引言
在網絡管理的過程中,上網流量監控是整個網絡管理的一個重要部分,對于一個網絡管理工作者來說,有效的網絡流量監控不僅能夠讓網絡管理相關人員能夠及時的了解網絡的運行過程和運行狀態,并且能夠對網絡出現的問題做出及時的調整和排除。
1 課題研究的意義和需求
研究上網流量監測的意義大致歸為以下幾點:(1)實時了解網絡性能(2)研究網絡技術的基礎(3)補充網絡管理的能力。論文總共分成四章,章節安排如下:第一章:介紹了網絡流量監控的選題背景和論文研究的主要目的和意義。第二章:分析了網絡流量監控系統的技術與開發環境。第三章:網絡流量監控系統需求分析。第四章:進行網絡流量監測系統的詳細設計。
2 相關概念和技術
2.1 網絡流量概述
網絡流量就是網絡上傳輸的數據量。網絡流量分類基于以下三個層面的:(1) Packet-Ievel的流量分類:主要關注數據包(packet)的特征及其到達過程,如數據包大小分布、數據包到達時間間隔的分布等;(2) Flow-Ievel的流量分類:主要關注流(flow)的特征及其到達過程,可以為一個TCP連接或者一個UDP流。其中,流通常指一個由源IP地址、源端口、目的IP地址、目的端口、應用協議組成的五元組:(3)Stream-Ievel的流量分類:主要關注主機對及它們之間的應用流量,通常指一個由源IP地址、目的IP地址、應用協議組成的三元組,適用于在一個更粗粒度上研究骨干網的長期流量統計特性。在上述三個層面的流量分類中,使用最廣泛的是Flow-Ievel的流量分類。本課題就是根據第二類來展開討論與研究的。
2.2 網絡流量監測原理
網絡監測是用檢測工具對目標網絡的運行參數進行收集,在此基礎上建立一般模型,并在此網絡以后的運行中實時地抽取網絡運行參數,以某種算法對參數和模型進行匹配和分析,以確定網絡的運行狀態。網絡檢測從關鍵技術和檢測方式來看,可以分為主動檢測和被動檢測。主動檢測就是應用某種網絡管理協議,通過被檢測的網絡設備了解它們的運行情況,當發生異常,網絡設備采用陷阱(TRAP)的方式通知檢測服務器。這種檢測方式的優點在于能夠及時發現大型網絡故障和異常位置,并具有較高的安全性,不會對用戶的數據包進行拆包檢查;當然這種檢測也有缺點,它的主要缺點在于不能夠分析網絡故障和異常的原因,在檢測過程中產生新的數據流量,占據一定的網絡帶寬。被動檢測只是安裝設備上的網絡接口使用捕獲器對流經該接口的網絡流量進行拆包和分析,也就是包攔截和包信息讀取。這種檢測方式的優點在于能夠詳細的分析被檢測接口的網絡流量,發現故障和異常的原因,運行過程中,基本不產生網絡流量,對網絡性能沒有影響;缺點在于單設備的局限性和用戶數據隱私問題。
2.3 上網流量監測系統設計技術
2.3.1 WinPcap控件
WinPcap是Windows平臺下一個專業的網絡數據包捕獲開發包,其目的是為Win32程序提供訪問網絡底層的能力,核心功能是捕獲網絡數據包,其它功能還還包括數據包過濾,數據包發送,數據包存儲等。
2.3.2 DotNet技術與c#語言
.NET是一個微軟開發的編程環境,里面可以使用C#、VB等多種編程語言。C#是微軟公司發布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言。
2.3.3
SQL Sever 2008數據庫工具
SQL Server 2008是Microsoft公司推出的SQLServer數據庫管理系統,它具有使用方便、可伸縮性優和與相關軟件集成程度高等優點,可以在多種系統平臺中運行和使用。
3 上網流量監控系統的設計
3.1 總體結構設計
為了使本系統結構清晰,便于調試,易于實現。整個系統劃分為三大功能模塊:IP數據包抓取功能模塊、系統后臺流量統計模塊和用戶查詢界面模塊。見下圖3.1所示
IP數據包抓取模塊:完成網絡接口數據的捕獲、解析和顯示,可以根據用戶定義條件組合來進行捕獲,如只監視采用TCP或UDP協議的數據包,也可以監視用戶希望關注的相關IP地址的數據包。
系統后臺流量統計模塊:完成統計功能,如根據IP地址統計出某IP地址的TCP協議流量流出流量值和流入流量值、UDP協議流量流出流量值和流入流量值以及其他協議的流出流量值流入值,最后還要有某IP地址的流量總流出值、總流入流量值以及總值。同時,系統按照日、周的顆粒度進行數據存儲,自動進行數據整理并更新數據表。 流量使用查詢模塊:完成總流量、輸入流量、輸出流量等的顯示;可隨意查詢某日或某一周的流量使用情況并可設定流量限額,對超流量限額的數據或日期進行標記。
3.2 系統數據庫設計
3.2.1 E-R圖
在數據庫表的設計之前,首先應該設計數據庫的E-R圖,如圖3.2到3.3所示。
3.2.2 數據庫表設計
計算機的網絡流量監控系統,包括了當日實時流量表(CurrentDataPackages)、日流量表(DayTrafficStatistics)、周流量表(WeekTrafficStatistics)。各個表的字段設計如表3.1至表3.3所示。
3.2.3 界面設計
在總體設計中,根據功能需求設了三個模塊,分別為:IP數據包抓取模塊、系統后臺流量統計模塊、流量使用查詢模塊。
在IP數據包抓取模塊中,需要有捕捉、停止按鈕,而且需要有選擇網絡適配器和條件過濾的功能(默認過濾條件為tcp and ip and port not 80)0界面設計如圖3.6所示。
在系統后臺流量統計模塊中,因為全程都是在數據庫中利用存儲過程和調度來完成的,所以沒有相關界面的設計。
在流量使用查詢模塊里,可以按照日或者周來查詢某IP的流量使用情況,并可以設定流量額度,對超過流量額度的記錄進行標記。界面設計如圖3.7所示。
4 上網流量監控系統的詳細設計
4.1 IP數據包抓取模塊
數據包的抓取程序采用Win32平臺下的專業的數據包捕獲開發包-WinPcap來進行開發。該系統關鍵在于數據的獲取,而基于WinPcap的數據包捕獲就是其中的關鍵技術。
IP數據包捕獲界面包含選擇網絡適配器以及條件過濾功能。見圖4.1。
條件過濾功能的書寫規則,需要著重說明一下。規則如下:(1)該條件過濾功能可以過濾協議和端口。(2)不同條件用“and”隔開。(3)若過濾條件為協議,則直接寫出協議的英文縮寫;若過濾條件為端口,書寫格式為“port端口號;(4)點擊捕獲按鈕后,開始抓取IP數據包,并將抓取解析后的數據存放到數據庫表中保存。IP數據包抓取程序運行流程如圖4.2所示:
4.2 系統后臺流量統計模塊
此模塊功能全部在數據庫中實現。主要功能包括:當日實時表的更新和維護、日流量表記錄的定時導入、周流量表記錄的定時導入。當日實時表的更新和維護功能是指把每日24點前的數據存放在一張表中,供給用戶查看流量,零點過后則把前一天的數據清除,即當日實時表里最多只存放一天的數據。日流量表的定時導入功能關鍵在于如何把當日實時表的數據按照IP地址進行統計,分別計算出某IP地址的TCP協議流量流出流量值和流入值、UDP協議流量流出流量值和流入流量值以及其他協議的流出流量值流入值,最后還要計算出某IP地址的流量總流出值、總流入流量值以及總值,并且將這些數據定時整理后導入日流量表。日流量表的數據導入是利用存儲過程來完成的,該模塊的程序流程圖如圖4.3所示。流量表的定時數據導入是利用SQL Sever代理完成的,需要新建一個作業,然后設置每日零點執行一次,執行的命令為數據導入的存儲過程,這樣數據就會定時自動導入到日流量表當中了。周流量表的定時導入功能關鍵在于如何將日流量表一周七天的的數據統計后導入到周流量表中,并且將這些數據定時整理后導入周流量表。周流量表的數據導入同樣是利用存儲過程來完成的,程序流程圖如圖4.4所示:
4.3 流量使用查詢模塊
用戶可查看當日的實時統計結果、每日的統計結果以及每周的統計結果。
當日的實時統計結果即是查看根據數據庫中當日實時流量表統計后的數據,包括某IP地址的TCP協議流出流量值和流入流量值、UDP協議流量流出流量值和流入流量值以及其他協議的流出流量值流入流量值以及某IP地址的流量總流出流量值、總流入流量值以及總值,并根據設定的流量上限對超出限額的IP地址進行紅色標注。
每日的統計結果即是查看數據庫中的日流量表,根據表的字段,可以查看除當日外的某一天的某IP地址的TCP協議流量流出流量值和流入值、UDP協議流量流出流量值和流入流量值以及其他協議的流出流量值流入流量值以及某IP地址的流量總流出值、總流入流量值以及總值,并根據設定的流量上限對超出限額的IP地址進行紅色標注。
每周的統計結果即是查看數據庫中的周流量表,根據表的字段,可以查看每周某IP地址的TCP協議流量流出流量值和流入流量值、UDP協議流量流出流量值和流入流量值以及其他協議的流出流量值和流入流量值以及某IP地址的流量總流出流量值、總流入流量值以及總值,并根據設定的流量上限對超出限額的IP地址進行紅色標注。
4.4 運行結果
本設計在Win7環境試運行下,編譯后經過實際執行,可抓取數據包,寫入數據庫,并可以將數據統計分析后寫入相應的數據庫表中,顯示界面良好,系統運行正常,基本達到設計目標,運行結果比較良好。演示結果如圖4.5所示。
5 總結與展望
論文對于計算機的網絡流量監控系統的設計技術的研究,還存在一定的不足地方,例如對于互動信息數據采集的方式分析不足等,這些問題在以后的研究中將會進一步地去解決。總而言之,論文對于計算機的網絡流量監控系統建設的研究,已經基本完成了系統設計需求,已達到預期設計目標,由于時間與技術水平的不足,系統中存在一定的缺陷,這些將在以后的進一步研究中去研究和探討。