專利名稱:電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電力通信狀態(tài)監(jiān)視方法,尤其涉及一種電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法。
背景技術(shù):
以太網(wǎng)在電力遠(yuǎn)動網(wǎng)絡(luò)中應(yīng)用廣泛,變電站遠(yuǎn)動機作為電力遠(yuǎn)動網(wǎng)絡(luò)中的關(guān)鍵節(jié)點,負(fù)責(zé)向電力調(diào)度傳遞重要信息,所以確保其連通性異常重要。目前現(xiàn)場使用兩個獨立網(wǎng)絡(luò)和兩臺遠(yuǎn)動機互相備用以便在網(wǎng)絡(luò)故障或設(shè)備故障時通信不會中斷。網(wǎng)絡(luò)協(xié)議中規(guī)定了一種報文格式ICMP,該報文用于測試網(wǎng)絡(luò)中某個IP地址的通信狀態(tài),該報文可通過編程發(fā)出或使用命令PING發(fā)出。目前發(fā)現(xiàn)電力遠(yuǎn)動網(wǎng)絡(luò)故障和設(shè)備故障的方法是定時使用PING 命令進(jìn)行測試,然而使用這種方法存在著問題1、一次測試只代表測試時刻的通信狀態(tài),不能體現(xiàn)一段時間內(nèi)節(jié)點的通信狀態(tài)變化趨勢和通信參數(shù);2、網(wǎng)絡(luò)中存在能夠干擾測試結(jié)果的突發(fā)狀態(tài),現(xiàn)有技術(shù)不能判別這類干擾,導(dǎo)致誤判為節(jié)點狀態(tài)多次反復(fù)變化;3、電力遠(yuǎn)動網(wǎng)絡(luò)節(jié)點數(shù)量眾多,例如山東省區(qū)域電網(wǎng)就擁有數(shù)百座變電站,電力遠(yuǎn)動網(wǎng)絡(luò)本身帶寬較小(64Kbps至2Mbps),且存在在短時間內(nèi)上送大量事故信號的可能, 不能長時間大量占用其帶寬,現(xiàn)有技術(shù)只能依靠加大固有檢測頻率提高測試精度,不能動態(tài)改變測試頻率,不適合長時間監(jiān)視遠(yuǎn)動網(wǎng)絡(luò)。
發(fā)明內(nèi)容
本發(fā)明的目的就是為解決上述問題,提供一種電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,能夠提高網(wǎng)絡(luò)通信狀態(tài)判斷精度,并能減少系統(tǒng)測試資源消耗。為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,設(shè)置監(jiān)視參數(shù);建立監(jiān)視模型,建立數(shù)據(jù)隊列,啟動計時器;根據(jù)監(jiān)視參數(shù)判斷計時器是否應(yīng)觸發(fā)測試;建立不影響主程序的獨立子線程用于測試;發(fā)送測試包,接收結(jié)果并在隊列中存儲測試結(jié)果;判斷結(jié)果是否過多并丟棄多余的測試結(jié)果;根據(jù)最后一個結(jié)果判斷連接狀態(tài)并修改連接狀態(tài)和監(jiān)視參數(shù);計算相關(guān)測試參數(shù);判斷隊列中的結(jié)果是否足夠,否則結(jié)束本次測試,是則修改當(dāng)前網(wǎng)絡(luò)狀態(tài)和監(jiān)視參數(shù),并給出本次測試的結(jié)果報告。本發(fā)明的具體步驟為第一步設(shè)置監(jiān)視參數(shù);第二步建立監(jiān)視模型;為每一個被監(jiān)視的節(jié)點的每一個IP地址建立獨立數(shù)據(jù)模型,數(shù)據(jù)模型中包含測試間隔t,連接狀態(tài)X,網(wǎng)絡(luò)狀態(tài)y,一個長度為k的數(shù)據(jù)隊列,一個測試包發(fā)送程序P,該程序發(fā)送一個ICMP測試包并接收返回數(shù)據(jù)包;其中,t的初始值為Tl,X的初始值為穩(wěn)定狀態(tài),網(wǎng)絡(luò)狀態(tài)Y的初始值為良好,k的初始值為Kl ;設(shè)置并啟動一個系統(tǒng)計時器,計時器當(dāng)前的讀數(shù)為T',單位為毫秒,計時器每隔Tx毫秒觸發(fā)一次,每當(dāng)計時器觸發(fā)時進(jìn)入第三步;第三步計時器觸發(fā)判斷計時器每隔Tx毫秒觸發(fā)一次,若此時計時器讀數(shù)T'滿足下面3個條件的任何一條或多條1)計算求得m = (T' mod(N*Tl))/Tl時,若第m個地址數(shù)據(jù)模型的t = Tl ;2)計算求得m = (T' mod(N*T2))/T2時,若第m個地址數(shù)據(jù)模型的t = T2 ;3)計算求得m = (T ‘ mod (N*T3)) /T3時,若第m個地址數(shù)據(jù)模型的t = T3 ;則進(jìn)入第四步,否則重新回到第三步等待計時器觸發(fā),Mod為取余數(shù)運算;第四步打開獨立子線程;打開一個獨立子線程,它的運行時間不影響主程序的運行和系統(tǒng)計時器的工作, 子線程進(jìn)入第五步,父線程回到第三步繼續(xù)等待計時器觸發(fā);第五步測試包發(fā)送接收過程;第六步測試結(jié)果存儲過程;當(dāng)?shù)趍個地址的程序P收到并返回測試結(jié)果后,將測試結(jié)果送入該節(jié)點的數(shù)據(jù)隊列,進(jìn)入第七步;第七步隊列數(shù)據(jù)量判斷1 ;若隊列長度1 > k,進(jìn)入第八步;若隊列長度1 < k或1 = k,進(jìn)入第九步;第八步丟棄數(shù)據(jù)如果數(shù)據(jù)隊列當(dāng)前長度1 > k,則反復(fù)丟棄隊列中第一個數(shù)據(jù),直到隊列長度1 = k,進(jìn)入第九步;第九步連接狀態(tài)判斷若當(dāng)前連接狀態(tài)為不穩(wěn)定狀態(tài),進(jìn)入第十一步;或者當(dāng)前連接狀態(tài)為穩(wěn)定狀態(tài),數(shù)據(jù)隊列中最后一個返回結(jié)果的測試狀態(tài)是與當(dāng)前網(wǎng)絡(luò)狀態(tài)y相同,進(jìn)入第十一步;否則進(jìn)入第十步;第十步設(shè)置連接狀態(tài)為不穩(wěn)定將隊列長度k改為K2,清空當(dāng)前的數(shù)據(jù)隊列,將t設(shè)為T2,關(guān)閉子線程,等待計數(shù)器再次觸發(fā);第十一步計算狀態(tài)參數(shù)第十二步隊列數(shù)據(jù)量判斷2若隊列長度1 = k,進(jìn)入第十三步;若隊列長度1 < k,關(guān)閉子線程,等待計數(shù)器再次觸發(fā);第十三步計算測試成功率若成功率s = 100%或s = 0%,進(jìn)入第十四步;若成功率0 % < s < 100 %,進(jìn)入第十五步;第十四步設(shè)置連接狀態(tài)為穩(wěn)定將隊列長度k改為K1,將t設(shè)為Tl,連接狀態(tài)χ設(shè)為穩(wěn)定狀態(tài),進(jìn)入第十六步;
第十五步調(diào)整測試參數(shù)將t設(shè)為T3,k改為K2,連接狀態(tài)χ設(shè)為不穩(wěn)定狀態(tài),進(jìn)入第十六步;第十六步網(wǎng)絡(luò)狀態(tài)判斷若s = 100%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=良好;若s = 0%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=中斷;若0%< s < 100%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=異常;進(jìn)入第十七步;第十七步判斷測試結(jié)果若y'與y相同,則報告本次測試的結(jié)論為連接狀態(tài)不變,本次測試結(jié)束,關(guān)閉子線程;否則應(yīng)視為狀態(tài)改變,進(jìn)入第十八步;第十八步判斷節(jié)點狀態(tài)報告該地址連接狀態(tài)由y'變?yōu)閥,獲取當(dāng)前系統(tǒng)時間并記錄在文件中,令y = 1’ ;若該地址所屬節(jié)點的所有IP地址的狀態(tài)均相同,為良好/中斷/異常,則報告該節(jié)點的狀態(tài)為良好/中斷/異常;若至少有一個IP地址狀態(tài)為良好/異常,則報告該節(jié)點的狀態(tài)為通道良好/異常,設(shè)備故障;本次測試結(jié)束,關(guān)閉子線程。所述第一步中,監(jiān)視參數(shù)的設(shè)置過程為設(shè)置穩(wěn)定狀態(tài)測試間隔Tl,不穩(wěn)定狀態(tài)測試間隔T2,異常測試間隔T3,單位均為毫秒,且Tl > T3 > T2 ;設(shè)置穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K1,設(shè)置不穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K2,且K2 > Kl ;設(shè)置測試包大小D,最長等待時間Q, Q < T3 ;設(shè)置每一個目標(biāo)節(jié)點的名稱以及目標(biāo)節(jié)點的多個IP地址,并計算總的目標(biāo)地址數(shù) N,設(shè)置系統(tǒng)計時間隔Tx,單位為毫秒。所述第五步的具體過程為啟動第m個地址的測試包發(fā)送程序P,該程序?qū)⒋蜷_一個獨立線程,它的運行時間將不影響主程序的運行和系統(tǒng)計時器的工作;建立一個ICMP測試包向節(jié)點ip地址發(fā)送,并等待返回數(shù)據(jù),返回數(shù)據(jù)包括測試狀態(tài)即良好或中斷以及測試用時,如果程序在最長等待時間Q內(nèi)沒有收到返回數(shù)據(jù),則設(shè)置返回數(shù)據(jù)為測試失敗,用時為Q ;進(jìn)入第六步。所述第十一步的過程為統(tǒng)計數(shù)據(jù)隊列中返回數(shù)據(jù)測試狀態(tài)為成功的數(shù)據(jù)數(shù)C, 計算測試成功率s = c/l*100%,計算該地址的平均連接時間tavg = 1/1求和(tl. · · tl), 最長連接時間tmax = 1/1求最大(tl. . . tl),最短連接時間tmin = 1/1求最小(tl. . . tl), 丟失率lost = 100% -s,進(jìn)入第十一步;其中,1為當(dāng)前數(shù)據(jù)隊列長度,tl. . . tl為1個測試結(jié)果的測試時間。所述第九步中,如果穩(wěn)定狀態(tài)的地址收到一個與當(dāng)前狀態(tài)不同的測試結(jié)果,將該地址標(biāo)為不穩(wěn)定狀態(tài),清空結(jié)果隊列,每隔NXT2時間測試一次,連續(xù)測試K2次,在 NXT2XK2時間后可判定是否應(yīng)恢復(fù)穩(wěn)定狀態(tài)或確認(rèn)通信狀態(tài)改變,并報告結(jié)果,濾除干擾;本過程何時進(jìn)行,由計時器根據(jù)需要計算確定使用本發(fā)明監(jiān)視網(wǎng)絡(luò)通道狀態(tài)時,對于處于穩(wěn)定通信狀態(tài)的網(wǎng)絡(luò)地址,每隔NXTl時間測試一次并報告結(jié)果,測試樣本空間為NXT1XK1 ;對于長時間處于異常、不穩(wěn)定狀態(tài)的地址,使用NXT3間隔進(jìn)行測試和報告;程序最多同時開啟1+Q/T1+Q/T2+Q/T3個線程同時工作,一個線程進(jìn)行工作時,計時器仍可以根據(jù)判斷啟動其他線程同時工作。本發(fā)明的有益效果是1、使用抽樣測試法,測試結(jié)果作為樣本存儲于數(shù)據(jù)隊列中,使測試報告代表一段時間區(qū)間內(nèi)的通信狀態(tài);2、差異化抽樣策略,對于不同的通信狀態(tài)動態(tài)改變測試頻率和樣本數(shù)量,以較低的測試頻率測試處于穩(wěn)定狀態(tài)的地址,使相同的資源開銷下,更準(zhǔn)確的測試處于不穩(wěn)定狀態(tài)的網(wǎng)絡(luò)節(jié)點;3、在通信狀態(tài)發(fā)生突變時,立刻清空原有數(shù)據(jù)結(jié)果隊列,提高測試頻率,快速排除干擾或確認(rèn)通信狀態(tài)發(fā)生變化;4、某個地址長時間處于不穩(wěn)定狀態(tài)時,適當(dāng)降低測試頻率,減少資源開銷;5、使用文件記錄通道狀態(tài)變化。
圖1為本發(fā)明的流程圖。
具體實施例方式下面結(jié)合附圖與實施例對本發(fā)明做進(jìn)一步說明。實施例1 正常通道的監(jiān)視啟動過程第一步,設(shè)置穩(wěn)定狀態(tài)測試間隔Tl = 1000毫秒,不穩(wěn)定狀態(tài)測試間隔T2 = 50毫秒,異常測試間隔T3 = 500毫秒;穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度Kl = 10,不穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K2 = 20,測試包大小32字節(jié),最長等待時間300毫秒;總目標(biāo)數(shù)為100個,作為例子,設(shè)置第5個目標(biāo)IP地址為192. 168. 1. 1 ;設(shè)置系統(tǒng)計時間隔為50ms ;第二步,為所有目標(biāo)地址建立數(shù)據(jù)模型,設(shè)置目標(biāo)192. 168. 1. 1的初始值為測試間隔t = Tl = 1000毫秒,建立一個空數(shù)據(jù)隊列長度為k = K2 = 10,初始連接狀態(tài)χ為穩(wěn)定狀態(tài),初始網(wǎng)絡(luò)狀態(tài)y為良好,完成測試程序P的初始化;啟動系統(tǒng)計時器,當(dāng)前讀數(shù)為0 毫秒,以后每隔Tx = 50毫秒觸發(fā)一次;第三步,計時器每隔50毫秒觸發(fā)一次,并判斷條件,當(dāng)計時器運行到T‘ = 5000毫秒時判斷第一條件,m= (T' mod(N*Tl))/Tl = (5000mod (100*1000))/1000 = 5,且第5個目標(biāo)地址的t于Tl相同,第5個目標(biāo)地址可進(jìn)行一次測試;判斷第二條件,m= (T' mod (N*T2))/T2 = (5000mod (100*50))/50 = 0,但此時第0個目標(biāo)地址的t = Tl與T2不同,不進(jìn)行測試;判斷第三條件,m= (T' mod (N*T3))/T3 = (5000mod (100*500))/500 = 10,第 10 個目標(biāo)地址的t = Tl與T3不同,不進(jìn)行測試;第四步至第十二步,將開啟一個獨立線程,在不影計時器和其他測試線程運行的情況下對目標(biāo)地址192. 168. 1. 1進(jìn)行測試,向目標(biāo)地址發(fā)送測試包并接收返回結(jié)果,將結(jié)果存入結(jié)果隊列中,由于結(jié)果為正常且當(dāng)前目標(biāo)網(wǎng)絡(luò)狀態(tài)為良好,不需要修改目標(biāo)連接狀態(tài),在第十二步中,隊列中結(jié)果數(shù)量小于10個,不足以進(jìn)行判斷,結(jié)束線程,等待下次觸發(fā)。 之后的觸發(fā)時間分別為計時器T' = 105000毫秒,T' = 205000毫秒……T' = 905000毫秒時。對目標(biāo)地址192. 168. 1. 1進(jìn)行10次測試后,在T' = 905000毫秒觸發(fā)的測試中, 數(shù)據(jù)隊列中結(jié)果達(dá)到10個,進(jìn)入第十三步。第十三步,算得成功率s = 100% ;第十四步,將t設(shè)為Tl,k設(shè)為K1,與當(dāng)前的設(shè)定相同;第十六步,判斷得當(dāng)前網(wǎng)絡(luò)狀態(tài)為良好;第十七步,報告狀態(tài)沒有改變并給出參數(shù);以后每隔N*T1 = 100*1000 = 100000毫秒仍會觸發(fā),如果狀態(tài)沒有變化,則繼續(xù)
以這個頻率測試,并報告結(jié)果和參數(shù),啟動完成。實施例2 通道出現(xiàn)故障的判斷過程已完成第一步,設(shè)置穩(wěn)定狀態(tài)測試間隔Tl = 1000毫秒,不穩(wěn)定狀態(tài)測試間隔T2 =50毫秒,異常測試間隔T3 = 500毫秒;穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度Kl = 10,不穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K2 = 20,測試包大小32字節(jié),最長等待時間300毫秒;總目標(biāo)數(shù)為100個,作為例子,設(shè)置第5個目標(biāo)IP地址為192. 168. 1. 1 ;設(shè)置系統(tǒng)計時間隔為50ms ;已完成第二步,為所有目標(biāo)地址建立數(shù)據(jù)模型,設(shè)置目標(biāo)192. 168. 1. 1的初始值為測試間隔t = Tl = 1000毫秒,建立一個空數(shù)據(jù)隊列長度為k = K2 = 10,初始連接狀態(tài) χ為穩(wěn)定狀態(tài),初始網(wǎng)絡(luò)狀態(tài)y為良好,完成測試程序P的初始化;啟動系統(tǒng)計時器,當(dāng)前讀數(shù)為0毫秒,以后每隔Tx = 50毫秒觸發(fā)一次;數(shù)據(jù)隊列中已有10次測試結(jié)果,均為成功,當(dāng)前測試間隔t = Tl = 1000毫秒,數(shù)據(jù)隊列長度k = K2 = 10,連接狀態(tài)χ為穩(wěn)定狀態(tài),網(wǎng)絡(luò)狀態(tài)y為良好;第一次觸發(fā)測試,假設(shè)系統(tǒng)計時器運行至30005000毫秒;進(jìn)入第三步,判斷結(jié)果為滿足測試的第一條件,即m= (T' mod (N*T1))/Tl = (30005000mod(100*1000))/1000 = 5,且第5個目標(biāo)地址的t于Tl相同,第5個目標(biāo)地址可進(jìn)行一次測試;第四步到第六步,將開啟一個獨立線程,在不影計時器和其他測試線程運行的情況下對目標(biāo)地址192. 168. 1. 1進(jìn)行測試,向目標(biāo)地址發(fā)送測試包,在最長等待時間Q = 300 毫秒內(nèi)沒有收到返回結(jié)果,以失敗存入結(jié)果隊列中;第七步和第八步,由于結(jié)果為11個,丟棄第一個測試結(jié)果;第九步,當(dāng)前狀態(tài)為穩(wěn)定狀態(tài),最后一個結(jié)果為失敗而網(wǎng)絡(luò)狀態(tài)為良好,則進(jìn)入第
I lK
卞少;第十步,將t設(shè)為T2,k設(shè)為K2,連接狀態(tài)χ設(shè)為不穩(wěn)定,清空數(shù)據(jù)隊列,結(jié)束本次測試;第二次觸發(fā)測試,在T' = 30010250毫秒時,計時器觸發(fā),第三步中,判斷結(jié)果為滿足測試的第二條件,即m = (30010250mod(100*50))/50 = 5,且第5個目標(biāo)地址的t與 T2相同,第5個目標(biāo)地址可進(jìn)行一次測試;第四步至第十二步,第四步到第六步,將開啟一個獨立線程,向目標(biāo)地址發(fā)送測試包,在最長等待時間Q = 300毫秒內(nèi)沒有收到返回結(jié)果,以失敗存入結(jié)果隊列中;結(jié)果不足k = K2 = 20個,不需要丟棄;當(dāng)前狀態(tài)已為不穩(wěn)定狀態(tài),不需修改;第十二步中,隊列中結(jié)果數(shù)量小于k = K2 = 20個,不足以進(jìn)行判斷,結(jié)束線程,等待下次觸發(fā);之后每隔N*T2 = 100*50 = 5000毫秒,計時器將觸發(fā)一次,再進(jìn)行19次測試后, 數(shù)據(jù)隊列中結(jié)果達(dá)到20個,進(jìn)入第十三步;第十三步,算得成功率s = 0% ;第十四步,將t改為Tl,k改為K1,連接狀態(tài)χ設(shè)為穩(wěn)定狀態(tài);第十六步,判斷得當(dāng)前網(wǎng)絡(luò)狀態(tài)為中斷;第十七步,報告狀態(tài)沒有改變并給出參數(shù);第十八步,報告該地址連接狀態(tài)由良好變?yōu)橹袛?,獲取當(dāng)前系統(tǒng)時間并記錄在文件中,令y=中斷;若該地址所屬節(jié)點的所有IP地址的狀態(tài)均相同,為良好/中斷/異常,則報告該節(jié)點的狀態(tài)為良好/中斷/異常;該地址所屬節(jié)點的其他IP地址,例如第0到第4個地址與第5個地址同屬于一個節(jié)點,第0到第4個地址均為良好,則報告該節(jié)點的狀態(tài)為通道良好,設(shè)備故障;以后每隔N*T1 = 100*1000 = 100000毫秒仍會觸發(fā),如果狀態(tài)沒有變化,則繼續(xù)以這個頻率測試,并報告結(jié)果和參數(shù)。
權(quán)利要求
1.一種電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,進(jìn)行數(shù)據(jù)設(shè)置, 啟動計時器;根據(jù)監(jiān)視參數(shù)判斷計時器是否應(yīng)觸發(fā)測試;建立不影響主程序的獨立子線程用于測試;發(fā)送測試包,接收結(jié)果并在隊列中存儲測試結(jié)果;判斷結(jié)果是否過多并丟棄多余的測試結(jié)果;根據(jù)最后一個結(jié)果判斷連接狀態(tài)并修改連接狀態(tài)和監(jiān)視參數(shù);計算相關(guān)測試參數(shù);判斷隊列中的結(jié)果是否足夠,否則結(jié)束本次測試,是則修改當(dāng)前網(wǎng)絡(luò)狀態(tài)和監(jiān)視參數(shù),并給出本次測試的結(jié)果報告。
2.如權(quán)利要求1所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,它的具體步驟為第一步設(shè)置監(jiān)視參數(shù); 第二步建立監(jiān)視模型;為每一個被監(jiān)視的節(jié)點的每一個IP地址建立獨立數(shù)據(jù)模型,數(shù)據(jù)模型中包含測試間隔t,連接狀態(tài)X,網(wǎng)絡(luò)狀態(tài)y,一個長度為k的數(shù)據(jù)隊列,一個測試包發(fā)送程序P,該程序發(fā)送一個ICMP測試包并接收返回數(shù)據(jù)包;其中,t的初始值為Tl,X的初始值為穩(wěn)定狀態(tài),網(wǎng)絡(luò)狀態(tài)Y的初始值為良好,k的初始值為Kl ;設(shè)置并啟動一個系統(tǒng)計時器,計時器當(dāng)前的讀數(shù)為T‘,單位為毫秒,計時器每隔Tx毫秒觸發(fā)一次,每當(dāng)計時器觸發(fā)時進(jìn)入第三步; 第三步計時器觸發(fā)判斷計時器每隔Tx毫秒觸發(fā)一次,若此時計時器讀數(shù)T'滿足下面3個條件的任何一條或多條1)計算求得m=(T' mod (N*T1))/Tl時,若第m個地址數(shù)據(jù)模型的t = Tl;2)計算求得m= (T' mod(N*T2))/T2時,若第m個地址數(shù)據(jù)模型的t = T2 ;3)計算求得m= (T' mod(N*T3))/T3時,若第m個地址數(shù)據(jù)模型的t = T3 ;則進(jìn)入第四步,否則重新回到第三步等待計時器觸發(fā),Mod為取余數(shù)運算;第四步打開獨立子線程;打開一個獨立子線程,它的運行時間不影響主程序的運行和系統(tǒng)計時器的工作,子線程進(jìn)入第五步,父線程回到第三步繼續(xù)等待計時器觸發(fā); 第五步測試包發(fā)送接收過程; 第六步測試結(jié)果存儲過程;當(dāng)?shù)趍個地址的程序P收到并返回測試結(jié)果后,將測試結(jié)果送入該節(jié)點的數(shù)據(jù)隊列,進(jìn)入第七步;第七步隊列數(shù)據(jù)量判斷1 ; 若隊列長度l>k,進(jìn)入第八步; 若隊列長度1 < k或1 = k,進(jìn)入第九步; 第八步丟棄數(shù)據(jù)如果數(shù)據(jù)隊列當(dāng)前長度1 > k,則反復(fù)丟棄隊列中第一個數(shù)據(jù),直到隊列長度1 = k,進(jìn)入第九步;第九步連接狀態(tài)判斷若當(dāng)前連接狀態(tài)為不穩(wěn)定狀態(tài),進(jìn)入第十一步;或者當(dāng)前連接狀態(tài)為穩(wěn)定狀態(tài),數(shù)據(jù)隊列中最后一個返回結(jié)果的測試狀態(tài)是與當(dāng)前網(wǎng)絡(luò)狀態(tài)y相同,進(jìn)入第十一步;否則進(jìn)入第十步;第十步設(shè)置連接狀態(tài)為不穩(wěn)定將隊列長度k改為K2,清空當(dāng)前的數(shù)據(jù)隊列,將t設(shè)為T2,關(guān)閉子線程,等待計數(shù)器再次觸發(fā);第十一步計算狀態(tài)參數(shù)第十二步隊列數(shù)據(jù)量判斷2若隊列長度1 = k,進(jìn)入第十三步;若隊列長度1 < k,關(guān)閉子線程,等待計數(shù)器再次觸發(fā);第十三步計算測試成功率若成功率s = 100%或s = 0%,進(jìn)入第十四步;若成功率0 % < s < 100 %,進(jìn)入第十五步;第十四步設(shè)置連接狀態(tài)為穩(wěn)定將隊列長度k改為K1,將t設(shè)為Tl,連接狀態(tài)χ設(shè)為穩(wěn)定狀態(tài),進(jìn)入第十六步; 第十五步調(diào)整測試參數(shù)將t設(shè)為T3,k改為K2,連接狀態(tài)χ設(shè)為不穩(wěn)定狀態(tài),進(jìn)入第十六步;第十六步網(wǎng)絡(luò)狀態(tài)判斷若s = 100%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=良好;若S = 0%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=中斷;若0%< s < 100%,則當(dāng)前網(wǎng)絡(luò)狀態(tài)y'=異常;進(jìn)入第十七步;第十七步判斷測試結(jié)果若y'與y相同,則報告本次測試的結(jié)論為連接狀態(tài)不變,本次測試結(jié)束,關(guān)閉子線程; 否則應(yīng)視為狀態(tài)改變,進(jìn)入第十八步; 第十八步判斷節(jié)點狀態(tài)報告該地址連接狀態(tài)由y'變?yōu)閥,獲取當(dāng)前系統(tǒng)時間并記錄在文件中,令y = y'; 若該地址所屬節(jié)點的所有IP地址的狀態(tài)均相同,為良好/中斷/異常,則報告該節(jié)點的狀態(tài)為良好/中斷/異常;若至少有一個IP地址狀態(tài)為良好/異常,則報告該節(jié)點的狀態(tài)為通道良好/異常,設(shè)備故障;本次測試結(jié)束,關(guān)閉子線程。
3.如權(quán)利要求2所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,所述第一步中,監(jiān)視參數(shù)的設(shè)置過程為設(shè)置穩(wěn)定狀態(tài)測試間隔Tl,不穩(wěn)定狀態(tài)測試間隔T2,異常測試間隔T3,單位均為毫秒,且Tl > T3 > T2 ;設(shè)置穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K1, 設(shè)置不穩(wěn)定狀態(tài)數(shù)據(jù)隊列長度K2,且K2> Kl ;設(shè)置測試包大小D,最長等待時間Q,Q <Τ3 ; 設(shè)置每一個目標(biāo)節(jié)點的名稱以及目標(biāo)節(jié)點的多個IP地址,并計算總的目標(biāo)地址數(shù)N,設(shè)置系統(tǒng)計時間隔Τχ,單位為毫秒。
4.如權(quán)利要求2所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,所述第五步的具體過程為啟動第m個地址的測試包發(fā)送程序P,該程序?qū)⒋蜷_一個獨立線程,它的運行時間將不影響主程序的運行和系統(tǒng)計時器的工作;建立一個ICMP測試包向節(jié)點ip地址發(fā)送,并等待返回數(shù)據(jù),返回數(shù)據(jù)包括測試狀態(tài)即良好或中斷以及測試用時,如果程序在最長等待時間Q內(nèi)沒有收到返回數(shù)據(jù),則設(shè)置返回數(shù)據(jù)為測試失敗,用時為 Q ;進(jìn)入第六步。
5.如權(quán)利要求2所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,所述第十一步的過程為統(tǒng)計數(shù)據(jù)隊列中返回數(shù)據(jù)測試狀態(tài)為成功的數(shù)據(jù)數(shù)c,計算測試成功率s = c/l*100%,計算該地址的平均連接時間tavg = 1/1求和(tl. . . tl),最長連接時間tmax = 1/1求最大(tl. · · tl),最短連接時間tmin = 1/1求最小(tl. · · tl),丟失率lost = 100% -s,進(jìn)入第十一步;其中,1為當(dāng)前數(shù)據(jù)隊列長度,tl. . . tl為1個測試結(jié)果的測試時間。
6.如權(quán)利要求2所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,所述第九步中,如果穩(wěn)定狀態(tài)的地址收到一個與當(dāng)前狀態(tài)不同的測試結(jié)果,將該地址標(biāo)為不穩(wěn)定狀態(tài),清空結(jié)果隊列,每隔NXT2時間測試一次,連續(xù)測試K2次,在NXT2XK2時間后可判定是否應(yīng)恢復(fù)穩(wěn)定狀態(tài)或確認(rèn)通信狀態(tài)改變,并報告結(jié)果,濾除干擾。
7.如權(quán)利要求2所述的電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,其特征是,對于處于穩(wěn)定通信狀態(tài)的網(wǎng)絡(luò)地址,每隔NXTl時間測試一次并報告結(jié)果,測試樣本空間為NXT1XK1 ;對于長時間處于異常、不穩(wěn)定狀態(tài)的地址,使用NXT3間隔進(jìn)行測試和報告;程序最多同時開啟1+Q/T1+Q/T2+Q/T3個線程同時工作,一個線程進(jìn)行工作時,計時器仍可以根據(jù)判斷啟動其他線程同時工作。
全文摘要
本發(fā)明公開了一種電力遠(yuǎn)動網(wǎng)絡(luò)中頻率可變的節(jié)點通信狀態(tài)監(jiān)視方法,能夠提高網(wǎng)絡(luò)通信狀態(tài)判斷精度,減少系統(tǒng)測試資源消耗。進(jìn)行數(shù)據(jù)設(shè)置,啟動計時器;根據(jù)監(jiān)視參數(shù)判斷計時器是否應(yīng)觸發(fā)測試;建立不影響主程序的獨立子線程用于測試;發(fā)送測試包,接收結(jié)果并在隊列中存儲測試結(jié)果;判斷結(jié)果是否過多并丟棄多余的測試結(jié)果;根據(jù)最后一個結(jié)果判斷連接狀態(tài)并修改連接狀態(tài)和監(jiān)視參數(shù);計算相關(guān)測試參數(shù);判斷隊列中的結(jié)果是否足夠,否則結(jié)束本次測試,是則修改當(dāng)前網(wǎng)絡(luò)狀態(tài)和監(jiān)視參數(shù),并給出本次測試的結(jié)果報告。
文檔編號H04L12/26GK102571501SQ20121003674
公開日2012年7月11日 申請日期2012年2月18日 優(yōu)先權(quán)日2012年2月18日
發(fā)明者馮燕, 劉希峰, 劉矞, 宋娜, 崔好, 張文娟, 張進(jìn), 徐征, 李菁竹, 李穎, 李穎慧, 潘向華, 王彥博, 王雪麗, 白英偉, 石璐, 閆超, 韓委, 韓振峰 申請人:山東電力集團(tuán)公司超高壓公司