【摘 要】提出一種能夠適用于空管信息網(wǎng)絡的網(wǎng)絡流量監(jiān)控系統(tǒng),該系統(tǒng)基于TCP/IP網(wǎng)絡的SNMP管理協(xié)議,通過visual2010平臺進行C#設計,能夠?qū)崿F(xiàn)對網(wǎng)絡數(shù)據(jù)的獲取、流量分析與記錄,并以此同時提供記錄文件進行數(shù)據(jù)記錄。
【關鍵詞】網(wǎng)絡流量監(jiān)控;C#;SNMP協(xié)議;網(wǎng)絡數(shù)據(jù)
0.引言
空管信息網(wǎng)絡承擔著包括OA系統(tǒng)、共享服務以及相關業(yè)務系統(tǒng)在內(nèi)的重要網(wǎng)絡業(yè)務,提供信息化的同時,給技術保障維護人員帶來一定的保障壓力。根據(jù)相關工作經(jīng)驗及實際實驗數(shù)據(jù),網(wǎng)絡設備端口流量異常是導致故障發(fā)生的重要原因,因此,對于網(wǎng)絡流量的監(jiān)控顯得更加重要。隨著空管信息化要求的逐日提高,網(wǎng)絡規(guī)模也日益變大,對于網(wǎng)絡流量監(jiān)控的工作也更加繁重。本文從空管網(wǎng)絡流量監(jiān)控的實際情況出發(fā),提出一種基于C#的網(wǎng)絡流量監(jiān)控,能夠?qū)崿F(xiàn)對網(wǎng)絡數(shù)據(jù)進行獲取、流量記錄與分析。系統(tǒng)在實際運行中效果良好,可以為相關網(wǎng)絡監(jiān)控設計提供一種可行的借鑒。
1.總體設計
SNMP即網(wǎng)絡管理協(xié)議(Simple Network Management),在TCP/IP協(xié)議族中可以對網(wǎng)絡進行管理,這種管理既可以是本地的也可以是遠程的。而基于SNMP網(wǎng)絡協(xié)議的本系統(tǒng),可以實現(xiàn)對網(wǎng)絡數(shù)據(jù)的獲取與實時監(jiān)控的功能,實現(xiàn)上具有通用、實時、多線程、維護性強及擴展性強的特點。實現(xiàn)在數(shù)據(jù)鏈路層和網(wǎng)絡層上任意節(jié)點的數(shù)據(jù)獲取。加之記錄功能的輔助,系統(tǒng)能實現(xiàn)在應用層的數(shù)據(jù)回放,以滿足空管安全事件調(diào)查以及系統(tǒng)維護對歷史工作狀況的評估。
SNMP協(xié)議中,一個網(wǎng)管基站可以實現(xiàn)對所有支持SNMP協(xié)議的網(wǎng)絡設備的監(jiān)控(隨著網(wǎng)絡技術的發(fā)展,目前絕大部分網(wǎng)絡設備是可支持的),包括監(jiān)視網(wǎng)絡狀態(tài)、修改網(wǎng)絡配置、接收網(wǎng)絡事件告警等等網(wǎng)絡監(jiān)控功能。在實現(xiàn)上主要包括遠程文件訪問、流量數(shù)據(jù)記錄、流量監(jiān)視以及系統(tǒng)的IP定位。其中流量監(jiān)視是系統(tǒng)實現(xiàn)的核心,將在下一部分進行介紹。另外,系統(tǒng)還提供了日志文件記錄實現(xiàn)對系統(tǒng)操作、監(jiān)控數(shù)據(jù)以及告警信息的記錄。
2.C#的實現(xiàn)
對于系統(tǒng)的C#實現(xiàn),主要采用的C/S模式,因此在系統(tǒng)的實現(xiàn)上盡量簡單、快捷、高效為主。因此自定義相關函數(shù)與類,在記錄數(shù)據(jù)和日志方面采用文本文件記錄。
2.1網(wǎng)絡監(jiān)控類與網(wǎng)絡適配類的設計
為了提高系統(tǒng)的模塊化程度及軟件的封裝性,系統(tǒng)在實現(xiàn)過程中定義了兩個主要的類。分別是用于網(wǎng)絡監(jiān)控的NetWorkMonitorClass以及網(wǎng)絡適配類NetWorkMatch,網(wǎng)絡監(jiān)控類主要實現(xiàn)系統(tǒng)的網(wǎng)絡監(jiān)控功能,而網(wǎng)絡適配類則提供了一個安裝在計算機上的網(wǎng)絡適配器,該類可用于獲取網(wǎng)絡中的流量。兩者功能及結構如下:
在實際工作中網(wǎng)絡監(jiān)控類NetWorkMonitorClass通過定義一個Timer計時器進行計時器時間執(zhí)行,以每隔2S刷新適配器,并與此同時刷新上傳下載速度。與此同時通過ArryList列表定義了所監(jiān)控設備的適配器以及當前控制的適配器。在構造函數(shù)NetWorkMonitorClass()中則通過,定義兩個ArrayList(),其中一個(adapterlist)來保存獲取到的計算機的適配器列表,一個(monitoradapters)代表有效的運行的適配器列表。
NetAdapterShow ();
Timer = new System.Timers.Timer(2000);
Timer.Elapsed += new ElapsedEventHandler(timer_ElapsedClick);
其中,NetAdapterShow ()為列舉出安裝在該計算機上面的適配器,具體實現(xiàn)可以通過C#的foreach()語句進行編寫如下:
PerformanceCounterCategoryPCCCategory=new PerformanceCounterCategory(\"Network Interface\");
foreach (string InstanceName in PCCCategory.GetInstanceNames())
{
if (InstanceName == \"MS TCP Loopback interface\")
continue;
// 創(chuàng)建一個實例Net workAdapter類別,并創(chuàng)建性能計數(shù)器它
MyNetWorkMatchClassmyMNWMadapter=new MyNetWorkMatch
Class(InstanceName);myMNWMadapter.m_Performance_Down=new PerformanceCounter(\"Network Interface\", \"Bytes Received/sec\", InstanceName);
myMNWMadapter.m_Performance_Up=newPerformanceCounter(\"Network Interface\", \"Bytes Sent/sec\", InstanceName);
m_AdaptersList.Add(myMNWMadapter);
}
當然,在類中也定義了StartWorking以及StopWorking等控制函數(shù)對類的工作狀態(tài)進行控制。另外timer事件也通過構造函數(shù)進行加入,如上所述。
網(wǎng)絡適配類NetWorkMatch則主要計算網(wǎng)絡的各種數(shù)據(jù),如計算上傳速度、下載速度、控制適配器等函數(shù)的封裝,減少網(wǎng)絡監(jiān)控類的功能耦合度。
2.2具體實現(xiàn)
在窗體加載函數(shù)中,系統(tǒng)首先做自我初始化如下:首先定義上述設計的網(wǎng)絡監(jiān)控類,并實例化monitor = new NetWorkMonitorClass();與此同時通過類函數(shù)遍歷獲取所有計算機適配列表,m_MNWMadapters = monitor.Adapters; ,Adapters()為網(wǎng)絡監(jiān)控類封裝好的函數(shù)。并將函數(shù)返回結果通過Items.AddRange()函數(shù)將其顯示在listbox控件中,以實現(xiàn)友好的人機交互界面。其次,在timer定時器中對選中監(jiān)控的適配器進行獨立監(jiān)控。至此,系統(tǒng)實現(xiàn)了獨立監(jiān)控與全面監(jiān)控的所有設計。
3.結語
本文提出一種基于SNMP協(xié)議分析的網(wǎng)絡監(jiān)控系統(tǒng),該系統(tǒng)應用于空管信息網(wǎng)絡。在實現(xiàn)過程,主要采用C#進行開發(fā),通過編寫自我的網(wǎng)絡監(jiān)控類和網(wǎng)絡適配類進行網(wǎng)絡數(shù)據(jù)的流量監(jiān)控,可以推廣應用于信息網(wǎng)絡維護工作較為繁重的行業(yè),提供一種智能網(wǎng)絡流量監(jiān)控手段。
【參考文獻】
[1]宮婧,孫知信,陳二運.一種基于流量行為分析的P2P流媒體識別方法[J].計算機技術與發(fā)展,2009(09).
[2]王珊,陳松,周明天.網(wǎng)絡流量分析系統(tǒng)的設計與實現(xiàn)[J].計算機工程與應用,2009(10).
[3]李萬鵬.網(wǎng)絡流量控制及流量分析[D].北京郵電大學,2011.
[4]韓耀明.基于DPI技術的VoIP流量檢測系統(tǒng)的設計與實現(xiàn)[D].北京郵電大學,2010.