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