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