專利名稱:一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法和服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域技術(shù),特別是涉及一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法和服務(wù)器。
背景技術(shù):
目前,網(wǎng)絡(luò)管理服務(wù)器通??梢詫δ承┚W(wǎng)絡(luò)設(shè)備的性能進行監(jiān)控,以便于及時了解網(wǎng)絡(luò)當(dāng)前的繁忙程度和擁塞狀況。為此,網(wǎng)絡(luò)管理服務(wù)器需要采集網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù),根據(jù)采集到的性能統(tǒng)計數(shù)據(jù)進行計算,以確定網(wǎng)絡(luò)設(shè)備當(dāng)前的性能。
對性能統(tǒng)計數(shù)據(jù)進行采集大多采用簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)來實現(xiàn)。如果網(wǎng)絡(luò)管理服務(wù)器需要對某個網(wǎng)絡(luò)設(shè)備的性能進行監(jiān)控,可以向其發(fā)送攜帶有對象標識的SNMP請求報文,要求獲取該網(wǎng)絡(luò)設(shè)備中某個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù)。該網(wǎng)絡(luò)設(shè)備將采集到的數(shù)據(jù)通過SNMP響應(yīng)報文返回給網(wǎng)絡(luò)管理服務(wù)器。此后,網(wǎng)絡(luò)管理服務(wù)器就可以根據(jù)采集到的數(shù)據(jù)進行統(tǒng)計,以確定該網(wǎng)絡(luò)設(shè)備的性能。這里,監(jiān)控對象可以是網(wǎng)絡(luò)設(shè)備中的某個接口、中央處理單元(CPU)、虛擬專用網(wǎng)絡(luò)(VPN)通道等,對象標識可以表示監(jiān)控對象,而性能統(tǒng)計數(shù)據(jù)則是從監(jiān)控對象處可采集到的用于體現(xiàn)當(dāng)前狀況的數(shù)據(jù),比如某個接口的流量、CPU的利用率等。
實際應(yīng)用中,由于網(wǎng)絡(luò)比較繁忙,或者發(fā)生異常丟包等原因,網(wǎng)絡(luò)管理服務(wù)器和網(wǎng)絡(luò)設(shè)備之間的通信并不是實時的,通常會存在延遲現(xiàn)象。圖1顯示了對一個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù)進行采集時的延遲現(xiàn)象示意圖。如圖1所示,網(wǎng)絡(luò)管理服務(wù)器在T0時刻向某個網(wǎng)絡(luò)設(shè)備發(fā)送了SNMP請求報文;網(wǎng)絡(luò)設(shè)備在T0后的某一時刻T1接收到該SNMP請求報文,并將采集的數(shù)據(jù)通過SNMP響應(yīng)報文返回給網(wǎng)絡(luò)管理服務(wù)器;網(wǎng)絡(luò)管理服務(wù)器在T1后的某一時刻T2接收到該SNMP響應(yīng)報文。也就是說,由于網(wǎng)絡(luò)存在延遲,網(wǎng)絡(luò)管理服務(wù)器需要從T0時刻等待到T2時刻才能夠獲得采集的數(shù)據(jù),才能夠進行后續(xù)的統(tǒng)計。
隨著網(wǎng)絡(luò)規(guī)模的擴大,網(wǎng)絡(luò)管理服務(wù)器需要監(jiān)控的監(jiān)控對象越來越多。圖2是對多個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù)進行采集的示意圖。如圖2所示,網(wǎng)絡(luò)管理服務(wù)器需要對n個監(jiān)控對象進行數(shù)據(jù)采集,并依次與網(wǎng)絡(luò)設(shè)備進行n次交互。假設(shè)網(wǎng)絡(luò)管理服務(wù)器在單位時間T內(nèi)需要進行采集和計算兩部分工作,采集的時間為Td,計算的時間為Tc,即T=Td+Tc。如果網(wǎng)絡(luò)管理服務(wù)器每一次交互需等待的時間為ΔT,那么,T也可以表示為T=ΔT×n+Tc。也就是說,如果監(jiān)控對象越多,用于計算的時間就越少。當(dāng)監(jiān)控對象到達一定數(shù)量時,可能無法滿足計算的時間開銷,這將導(dǎo)致網(wǎng)絡(luò)管理服務(wù)器無法對網(wǎng)絡(luò)設(shè)備進行有效的性能監(jiān)控。
為了優(yōu)化性能統(tǒng)計數(shù)據(jù)的采集過程,減少等待時間,目前提出兩種技術(shù)方案一種是異步等待響應(yīng)消息的方式,另一種是同步批量發(fā)送請求的方式。
其中,異步等待響應(yīng)消息的方式在發(fā)送一個SNMP請求報文后,立即切換進行計算或發(fā)送其它SNMP請求報文,并不等待返回的SNMP響應(yīng)報文。只有在接收到SNMP響應(yīng)報文時,才重新切換回來進行響應(yīng)報文的處理。由于異步等待響應(yīng)消息不等待返回的響應(yīng)報文,單位時間T一般可以表示為T=ΔT+Tc。也就是說,異步等待響應(yīng)消息的方式可以大大減少等待時間,將大部分時間用于統(tǒng)計計算上,可以有效地對網(wǎng)絡(luò)設(shè)備進行監(jiān)控。
但異步等待響應(yīng)消息的方式需要在計算和接收響應(yīng)報文的過程之間反復(fù)切換,處理過程的復(fù)雜度非常高,容易出現(xiàn)混亂導(dǎo)致程序異常的情況,以及返回大量響應(yīng)報文時無法及時處理的情況等。
同步批量發(fā)送請求的方式是在一個SNMP請求報文中攜帶多個對象標識,要求獲取網(wǎng)絡(luò)設(shè)備中多個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù),網(wǎng)絡(luò)設(shè)備將采集到的多個監(jiān)控對象的數(shù)據(jù)同時通過一個SNMP響應(yīng)報文返回給網(wǎng)絡(luò)管理服務(wù)器。此后,網(wǎng)絡(luò)管理服務(wù)器等接收到響應(yīng)報文后才開始進行計算。由于同步批量發(fā)送請求方式可以在一次交互過程中獲得多個監(jiān)控對象的數(shù)據(jù),從而可以減少交互的次數(shù),減少單位時間內(nèi)的等待時間。假設(shè)一個SNMP請求報文中攜帶有m個對象標識,那么,單位時間T可以表示為T=ΔT×n/m+Tc。也就是說,如果m越大,等待時間就越小,從而可以將大部分時間用于計算上。
雖然同步批量發(fā)送請求方式實現(xiàn)起來比較簡單,可以避免異步等待響應(yīng)消息方式的缺陷,但由于不同網(wǎng)絡(luò)設(shè)備可以支持的報文大小可能不同,同一個網(wǎng)絡(luò)設(shè)備在不同時期支持的報文大小也可能不同,所以,為了適應(yīng)不同網(wǎng)絡(luò)環(huán)境,通常將報文中對象標識的個數(shù)m設(shè)置得比較小,使SNMP報文在不同的網(wǎng)絡(luò)環(huán)境下都得到網(wǎng)絡(luò)設(shè)備的支持。從上述表達式T=ΔT×n/m+Tc可以看出,如果將m設(shè)置得比較小,等待時間就會比較長,從而不能充分地將時間用于計算上。
由此可見,現(xiàn)有的同步批量發(fā)送請求方式還不能既可以保證網(wǎng)絡(luò)設(shè)備支持報文大小,又可以將時間充分用于計算上,以更好地實現(xiàn)對網(wǎng)絡(luò)設(shè)備性能的監(jiān)控。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法和服務(wù)器,可以在單位時間內(nèi)減少與網(wǎng)絡(luò)設(shè)備之間交互的次數(shù),將時間充分用于計算。
為了達到上述第一個發(fā)明目的,本發(fā)明提出的技術(shù)方案為 一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法,該方法包括以下步驟 a、利用不同大小的請求報文依次與網(wǎng)絡(luò)設(shè)備進行交互,并根據(jù)返回的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度; b、根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,并發(fā)送給網(wǎng)絡(luò)設(shè)備;一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng); c、接收網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
上述方案中,所述步驟a包括 a1、根據(jù)設(shè)置的報文測試長度構(gòu)造攜帶有至少一個對象標識的請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備; a2、根據(jù)網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新設(shè)置并返回步驟a1;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
上述方案中,將事先設(shè)置的報文長度的所有可選取值按照大小進行排列并記錄對應(yīng)的位置序號,將最小取值對應(yīng)的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號;所述開始序號在結(jié)束序號之前; 所述設(shè)置報文長度測試值的方法為根據(jù)開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度。
上述方案中,所述步驟a2包括 a21、判斷網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文是否攜帶有報文超大信息,如果有,則將當(dāng)前測試序號的前一序號作為結(jié)束序號;否則,將當(dāng)前測試序號的后一序號作為開始序號; a22、判斷開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度,然后執(zhí)行步驟b;否則,根據(jù)開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度,并返回步驟a1。
上述方案中,所述步驟a1包括將設(shè)置的報文測試長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備; 所述步驟b包括將所述網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備; 所述根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文的方法為 x0、確定一個當(dāng)前對象標識,并將報文當(dāng)前長度的初始值設(shè)置為0; x1、根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度; x2、判斷響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并返回步驟x1;否則,構(gòu)造請求報文,將所有當(dāng)前需攜帶的對象標識攜帶于所述請求報文中。
針對上述第二個發(fā)明目的,本發(fā)明提出的技術(shù)方案為 一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的服務(wù)器,該服務(wù)器包括 對象標識存儲單元,用于保存所有的對象標識; 報文最大長度存儲單元,用于保存網(wǎng)絡(luò)設(shè)備可支持的最大報文長度; 測試控制單元,用于控制封裝單元構(gòu)造不同大小的請求報文,根據(jù)從收發(fā)單元接收到的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度保存在報文最大長度存儲單元中,并通知采集控制單元開始采集; 采集控制單元,用于接收測試控制單元開始采集的通知,從報文最大長度存儲單元中獲得網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,向封裝單元發(fā)送攜帶有網(wǎng)絡(luò)設(shè)備可支持的最大報文長度的控制信號,指示封裝單元構(gòu)造請求報文; 封裝單元,用于在測試控制單元的控制下,根據(jù)對象標識存儲單元保存的對象標識構(gòu)造請求報文,將構(gòu)造的請求報文傳輸給收發(fā)單元;在采集控制單元的控制下,根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng);將構(gòu)造出的請求報文傳輸給收發(fā)單元; 收發(fā)單元,用于將封裝單元構(gòu)造的請求報文發(fā)送出去;接收測試時返回的響應(yīng)報文,并傳輸給測試控制單元;接收采集時返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
上述方案中,所述測試控制單元包括 設(shè)置單元,用于設(shè)置報文測試長度,將攜帶有報文測試長度的控制信號發(fā)送給封裝單元,指示封裝單元按照報文測試長度構(gòu)造請求報文; 測試判別單元,用于根據(jù)從收發(fā)單元接收到的向應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新啟動設(shè)置單元;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給報文最大長度存儲單元進行保存。
上述方案中,所述設(shè)置單元包括 報文長度和序號存儲單元,用于存儲報文長度所有可選擇的取值以及對應(yīng)的位置序號,將最小取值對應(yīng)的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號,所述開始序號在結(jié)束序號之前; 設(shè)置控制單元,用于根據(jù)報文長度和序號存儲單元中的開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度;將攜帶有報文測試長度的控制信號發(fā)送給封裝單元,指示封裝單元按照報文測試長度構(gòu)造請求報文。
上述方案中,所述測試判別單元包括 第一判別子單元,用于根據(jù)從收發(fā)單元接收到的響應(yīng)報文判斷是否攜帶有報文超大信息,如果有,則將報文長度和序號存儲單元中的當(dāng)前測試序號的前一序號作為結(jié)束序號,并觸發(fā)第二判別子單元;否則,將當(dāng)前測試序號的后一序號作為開始序號,并觸發(fā)第二判別子單元; 第二判別子單元,用于判斷報文長度和序號存儲單元中的開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給最大長度存儲單元進行保存,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度;否則,啟動設(shè)置控制單元執(zhí)行。
上述方案中,所述封裝單元包括 封裝目標長度存儲單元,用于在接收到測試控制單元發(fā)送的控制信號時,將控制信號中的報文測試長度作為響應(yīng)報文目標長度進行保存;在接收到采集控制單元發(fā)送的控制信號時,將控制信號中的網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度進行保存; 計算單元,用于在接收到控制信號時,從對象標識存儲單元中獲取當(dāng)前對象標識,根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度,并傳輸給長度判別單元,所述報文當(dāng)前長度初始值為0; 長度判別單元,用于判斷封裝目標長度存儲單元中的響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并重新啟動計算單元;否則,構(gòu)造攜帶有所有當(dāng)前需攜帶的對象標識的請求報文,并傳輸給發(fā)送單元。
綜上所述,本發(fā)明提出一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法和服務(wù)器,在數(shù)據(jù)采集之前,先測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度來構(gòu)造請求報文。這樣,既可以保證請求報文和響應(yīng)報文不超過可支持的最大報文長度,又可以在請求報文攜帶盡可能多的對象標識,在響應(yīng)報文中返回盡可能多的性能統(tǒng)計數(shù)據(jù),因此,可以在單位時間內(nèi)減少與網(wǎng)絡(luò)設(shè)備之間交互的次數(shù),將時間充分用于計算,從而更好地對監(jiān)控對象進行監(jiān)控。
圖1是現(xiàn)有技術(shù)中對一個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù)進行采集時的延遲現(xiàn)象示意圖; 圖2是現(xiàn)有技術(shù)中對多個監(jiān)控對象的性能統(tǒng)計數(shù)據(jù)進行采集時的延遲現(xiàn)象示意圖; 圖3是本發(fā)明實現(xiàn)對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法流程圖; 圖4是應(yīng)用本發(fā)明方案的一個方法實施例的流程圖; 圖5是本發(fā)明對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的服務(wù)器內(nèi)部結(jié)構(gòu)示意圖; 圖6是本發(fā)明網(wǎng)絡(luò)管理服務(wù)器中測試控制單元503的內(nèi)部結(jié)構(gòu)的一個實施例; 圖7是本發(fā)明網(wǎng)絡(luò)管理服務(wù)器中設(shè)置單元5031和測試判別單元5032的內(nèi)部結(jié)構(gòu)的一個實施例; 圖8是本發(fā)明網(wǎng)絡(luò)管理服務(wù)器中封裝單元502的內(nèi)部結(jié)構(gòu)的一個實施例。
具體實施例方式 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
圖3是本發(fā)明實現(xiàn)對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法流程圖。如圖3所示,該方法可以包括以下步驟 步驟301利用不同大小的請求報文依次與網(wǎng)絡(luò)設(shè)備進行交互,并根據(jù)返回的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
實際應(yīng)用中,如果網(wǎng)絡(luò)設(shè)備無法支持某個長度的報文,將返回攜帶有報文超大信息的錯誤響應(yīng)報文;而如果網(wǎng)絡(luò)設(shè)備可以支持某個長度的報文,就將返回正確的響應(yīng)報文。這里所述可以支持的報文、不可支持的報文中的“報文”既可以指請求報文,又可以指響應(yīng)報文。也就是說,如果網(wǎng)絡(luò)設(shè)備不支持某個長度的請求報文,將返回攜帶有超大信息的錯誤響應(yīng)報文。如果網(wǎng)絡(luò)設(shè)備支持某個長度的請求報文,但該請求報文對應(yīng)響應(yīng)報文的長度超過了能夠支持的最大長度,也會返回攜帶有超大信息的錯誤響應(yīng)報文。
本步驟中,具體的請求報文和響應(yīng)報文與網(wǎng)絡(luò)設(shè)備交互時遵循的協(xié)議相關(guān)。比如,網(wǎng)絡(luò)管理服務(wù)器與網(wǎng)絡(luò)設(shè)備之間交互的協(xié)議為簡單網(wǎng)絡(luò)管理協(xié)議(SNMP),那么,這里的請求報文應(yīng)該為SNMP請求報文,響應(yīng)報文則為SNMP響應(yīng)報文。當(dāng)然,網(wǎng)絡(luò)管理服務(wù)器與網(wǎng)絡(luò)設(shè)備之間還可以按照其它協(xié)議進行交互,此處不再贅述。
根據(jù)網(wǎng)絡(luò)設(shè)備返回響應(yīng)報文是否攜帶有報文超大信息,本發(fā)明就可以測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。這樣,步驟301具體可以包括 a1、根據(jù)設(shè)置的報文測試長度構(gòu)造攜帶有至少一個對象標識的請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備。
實際應(yīng)用中,為了表示當(dāng)前需要采集哪些監(jiān)控對象,可以為每個監(jiān)控對象設(shè)置對應(yīng)的標識信息,步驟a1中所述的對象標識就可以作為一種標識信息。此后,網(wǎng)絡(luò)設(shè)備就可以從這個標識信息中獲知當(dāng)前需要采集哪些監(jiān)控對象的數(shù)據(jù)。
在步驟a1中,根據(jù)設(shè)置的報文測試長度構(gòu)造請求報文的方式可以包括以下兩種,一種是將設(shè)置的報文測試長度作為請求報文的長度,使構(gòu)造出的請求報文的長度與設(shè)置的報文測試長度相同。另一種是將設(shè)置的報文測試長度作為響應(yīng)報文的長度,使構(gòu)造出的請求報文所對應(yīng)的響應(yīng)報文與設(shè)置的報文測試長度相同。實際中,應(yīng)用本發(fā)明方案的用戶可以選擇其中一種方式來構(gòu)造請求報文即可。
對于將設(shè)置的報文測試長度作為請求報文的長度來說,其構(gòu)造請求報文的過程比較簡單,可以將對象標識的大小依次累加在報文中,直到報文的長度達到設(shè)置的報文測試長度。當(dāng)然,如果按照協(xié)議規(guī)定返回的響應(yīng)報文都比對應(yīng)的請求報文大,那么該方法測試出的網(wǎng)絡(luò)設(shè)備可支持的報文最大長度將不是很精確。此時,就可以采用如下的第二種方式。
對于將設(shè)置的報文測試長度作為響應(yīng)報文的長度來說,步驟a1可以具體為將設(shè)置的報文測試長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備。其中,響應(yīng)報文目標長度就是指請求報文所對應(yīng)的響應(yīng)報文要達到的長度。也就是說,可以將設(shè)置的報文測試長度作為響應(yīng)報文需要達到的長度來構(gòu)造相應(yīng)的請求報文,至于如何根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文可以與步驟302中描述的方法相同,稍后再一并進行詳細描述。
a2、根據(jù)網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新設(shè)置并返回步驟a1;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
實際應(yīng)用中,通常會采用某種方式來設(shè)置不同的報文測試長度,比如可以按照從小到大的順序依次設(shè)置,可以按照從大到小的順序依次設(shè)置,也可以按照二分法等非順序的方式來設(shè)置報文測試長度。但不管采用哪種方式,都可以在確定無需重新設(shè)置報文測試長度時,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,其具體情況可以參見下述的實施例,此處不再贅述。
通過上述步驟a1和步驟a2中設(shè)置的不同報文測試長度,就可以構(gòu)造不同大小的請求報文,從而測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
步驟302根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,并發(fā)送給網(wǎng)絡(luò)設(shè)備;請求報文中的一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng)。
如前所述,這里的對象標識是表示監(jiān)控對象的標識,表示當(dāng)前需要采集哪些監(jiān)控對象的數(shù)據(jù)。當(dāng)網(wǎng)絡(luò)設(shè)備接收到請求報文時,就可以根據(jù)從對象標識所對應(yīng)的監(jiān)控對象處獲取性能統(tǒng)計數(shù)據(jù)。
需要注意的是,不管步驟301采用哪種方式測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,如果響應(yīng)報文不但需要攜帶對象標識,還需要攜帶從對應(yīng)監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù),響應(yīng)報文比請求報文要大,那么,步驟302在構(gòu)造請求報文時需要考慮對應(yīng)的響應(yīng)報文不能超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
在這種情況下,步驟302具體可以為將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備。其中,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文的方法與上述描述步驟a1時所涉及的方法相同,可以包括 x0、確定一個當(dāng)前對象標識,將報文當(dāng)前長度的初始值設(shè)置為0。
x1、根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度。
實際應(yīng)用中,報文中攜帶的對象標識和性能統(tǒng)計數(shù)據(jù)需要采用某種方式進行編碼后再傳輸,比如采用抽象句法表示法(Asn.1)進行編碼。這樣,就可以根據(jù)編碼規(guī)則計算出占有報文的最大長度。比如“接口”這個對象標識占有2個字節(jié),接口處采集的性能統(tǒng)計數(shù)據(jù)最多占有4個字節(jié),那么,響應(yīng)報文中針對該監(jiān)控對象所占有報文的最大長度就應(yīng)該為6個字節(jié)。
x2、判斷響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并返回步驟x1;否則,構(gòu)造請求報文,將所有當(dāng)前需攜帶的對象標識攜帶于所述請求報文中。
利用上述步驟x0~步驟x2,可以找出當(dāng)前需攜帶的對象標識,并構(gòu)造出攜帶有這些對象標識的請求報文。
步驟303接收網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
由于本發(fā)明在數(shù)據(jù)采集前,通過交互測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并按照網(wǎng)絡(luò)設(shè)備可支持的最大報文長度來構(gòu)造請求報文,不但可以保證請求報文和響應(yīng)可以被網(wǎng)絡(luò)設(shè)備支持,而且可以發(fā)送盡可能多的對象標識,使單位時間內(nèi)發(fā)送請求報文的次數(shù)減少,從而減少與網(wǎng)絡(luò)設(shè)備交流的次數(shù),使網(wǎng)絡(luò)管理服務(wù)器將時間充分用于計算上,更好地實現(xiàn)對網(wǎng)絡(luò)設(shè)備性能的監(jiān)控。
為了更好的說明本發(fā)明方案,下面用一個較佳實施例進行詳細描述。
本實施例中,假設(shè)網(wǎng)絡(luò)管理服務(wù)器與網(wǎng)絡(luò)設(shè)備之間交互的協(xié)議為SNMP協(xié)議,網(wǎng)絡(luò)管理服務(wù)器發(fā)送的請求報文為SNMP請求報文,網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文為SNMP響應(yīng)報文。按照SNMP協(xié)議規(guī)定,網(wǎng)絡(luò)設(shè)備可以支持的最大報文長度不超過15K字節(jié)。另外,本實施例還規(guī)定網(wǎng)絡(luò)設(shè)備可以支持的最小報文長度不低于1K。當(dāng)然,實際應(yīng)用中,也可以按照用戶需求自行規(guī)定最小報文長度。
本實施例中,可以事先設(shè)置報文長度所有可以選擇的取值,按照取值的大小進行排列并記錄對象的位置序號,將最小取值對象的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號,開始序號在結(jié)束序號之前。
表一顯示了本實施例中報文長度所有可以選擇的取值以及對應(yīng)的位置序號 表一 其中,假設(shè)開始序號的初始值為“0”,結(jié)束序號的初始值為“8”。本實施例中,還可以假設(shè)將開始序號和結(jié)束序號中間的一個序號作為當(dāng)前測試序號,即當(dāng)前測試序號=(開始序號+結(jié)束序號+1)/2。按照此方法,就需要將序號“4”作為當(dāng)前測試序號,其對應(yīng)的取值4096則為報文測試長度。
另外,實際應(yīng)用中,可以利用數(shù)組或二叉樹等形式來保存表一的內(nèi)容,具體如何實現(xiàn)可以由應(yīng)用本實施例方案的用戶自行確定,此處不再贅述。
圖4是本實施例的流程圖。如圖4所示,本實施例可以包括 步驟401根據(jù)設(shè)置的報文測試長度構(gòu)造攜帶有至少一個對象標識的SNMP請求報文,并將構(gòu)造出的SNMP請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備。
本實施例中,由于初始的開始序號為“0”,初始的結(jié)束序號為“8”,初始的當(dāng)前測試序號為“4”,初始的報文測試長度為4096字節(jié),所以,在首次執(zhí)行步驟301時,可以將4096字節(jié)作為SNMP響應(yīng)報文的長度,使構(gòu)造出的SNMP請求報文所對應(yīng)的SNMP響應(yīng)報文為4096字節(jié)。具體實施方法是先將設(shè)置的報文測試長度作為響應(yīng)報文目標長度,再執(zhí)行步驟x0~x2。
當(dāng)然,實際應(yīng)用中,也可以直接按照4096字節(jié)來構(gòu)造SNMP請求報文,即構(gòu)造一個長度為4096的SNMP請求報文。
但不管采用上述哪種方式,步驟401都可以按照設(shè)置的報文測試長度構(gòu)造出一個SNMP請求報文,并將構(gòu)造出的SNMP請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備。
步驟402~步驟404判斷網(wǎng)絡(luò)設(shè)備返回的SNMP響應(yīng)報文是否攜帶有報文超大信息,如果有,則將當(dāng)前測試序號的前一序號作為結(jié)束序號;否則,將當(dāng)前測試序號的后一序號作為開始序號。
本步驟可以根據(jù)返回的響應(yīng)報文重新調(diào)整開始序號和結(jié)束序號,即重新調(diào)整報文測試長度可以選擇的范圍,以盡快確定網(wǎng)絡(luò)設(shè)置可支持的最大報文長度。也就是說,如果按照當(dāng)前測試序號對應(yīng)的報文測試長度來構(gòu)造SNMP請求報文,并接收到攜帶有報文超大信息的SNMP響應(yīng)報文,則說明該報文測試長度太大,應(yīng)該重新選擇一個更小的報文測試長度,此時,就可以將報文測試長度的取值范圍調(diào)整到從開始序號到當(dāng)前測試序號的前一序號所對應(yīng)的報文測試長度的取值范圍。比如開始序號為“0”,結(jié)束序號為“8”,當(dāng)前測試序號為“4”,按照序號“4”對應(yīng)的報文測試長度4096字節(jié)來構(gòu)造SNMP請求報文,并接收到攜帶有報文超大信息的SNMP響應(yīng)報文。在這種情況下,應(yīng)該將報文測試長度的取值范圍調(diào)整到從序號“0”到序號“3”所對應(yīng)的取值范圍。
相應(yīng)地,如果按照當(dāng)前測試序號對應(yīng)的報文測試長度來構(gòu)造SNMP請求報文,并且未接收到攜帶有報文超大信息的SNMP響應(yīng)報文,則說明該報文測試長度太小,應(yīng)該重新選擇一個更大的報文測試長度,此時,就可以將報文測試長度的取值范圍調(diào)整到從當(dāng)前測試序號的后一序號到結(jié)束序號所對應(yīng)的取值范圍。比如開始序號為“0”,結(jié)束序號為“8”,當(dāng)前測試序號為“4”,按照序號“4”對應(yīng)的報文測試長度4096字節(jié)來構(gòu)造SNMP請求報文,并且未接收到攜帶有報文超大信息的SNMP響應(yīng)報文。在這種情況下,應(yīng)該將報文測試長度的取值范圍調(diào)整到從序號“5”到序號“8”所對應(yīng)的取值范圍。
由于本實施例利用步驟403和步驟404這種類似于二分法的方式來調(diào)整報文測試長度的取值范圍,假設(shè)報文測試長度可以選擇的取值總共有n個,最多經(jīng)過ln(n)+1次選擇,就可以確定出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。當(dāng)然,實際應(yīng)用中,也可以采用從小到大的順序或者從大到小的順序進行調(diào)整,其方法比較簡單,此處不再贅述。
步驟405~步驟407判斷開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度,然后執(zhí)行步驟408;否則,根據(jù)開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度,并返回步驟401。
本實施例中,由于在確定測試報文長度太大時會減小結(jié)束序號,在確定測試報文長度太小時會增大開始序號,開始序號和結(jié)束序號將逐漸向中間靠攏。只有開始序號位于結(jié)束序號之后,才可以確定掃描完了所有的取值,才可以確定網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。需要注意的是,本實施例中,確定出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度正是結(jié)束序號所對應(yīng)的取值,也正在最近一次未攜帶報文超大信息的SNMP響應(yīng)報文所對應(yīng)的報文測試長度。比如在第一次循環(huán)中,開始序號為“0”,結(jié)束序號為“8”,當(dāng)前測試序號為“4”,并假設(shè)接收到攜帶有報文超大信息的SNMP響應(yīng)報文,此時,應(yīng)該將結(jié)束序號調(diào)整為“3”,將當(dāng)前測試序號調(diào)整為“2”;在第二次循環(huán)中,開始序號為“0”,結(jié)束序號為“3”,當(dāng)前測試序號為“2”,并假設(shè)沒有接收到報文超大信息的SNMP響應(yīng)報文,此時,應(yīng)該將開始序號調(diào)整為“3”,當(dāng)前測試序號調(diào)整為“3”;在第三次循環(huán)中,開始序號為“3”,結(jié)束序號為“3”,當(dāng)前測試序號也為“3”,并假設(shè)接收到報文超大信息的SNMP響應(yīng)報文,并應(yīng)該將結(jié)束序號調(diào)整為“2”。此時,開始序號已經(jīng)位于結(jié)束序號之后,應(yīng)該將結(jié)束序號“2”對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,而結(jié)束序號“2”所對應(yīng)的取值也正是最近一次未攜帶報文超大信息的SNMP響應(yīng)報文所對應(yīng)的報文測試長度。
在經(jīng)過上述步驟401~步驟407確定出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度之后,就可以利用以下的步驟408和步驟409構(gòu)造SNMP請求報文了。
步驟408確定一個當(dāng)前對象標識,并設(shè)置報文當(dāng)前長度的初始值為0。
步驟409根據(jù)Asn.1編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度。
步驟410判斷網(wǎng)絡(luò)設(shè)備可支持的最大報文長度是否大于報文當(dāng)前長度,如果大于,則執(zhí)行步驟411;否則,執(zhí)行步驟412。
步驟411將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并返回步驟409。
步驟412構(gòu)造SNMP請求報文,將所有當(dāng)前需攜帶的對象標識攜帶于該SNMP請求報文中。
上述步驟408~步驟412相當(dāng)于采用上述步驟x0~步驟x2的方式,將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為SNMP響應(yīng)報文的目標長度來構(gòu)造對應(yīng)的SNMP請求報文。
實際應(yīng)用中,網(wǎng)絡(luò)管理服務(wù)器需要監(jiān)控的監(jiān)控對象有很多,對應(yīng)的對象標識也很多,在第一次循環(huán)時,可以將第一個對象標識作為當(dāng)前對象標識,將報文當(dāng)前長度的初始值設(shè)置為0;在第二個循環(huán)時,可以將第二個對象標識作為當(dāng)前對象標識,并在報文當(dāng)前長度的基礎(chǔ)上進行累加,并以此類推。比如在第一次循環(huán)時,將對象標識“vb1”作為當(dāng)前對象標識,將報文當(dāng)前長度的初始值為0,經(jīng)過計算后得到“vb1”這個對象標識占有2個字節(jié),從“vb1”對應(yīng)監(jiān)控對象處采集的數(shù)據(jù)最多占有4個字節(jié),那么,當(dāng)前報文長度就應(yīng)該為2+4+0=6個字節(jié)。如果當(dāng)前報文長度沒有超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,則將“vb1”作為當(dāng)前需攜帶的對象標識。在第二次循環(huán)時,將下一個對象標識“vb2”作為當(dāng)前對象標識,經(jīng)過計算后得到“vb2”這個對象標識占有4個字節(jié),從“vb2”對應(yīng)監(jiān)控對象處采集的數(shù)據(jù)最多占有8個字節(jié),那么,當(dāng)前報文長度就應(yīng)該為6+4+8=18個字節(jié)。如果當(dāng)前報文長度沒有超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,則將“vb2”作為當(dāng)前需攜帶的對象標識。按照此方法依此類推,可以找出所有當(dāng)前需攜帶的對象標識。
這里需要注意的是,由于網(wǎng)絡(luò)設(shè)備接收的SNMP請求報文和SNMP響應(yīng)報文都不能超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,所以,在確定當(dāng)前要發(fā)送的一個SNMP請求報文中需要攜帶多少對象標識時,不但需要計算每一個對象標識占有報文的長度,還需要計算每一個對象標識所對應(yīng)監(jiān)控對象處采集的性能統(tǒng)計數(shù)據(jù)占有報文的最大長度。
步驟413將構(gòu)造出的SNMP請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備,并接收網(wǎng)絡(luò)設(shè)備返回的SNMP響應(yīng)報文,所述SNMP響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
上述步驟412和步驟413是網(wǎng)絡(luò)管理服務(wù)器和網(wǎng)絡(luò)設(shè)備之間的一次交互,SNMP請求報文和SNMP響應(yīng)報文都可以保證不超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。其中,SNMP請求報文可以攜帶盡可能多的對象標識,SNMP響應(yīng)報文就會返回盡可能多的監(jiān)控對象處采集的性能統(tǒng)計數(shù)據(jù)。這樣,網(wǎng)絡(luò)管理服務(wù)器和網(wǎng)絡(luò)設(shè)備之間的通信可以達到飽和,從而減少交互次數(shù),將時間充分用于后續(xù)的計算。
仍然以單位時間T表示為T=ΔT×n/m+Tc為例進行說明,其中,單位時間T與采集周期相關(guān),Tc為計算時間,ΔT為與網(wǎng)絡(luò)管理服務(wù)器每一次交互需等待的時間,n為監(jiān)控對象的總數(shù)量。假設(shè)現(xiàn)有的同步批量發(fā)送請求方式在請求報文中可以攜帶m1個對象標識,而本發(fā)明實施例在達到飽和通信的條件下可以攜帶m2個對象標識,m2大于m1。那么,本實施例在單位時間內(nèi)需花費的等待時間為ΔT×n/m2,現(xiàn)有的同步批量發(fā)送請求方式在單位時間內(nèi)需花費的等待時間應(yīng)該為ΔT×n/m1,本實施例在單位時間內(nèi)需花費的等待時間比現(xiàn)有的同步批量發(fā)送請求方式在單位時間內(nèi)需花費的等待時間少,從而可以更加充分地進行計算。
當(dāng)然,假設(shè)n大于m2,網(wǎng)絡(luò)管理服務(wù)器和網(wǎng)絡(luò)設(shè)備之間的一次交互可能無法完成單位時間內(nèi)需要進行的數(shù)據(jù)采集。這種情況下,還可以重復(fù)執(zhí)行步驟408~步驟413。也就是說,如果對象標識包括a1~a15,在第一次循環(huán)中確定出需要攜帶a1~a5這幾個對象標識,那么,在第二次循環(huán)中就可以將a6作為當(dāng)前對象標識,將當(dāng)前報文長度的初始值設(shè)置為0,并重新執(zhí)行步驟409~步驟413,以此類推,直到將所有的對象標識都通過SNMP請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備才完成一個單位時間內(nèi)所有的數(shù)據(jù)采集。
另外,實際應(yīng)用中,網(wǎng)絡(luò)設(shè)備可支持的最大報文長度還可能會被更改。如果網(wǎng)絡(luò)設(shè)備可支持的最大報文長度被減小,而網(wǎng)絡(luò)管理服務(wù)器仍然按照事先的值來構(gòu)造SNMP請求報文,就有可能會接收到返回的攜帶有報文超大信息的SNMP響應(yīng)報文。在這種情況,可以重新執(zhí)行步驟401~步驟407以確定出新的網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。如果網(wǎng)絡(luò)設(shè)備可支持的最大報文長度被增加,就可以向網(wǎng)絡(luò)管理服務(wù)器發(fā)送某個信號以觸發(fā)步驟401~步驟407的執(zhí)行,或者網(wǎng)絡(luò)管理服務(wù)器也可以定時自動地執(zhí)行步驟401~步驟407來更新網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。不管采用哪種方式,在確定出新的網(wǎng)絡(luò)設(shè)置可支持的最大報文長度之后,都可以重新執(zhí)行步驟408~步驟413進行性能統(tǒng)計數(shù)據(jù)的采集。
針對上述方法,本發(fā)明還提出一種網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的服務(wù)器,即網(wǎng)絡(luò)管理服務(wù)器。網(wǎng)絡(luò)管理服務(wù)器的內(nèi)部結(jié)構(gòu)圖可以如圖5所示,包括 對象標識存儲單元501,用于保存所有的對象標識。
報文最大長度存儲單元502,用于保存網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
測試控制單元503,用于控制封裝單元505構(gòu)造不同大小的請求報文,根據(jù)從收發(fā)單元506接收到的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度保存在報文最大長度存儲單元502中,并通知采集控制單元504開始采集。
采集控制單元504,用于接收測試控制單元503開始采集的通知,從報文最大長度存儲單元502中獲得網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,向封裝單元505發(fā)送攜帶有網(wǎng)絡(luò)設(shè)備可支持的最大報文長度的控制信號,指示封裝單元505構(gòu)造請求報文。
封裝單元505,用于在測試控制單元503的控制下構(gòu)造請求報文,將構(gòu)造的請求報文傳輸給收發(fā)單元506;在采集控制單元504的控制下,根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng);將構(gòu)造出的請求報文傳輸給收發(fā)單元506。
收發(fā)單元506,用于將封裝單元505構(gòu)造的請求報文發(fā)送出去;接收測試時返回的響應(yīng)報文,并傳輸給測試控制單元503;接收采集時返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
也就是說,測試控制單元503首先控制封裝單元505構(gòu)造不同大小的請求報文,根據(jù)從收發(fā)單元506接收到的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度保存在報文最大長度存儲單元502中,并通知采集控制單元504開始采集。采集控制單元504接收測試控制單元503開始采集的通知時,從報文最大長度存儲單元502中獲得網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,向封裝單元505發(fā)送攜帶有網(wǎng)絡(luò)設(shè)備可支持的最大報文長度的控制信號,指示封裝單元505構(gòu)造請求報文。封裝單元505根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,將構(gòu)造出的請求報文傳輸給收發(fā)單元506。收發(fā)單元506將封裝單元505構(gòu)造的請求報文發(fā)送出去,并接收返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
實際應(yīng)用,測試控制單元503的內(nèi)部結(jié)構(gòu)示意圖可以如圖6所示,包括 設(shè)置單元5031,用于設(shè)置報文測試長度,將攜帶有報文測試長度的控制信號發(fā)送給封裝單元505,指示封裝單元505按照報文測試長度構(gòu)造請求報文。
測試判別單元5032,用于根據(jù)從收發(fā)單元506接收到的響應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新啟動設(shè)置單元5031;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給報文最大長度存儲單元502進行保存。
進一步地,如果按照上述方法實施例中的方法來測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,設(shè)置單元5031和測試判別單元5032的內(nèi)部結(jié)構(gòu)還可以如圖7所示。具體地,設(shè)置單元5031可以包括 報文長度和序號存儲單元5031a,用于存儲報文長度所有可選擇的取值以及對應(yīng)的位置序號,將最小取值對應(yīng)的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號,所述開始序號在結(jié)束序號之前。
設(shè)置控制單元5031b,用于根據(jù)報文長度和序號存儲單元5031a中的開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度;將攜帶有報文測試長度的控制信號發(fā)送給封裝單元505,指示封裝單元505按照報文測試長度構(gòu)造請求報文。
測試判別單元5032可以包括 第一判別子單元5032a,用于根據(jù)從收發(fā)單元506接收到的響應(yīng)報文判斷是否攜帶有報文超大信息,如果有,則將報文長度和序號存儲單元5031中的當(dāng)前測試序號的前一序號作為結(jié)束序號,并觸發(fā)第二判別子單元5032b;否則,將當(dāng)前測試序號的后一序號作為開始序號,并觸發(fā)第二判別子單元5032b。
第二判別子單元5032b,用于判斷報文長度和序號存儲單元5031中的開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給報文最大長度存儲單元502進行保存,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度;否則,啟動設(shè)置控制單元5031b執(zhí)行。
不管測試控制單元503采用哪種方法來測試,其內(nèi)部的結(jié)構(gòu)是怎樣的,如果封裝單元502將測試控制單元503發(fā)送的控制信號中攜帶的報文測試長度作為響應(yīng)報文目標長度,將采集控制單元504發(fā)送的控制信號中攜帶的網(wǎng)絡(luò)設(shè)備可支持的最大報文長度也作為響應(yīng)報文目標長度,那么,封裝單元502就可以按照同樣的方法來構(gòu)造請求報文。
在這種情況下,圖8顯示了封裝單元502的內(nèi)部結(jié)構(gòu)示意圖。如圖8所示,封裝單元502可以包括 封裝目標長度存儲單元5021,用于在接收到測試控制單元503發(fā)送的控制信號時,將控制信號中的報文測試長度作為響應(yīng)報文目標長度進行保存;在接收到采集控制單元504發(fā)送的控制信號時,將控制信號中的網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度進行保存。
計算單元5022,用于在接收到控制信號時,從對象標識存儲單元501中獲取當(dāng)前對象標識,根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度,并傳輸給長度判別單元5023,所述報文當(dāng)前長度初始值為0。
長度判別單元5023,用于判斷封裝目標長度存儲單元5021中的響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并重新啟動計算單元5022;否則,構(gòu)造攜帶有所有當(dāng)前需攜帶的對象標識的請求報文,并傳輸給發(fā)送單元506。
應(yīng)用本發(fā)明方案,由于在數(shù)據(jù)采集之前,先測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文可到達的最大長度來構(gòu)造請求報文,既可以保證請求報文和響應(yīng)報文不超過網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,又可以在請求報文攜帶盡可能多的對象標識,在響應(yīng)報文中返回盡可能多的性能統(tǒng)計數(shù)據(jù)。這樣,就可以在單位時間內(nèi)減少與網(wǎng)絡(luò)設(shè)備之間交互的次數(shù),減少等待時間,將時間充分用于后續(xù)的計算,從而更好地對網(wǎng)絡(luò)設(shè)備中監(jiān)控對象進行監(jiān)控,提高網(wǎng)絡(luò)管理服務(wù)器的性能。
綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法,其特征在于,該方法包括以下步驟
a、利用不同大小的請求報文依次與網(wǎng)絡(luò)設(shè)備進行交互,并根據(jù)返回的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度;
b、根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,并發(fā)送給網(wǎng)絡(luò)設(shè)備;一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng);
c、接收網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟a包括
a1、根據(jù)設(shè)置的報文測試長度構(gòu)造攜帶有至少一個對象標識的請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備;
a2、根據(jù)網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新設(shè)置并返回步驟a1;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,將事先設(shè)置的報文長度的所有可選取值按照大小進行排列并記錄對應(yīng)的位置序號,將最小取值對應(yīng)的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號;所述開始序號在結(jié)束序號之前;
所述設(shè)置報文長度測試值的方法為根據(jù)開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟a2包括
a21、判斷網(wǎng)絡(luò)設(shè)備返回的響應(yīng)報文是否攜帶有報文超大信息,如果有,則將當(dāng)前測試序號的前一序號作為結(jié)束序號;否則,將當(dāng)前測試序號的后一序號作為開始序號;
a22、判斷開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度,然后執(zhí)行步驟b;否則,根據(jù)開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度,并返回步驟a1。
5.根據(jù)權(quán)利要求2至4任一項所述的方法,其特征在于,所述步驟a1包括將設(shè)置的報文測試長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備;
所述步驟b包括將所述網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度,根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文,并將構(gòu)造出的請求報文發(fā)送給網(wǎng)絡(luò)設(shè)備;
所述根據(jù)響應(yīng)報文目標長度構(gòu)造請求報文的方法為
x0、確定一個當(dāng)前對象標識,并將報文當(dāng)前長度的初始值設(shè)置為0;
x1、根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度;
x2、判斷響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并返回步驟x1;否則,構(gòu)造請求報文,將所有當(dāng)前需攜帶的對象標識攜帶于所述請求報文中。
6.一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的服務(wù)器,其特征在于,該服務(wù)器包括
對象標識存儲單元,用于保存所有的對象標識;
報文最大長度存儲單元,用于保存網(wǎng)絡(luò)設(shè)備可支持的最大報文長度;
測試控制單元,用于控制封裝單元構(gòu)造不同大小的請求報文,根據(jù)從收發(fā)單元接收到的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,將網(wǎng)絡(luò)設(shè)備可支持的最大報文長度保存在報文最大長度存儲單元中,并通知采集控制單元開始采集;
采集控制單元,用于接收測試控制單元開始采集的通知,從報文最大長度存儲單元中獲得網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,向封裝單元發(fā)送攜帶有網(wǎng)絡(luò)設(shè)備可支持的最大報文長度的控制信號,指示封裝單元構(gòu)造請求報文;
封裝單元,用于在測試控制單元的控制下,根據(jù)對象標識存儲單元保存的對象標識構(gòu)造請求報文,將構(gòu)造的請求報文傳輸給收發(fā)單元;在采集控制單元的控制下,根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造攜帶有至少一個對象標識的請求報文,一個對象標識與當(dāng)前需采集的一個監(jiān)控對象對應(yīng);將構(gòu)造出的請求報文傳輸給收發(fā)單元;
收發(fā)單元,用于將封裝單元構(gòu)造的請求報文發(fā)送出去;接收測試時返回的響應(yīng)報文,并傳輸給測試控制單元;接收采集時返回的響應(yīng)報文,所述響應(yīng)報文攜帶有從當(dāng)前需采集的所有監(jiān)控對象處采集到的性能統(tǒng)計數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述測試控制單元包括
設(shè)置單元,用于設(shè)置報文測試長度,將攜帶有報文測試長度的控制信號發(fā)送給封裝單元,指示封裝單元按照報文測試長度構(gòu)造請求報文;
測試判別單元,用于根據(jù)從收發(fā)單元接收到的響應(yīng)報文判斷是否需要重新設(shè)置報文測試長度,如果需要,則重新啟動設(shè)置單元;否則,將最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給報文最大長度存儲單元進行保存。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述設(shè)置單元包括
報文長度和序號存儲單元,用于存儲報文長度所有可選擇的取值以及對應(yīng)的位置序號,將最小取值對應(yīng)的位置序號作為開始序號,將最大取值對應(yīng)的位置序號作為結(jié)束序號,所述開始序號在結(jié)束序號之前;
設(shè)置控制單元,用于根據(jù)報文長度和序號存儲單元中的開始序號和結(jié)束序號確定一個當(dāng)前測試序號,將當(dāng)前測試序號對應(yīng)的取值作為報文測試長度;將攜帶有報文測試長度的控制信號發(fā)送給封裝單元,指示封裝單元按照報文測試長度構(gòu)造請求報文。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述測試判別單元包括
第一判別子單元,用于根據(jù)從收發(fā)單元接收到的響應(yīng)報文判斷是否攜帶有報文超大信息,如果有,則將報文長度和序號存儲單元中的當(dāng)前測試序號的前一序號作為結(jié)束序號,并觸發(fā)第二判別子單元;否則,將當(dāng)前測試序號的后一序號作為開始序號,并觸發(fā)第二判別子單元;
第二判別子單元,用于判斷報文長度和序號存儲單元中的開始序號是否位于結(jié)束序號之后,如果是,則將結(jié)束序號對應(yīng)的取值作為網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,并輸出給最大長度存儲單元進行保存,所述結(jié)束序號對應(yīng)的取值為最近一次未攜帶報文超大信息的響應(yīng)報文所對應(yīng)的報文測試長度;否則,啟動設(shè)置控制單元執(zhí)行。
10.根據(jù)權(quán)利要求7至9任一項所述設(shè)備,其特征在于,所述封裝單元包括
封裝目標長度存儲單元,用于在接收到測試控制單元發(fā)送的控制信號時,將控制信號中的報文測試長度作為響應(yīng)報文目標長度進行保存;在接收到采集控制單元發(fā)送的控制信號時,將控制信號中的網(wǎng)絡(luò)設(shè)備可支持的最大報文長度作為響應(yīng)報文目標長度進行保存;
計算單元,用于在接收到控制信號時,從對象標識存儲單元中獲取當(dāng)前對象標識,根據(jù)事先確定的編碼規(guī)則計算當(dāng)前對象標識和對應(yīng)監(jiān)控對象處需采集的性能統(tǒng)計數(shù)據(jù)總共占有報文的最大長度,將計算出的報文長度與報文當(dāng)前長度之和作為報文當(dāng)前長度,并傳輸給長度判別單元,所述報文當(dāng)前長度初始值為0;
長度判別單元,用于判斷封裝目標長度存儲單元中的響應(yīng)報文目標長度是否大于報文當(dāng)前長度,如果大于,則將當(dāng)前對象標識作為當(dāng)前需攜帶的對象標識,將下一個對象標識作為當(dāng)前對象標識,并重新啟動計算單元;否則,構(gòu)造攜帶有所有當(dāng)前需攜帶的對象標識的請求報文,并傳輸給發(fā)送單元。
全文摘要
本發(fā)明提供一種對網(wǎng)絡(luò)設(shè)備的性能統(tǒng)計數(shù)據(jù)進行采集的方法和設(shè)備,利用不同大小的請求報文依次與網(wǎng)絡(luò)設(shè)備進行交互,根據(jù)返回的響應(yīng)報文測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度;根據(jù)網(wǎng)絡(luò)設(shè)備可支持的最大報文長度構(gòu)造請求報文并發(fā)送給網(wǎng)絡(luò)設(shè)備;接收網(wǎng)絡(luò)設(shè)備返回的攜帶有性能統(tǒng)計數(shù)據(jù)的響應(yīng)報文。應(yīng)用本發(fā)明方案,由于在數(shù)據(jù)采集之前,先測試出網(wǎng)絡(luò)設(shè)備可支持的最大報文長度,既可以保證請求報文和響應(yīng)報文不超過可支持的最大報文長度,又可以在請求報文攜帶盡可能多的對象標識,在響應(yīng)報文中返回盡可能多的性能統(tǒng)計數(shù)據(jù)。因此,可以在單位時間內(nèi)減少與網(wǎng)絡(luò)設(shè)備之間交互的次數(shù),將時間充分用于計算,從而更好地對監(jiān)控對象進行監(jiān)控。
文檔編號H04L12/26GK101227348SQ20081005752
公開日2008年7月23日 申請日期2008年2月2日 優(yōu)先權(quán)日2008年2月2日
發(fā)明者曾勇剛 申請人:杭州華三通信技術(shù)有限公司