基于SNMP的通信網絡性能管理模塊設計與實現
實時性能分析 提供實時數據采集、分析和可視化的工具(如MIB瀏覽器),可以對流量、負載、丟包、設備溫度、內存利用率、網絡延遲等網絡設備和線路的性能指標進行實時監(jiān)控,并可設置數據采集的時間間隔。
本文引用地址:http://www.ex-cimer.com/article/157828.htm
3 性能管理模塊的編程實現
在性能管理模塊的開發(fā)過程中,可利用SNMP++類庫來實現數據采集模塊的開發(fā),SNMP++是由HP公司提供的一個開放的軟件包,它能夠較好地實現SNMP協(xié)議,利用它的成員函數get(),getnext(),get-bulk(),set(),trap()可以編程實現對設備和主機性能數據的采集。SNMP++提供跨平臺可移植的API。任何使用SNMP++編寫的網絡管理應用程序,不需要做任何改變就可以移植到其它平臺。SNMP++在Target類中提供了超時和重傳機制,直接設置參數就可以實現超時和重傳功能。同時SNMP++可以運行在各種不同協(xié)議之上,它采用面向對象的設計方法,把WinSNMP的API函數封裝成一個個相關的類,大大簡化了SNMP網絡管理軟件開發(fā)的復雜性和開發(fā)難度。以下給出網絡性能管理的部分關鍵對象(表1)和性能參數的計算公式。大多MIB組都提供性能數據變量。
端口狀態(tài)ifOperStatus有三種取值,1(up)代表當前接口正處于使用狀態(tài);2(down)代表當前接口處于關閉狀態(tài);3(test)代表接口正處于測試狀態(tài)。
端口當前狀態(tài)保持時間=sysUpTime―if-LastChange
對于一段時間丁內,MIB變量值的變化:△(MIB-variable)=MIB-Value(t1)-MIB-Value(t0)
接口收到的包的總數:TOTAL_INPUT_PACK-ETS=△ifInUcastPkts+△ifInNUcastPkts
發(fā)出的包的總數:TOTAL_OUTPUT_PACK-ETS=△ifOutUcastPkts+△ifOutNUcastPkts
輸入丟包率=△ifInDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸出丟包率=△ifOutDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸入差錯率=△ifInErrors/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸出差錯率=△ifOutErrors/(△ifOutUcastPkts +△ifOutNUcastPkts)*100%
接口輸入流量=ifInOctets*8/sysUpTime
接口輸出流量=ifOutOctets*8/sysUpTime
接口利用率=((△ifInOctes+△ifOUtOetets)*8)/(T*ifSpeed)*100%
同樣可以計算其他參數,如:
IP吞吐量=(△ipInRecieves+△ipOutRequests+△ipForwDatagrams)/T
UDP吞吐量=(△udpInDatagrams+△udpNoPorts+△udpInErrors+△udpOutDatagrams)/T
下面給出了SNMP++編程的關鍵步驟(標“*”):
4 結 語
基于目前廣泛應用的SNMP設計了網絡管理系統(tǒng)中的性能管理模塊,采用HP公司提供的SNMP++類庫和編程工具Visual C++進行了具體實現,該工具可以作為復雜通信網絡管理系統(tǒng)設計和實現的參考。隨著網絡技術的進一步發(fā)展,開放、異構的復雜網絡管理系統(tǒng)將成為進一步研究的重點。
評論