,,,
(許繼電氣股份有限公司,河南 許昌 461000)
智能變電站中應(yīng)用了大量以太網(wǎng)通信設(shè)備和技術(shù),由于交換機(jī)異常、組網(wǎng)設(shè)備網(wǎng)卡異常、網(wǎng)絡(luò)環(huán)路、病毒等原因,實際運(yùn)行過程中智能變電站的關(guān)鍵設(shè)備智能終端(以下也簡稱裝置)的GOOSE發(fā)送或接收端口容易受到網(wǎng)絡(luò)風(fēng)暴的干擾,如果智能終端抵御網(wǎng)絡(luò)風(fēng)暴的可靠性低,就極易造成正常GOOSE報文的收發(fā)異常,從而引起裝置死機(jī)、重啟,以及拒動或誤動,因此,裝置的網(wǎng)絡(luò)通信可靠性設(shè)計的主要內(nèi)容之一就是采用合理、有效的抵御網(wǎng)絡(luò)風(fēng)暴技術(shù),在保證裝置正常功能和性能的前提下,盡可能提高裝置抵御網(wǎng)絡(luò)風(fēng)暴的能力[1-2]。
通常采用的抵御網(wǎng)絡(luò)風(fēng)暴技術(shù)在發(fā)生廣播風(fēng)暴或GOOSE流量風(fēng)暴的情況下,根據(jù)事先設(shè)定的網(wǎng)絡(luò)流量門檻,暫時閉鎖裝置CPU處理GOOSE接收報文的功能,即在一定延時內(nèi)丟棄報文,從而躲開突發(fā)的網(wǎng)絡(luò)風(fēng)暴,避免由于裝置CPU處理能力不足而造成的死機(jī)或重啟。這種方法的優(yōu)點(diǎn)是設(shè)計實現(xiàn)簡單,但缺點(diǎn)是能抵御的網(wǎng)絡(luò)流量有限,而且在短時間有可能丟棄掉正常的GOOSE跳合閘命令或開關(guān)變位報文,可能造成電力系統(tǒng)進(jìn)一步故障[3]。
由于通過上述軟件實現(xiàn)方式來抵御網(wǎng)絡(luò)風(fēng)暴有一定缺陷,而FPGA等硬件處理能力強(qiáng)大,可以彌補(bǔ)依靠純軟件所帶來的處理能力有限等缺點(diǎn),因此可以采用FPGA硬件編解碼技術(shù)來參與大流量報文處理,突破裝置中廣播風(fēng)暴或GOOSE流量風(fēng)暴實時處理能力瓶頸問題。使裝置具備網(wǎng)口滿流量報文處理能力,可有效抵御網(wǎng)絡(luò)風(fēng)暴,在任何網(wǎng)絡(luò)流量沖擊下裝置均不會死機(jī)或重啟。
智能終端為智能變電站中新出現(xiàn)的一種IED設(shè)備,適用于智能變電站內(nèi)多種一次開關(guān)間隔或變壓器間隔,其最主要的兩個功能是:①接收智能變電站過程層網(wǎng)絡(luò)的控制指令或繼電保護(hù)裝置的直接控制指令,并驅(qū)動相應(yīng)的出口回路完成對一次設(shè)備的控制功能,并具有防誤操作功能;②采集一次設(shè)備位置信號、報警信號等實時數(shù)據(jù),通過GOOSE服務(wù)發(fā)布至過程層網(wǎng)絡(luò)[4]。
由于智能變電站中智能終端設(shè)備所處的關(guān)鍵位置和重要功能,對其可靠性設(shè)計要求極高,任何情況下都要保證裝置的可靠動作。由于智能終端的組網(wǎng)口接在過程層網(wǎng)絡(luò)上,雖然可通過屏蔽廣播報文等做法避免網(wǎng)絡(luò)壓力對裝置的影響,但還是存在某個網(wǎng)口受到網(wǎng)絡(luò)壓力的影響造成裝置拒動或誤動的可能,所以就需要在某個網(wǎng)口受到網(wǎng)絡(luò)壓力影響時防止裝置的其他網(wǎng)口的功能受到影響的新機(jī)制。
本文涉及的智能終端網(wǎng)絡(luò)報文處理流程如圖1所示。按照網(wǎng)絡(luò)報文進(jìn)入裝置及在裝置中處理的流程為序,分別在硬件層(FPGA處理模塊)、網(wǎng)卡驅(qū)動層(CPU處理模塊)、應(yīng)用層(應(yīng)用處理模塊)中進(jìn)行報文的接收、存儲和處理,而僅在CPU處理模塊進(jìn)行網(wǎng)絡(luò)流量或網(wǎng)絡(luò)風(fēng)暴的判別和過濾[5]。
圖1 目前常見的網(wǎng)絡(luò)流量處理流程
這種結(jié)構(gòu)的特點(diǎn):用于處理數(shù)據(jù)的CPU插件和網(wǎng)絡(luò)擴(kuò)展插件分開,網(wǎng)絡(luò)擴(kuò)展插件是由FPGA處理模塊控制的多網(wǎng)口網(wǎng)絡(luò)報文預(yù)處理插件,CPU插件是接收網(wǎng)絡(luò)數(shù)據(jù)并且處理數(shù)據(jù)的插件,網(wǎng)絡(luò)擴(kuò)展插件和CPU插件是通過以太網(wǎng)口進(jìn)行通信的,基本結(jié)構(gòu)如圖1所示。
已有做法的不足:只是在驅(qū)動層對網(wǎng)絡(luò)風(fēng)暴報文進(jìn)行抑制,但是根據(jù)裝置的結(jié)構(gòu)特點(diǎn)和網(wǎng)絡(luò)數(shù)據(jù)處理流程,只在網(wǎng)絡(luò)驅(qū)動層進(jìn)行網(wǎng)絡(luò)風(fēng)暴抑制是不完善的,因為網(wǎng)絡(luò)流量的判斷是在CPU板的網(wǎng)絡(luò)驅(qū)動層進(jìn)行的,當(dāng)判斷到流量異常超量的時候,應(yīng)用層的數(shù)據(jù)緩沖區(qū)里面已經(jīng)有非常多的網(wǎng)絡(luò)風(fēng)暴報文了,此時即使在網(wǎng)卡驅(qū)動層將網(wǎng)絡(luò)數(shù)據(jù)屏蔽,應(yīng)用層處理應(yīng)用數(shù)據(jù)緩沖區(qū)中已有的報文也將耗費(fèi)極大的CPU資源,對整個裝置的性能是個巨大的壓力和挑戰(zhàn);另外,如果只是在驅(qū)動層進(jìn)行風(fēng)暴屏蔽,在FPGA預(yù)處理層不對風(fēng)暴進(jìn)行處理的話,網(wǎng)絡(luò)擴(kuò)展插件多個網(wǎng)口的數(shù)據(jù)和風(fēng)暴數(shù)據(jù)都會對CPU插件的網(wǎng)卡驅(qū)動形成持續(xù)的沖擊,會影響整個裝置的性能甚至造成拒動或者誤動。
按照圖1所示的方法實現(xiàn)的網(wǎng)絡(luò)風(fēng)暴處理機(jī)制,存在如下兩個主要問題:①對于單個網(wǎng)口來說,如果僅是該網(wǎng)口中某組或某些組的報文流量異常,由于沒有按組進(jìn)行識別過濾,就會關(guān)閉這個端口,進(jìn)而也關(guān)閉了利用該端口進(jìn)行通信的所有報文組,例如該端口的三組GOOSE報文中如果有一組發(fā)生網(wǎng)絡(luò)風(fēng)暴,由此關(guān)閉該端口的同時,也關(guān)閉了其他正常通信的組,造成了影響面的擴(kuò)大,對繼電保護(hù)裝置的正常運(yùn)行影響也較大[6];②所有端口的網(wǎng)絡(luò)風(fēng)暴由CPU模塊直接判別處理,只要有一個端口發(fā)生網(wǎng)絡(luò)風(fēng)暴,就會對CPU產(chǎn)生極大的負(fù)荷率,從而影響CPU處理其他更重要任務(wù)的性能,造成CPU停止或關(guān)閉網(wǎng)絡(luò)處理任務(wù),裝置其他網(wǎng)口也會暫時關(guān)閉通信報文處理功能。
為了解決上述問題,結(jié)合智能變電站的運(yùn)行要求及特點(diǎn),提出了新型網(wǎng)絡(luò)風(fēng)暴處理機(jī)制的實現(xiàn)目標(biāo),即當(dāng)一個網(wǎng)口的某些組的報文數(shù)據(jù)流量異常時不會影響該網(wǎng)口其他組數(shù)據(jù)的處理和裝置的性能;某一個或者幾個網(wǎng)口數(shù)據(jù)流量異常不會影響其他網(wǎng)口的數(shù)據(jù)處理和整個裝置的性能,即一個網(wǎng)口數(shù)據(jù)流量異常的時候,其他網(wǎng)口對數(shù)據(jù)的正常處理性能不受影響,裝置的整體性能也不受影響。
根據(jù)目標(biāo)要求所實現(xiàn)的新方法,其特征在于流量監(jiān)控機(jī)制不僅僅只是統(tǒng)計網(wǎng)口的總流量,還會監(jiān)控每個網(wǎng)口每種組播報文的流量,這樣做使得流量控制更加細(xì)化和精確:一個網(wǎng)口中的某些組播報文流量異常的時候,不會影響當(dāng)前網(wǎng)口對其他正常報文的處理,更不會影響其他網(wǎng)口和裝置的性能。
根據(jù)智能終端的網(wǎng)絡(luò)數(shù)據(jù)處理特點(diǎn)和上述分析,充分利用智能終端的分層設(shè)計的結(jié)構(gòu)特點(diǎn),在裝置上建立一個三層一體的網(wǎng)絡(luò)抑制機(jī)制,將裝置的網(wǎng)絡(luò)數(shù)據(jù)處理分為三層:①網(wǎng)絡(luò)擴(kuò)展插件的FPGA預(yù)處理層(FPGA處理模塊),用于網(wǎng)絡(luò)擴(kuò)展插件每個網(wǎng)口數(shù)據(jù)的接收、預(yù)處理和緩存處理;②CPU插件的網(wǎng)絡(luò)驅(qū)動處理層,用于對網(wǎng)絡(luò)擴(kuò)展插件每個網(wǎng)口數(shù)據(jù)進(jìn)行網(wǎng)口映射、接收處理和緩存處理;③CPU插件的應(yīng)用處理層,維護(hù)一個緩存列表,用于存儲網(wǎng)絡(luò)驅(qū)動層傳遞過來的網(wǎng)絡(luò)報文數(shù)據(jù)、給應(yīng)用提供有效數(shù)據(jù)。根據(jù)裝置的網(wǎng)絡(luò)報文流向和處理特點(diǎn),本方法在三個層面上實現(xiàn)對網(wǎng)絡(luò)風(fēng)暴的抑制,裝置對網(wǎng)絡(luò)數(shù)據(jù)的接收和處理具體流程如下:
(1)首先,總體要求裝置的每個網(wǎng)口下都需要建立本文提出的網(wǎng)絡(luò)報文過濾機(jī)制:在每個網(wǎng)口的FPGA處理模塊、網(wǎng)卡驅(qū)動處理模塊和應(yīng)用處理模塊內(nèi)部都要建立一套相應(yīng)的網(wǎng)絡(luò)報文過濾模塊。
(2)物理層:對應(yīng)于智能終端的網(wǎng)絡(luò)擴(kuò)展插件的FPGA網(wǎng)絡(luò)報文過濾模塊,在該模塊內(nèi)部增加網(wǎng)絡(luò)報文過濾模塊。FPGA網(wǎng)絡(luò)報文過濾模塊通過設(shè)置網(wǎng)絡(luò)報文過濾門檻來負(fù)責(zé)控制和處理每個網(wǎng)口接收的數(shù)據(jù)流量,并且還可以根據(jù)每個網(wǎng)口的MAC和AppID配置表與實際接收到的是否一致,決定是否接收當(dāng)前的網(wǎng)絡(luò)報文。FPGA網(wǎng)絡(luò)報文過濾模塊包括CRC過濾模塊和MAC、AppID過濾,這兩個模塊的功能分別是:①CRC過濾模塊能夠有效的防護(hù)重復(fù)的網(wǎng)絡(luò)風(fēng)暴報文,統(tǒng)計一段時間(可根據(jù)實際情況設(shè)置)內(nèi)一個網(wǎng)口接收到的相同CRC的報文的數(shù)量,如果該數(shù)超過門檻值(可根據(jù)實際情況設(shè)置),那么就說明具有該CRC的報文有異常,屏蔽該組報文的接收;②MAC、AppID地址過濾模塊,維護(hù)一個MAC列表,只有接收報文的MAC和AppID在列表中存在的情況下報文才會被接收,該MAC列表的所有條目的MAC和AppID值都是由CPU插件產(chǎn)生的,并且由網(wǎng)卡驅(qū)動模塊負(fù)責(zé)檢測和刷新。物理層FPGA網(wǎng)絡(luò)報文過濾模塊對網(wǎng)絡(luò)報文進(jìn)行屏蔽和過濾的同時還能盡量降低后續(xù)CPU的處理壓力。
(3)驅(qū)動層:對應(yīng)于智能終端的CPU插件的網(wǎng)卡驅(qū)動模塊,在該模塊內(nèi)部實現(xiàn)網(wǎng)絡(luò)報文過濾功能,通過該道防線盡量降低對后續(xù)應(yīng)用層處理數(shù)據(jù)的壓力。CPU處理模塊的網(wǎng)絡(luò)過濾模塊負(fù)責(zé)實時統(tǒng)計每個網(wǎng)口每組報文的網(wǎng)絡(luò)流量、適時更新FPGA處理模塊的MAC和AppID配置表、定位產(chǎn)生風(fēng)暴的網(wǎng)口(或者網(wǎng)口中的某組報文),并給出網(wǎng)絡(luò)風(fēng)暴的屏蔽標(biāo)志、完成網(wǎng)絡(luò)風(fēng)暴屏蔽超時機(jī)制的處理等,是整個網(wǎng)絡(luò)抑制方法的核心。
網(wǎng)卡驅(qū)動網(wǎng)絡(luò)報文過濾模塊包括:網(wǎng)絡(luò)流量監(jiān)控模塊、MAC和AppID過濾模塊。網(wǎng)絡(luò)流量監(jiān)控模塊的主要作用有兩個,首先就是實時監(jiān)控每個網(wǎng)卡的每組注冊報文的流量,檢測到某組報文的流量超標(biāo)之后就會將該報文的MAC和AppID從相應(yīng)網(wǎng)口的MAC和AppID過濾列表中去掉,即啟動該組報文的屏蔽;其次在每組報文的網(wǎng)絡(luò)風(fēng)暴觸發(fā)網(wǎng)絡(luò)屏蔽機(jī)制之后,都會觸發(fā)一個時間統(tǒng)計記錄該組報文被屏蔽的時間,當(dāng)屏蔽時間超出門檻值(可根據(jù)實際應(yīng)用定制)之后,就會重新將該屏蔽報文的MAC和AppID寫入MAC和AppID過濾表,即重新恢復(fù)該報文的接收。MAC和AppID過濾模塊維護(hù)一個MAC和AppID過濾表,表示本網(wǎng)口中只接收MAC和AppID在該列表中存在的報文并進(jìn)行后續(xù)處理,該列表的初始化值是裝置初始化的時候注冊的,表示本裝置需要接收所有類型報文的MAC和AppID列表,該表初始化完成之后會立即將列表信息傳遞給的過濾模塊和應(yīng)層報文數(shù)據(jù)預(yù)處理模塊。在裝置運(yùn)行過程中,MAC和AppID過濾列表只要有更新就會立刻將更新之后的MAC和AppID列表信息傳遞給FPGA的過濾模塊和應(yīng)用層報文數(shù)據(jù)預(yù)處理模塊,F(xiàn)PGA和應(yīng)用層的過濾模塊會負(fù)責(zé)及時更新自身的MAC和AppID過濾列表。
(4)應(yīng)用層:對應(yīng)于裝置的應(yīng)用處理模塊,在該模塊內(nèi)部實現(xiàn)網(wǎng)絡(luò)報文過濾模塊,在該過濾模塊上對網(wǎng)絡(luò)風(fēng)暴報文進(jìn)行過濾,有效降低了CPU使用率。應(yīng)用層處理模塊的網(wǎng)絡(luò)過濾模塊包含MAC和AppID列表過濾模塊處理機(jī)制與上述類似的過濾模塊一樣,該列表的所有條目的MAC值都是由CPU插件的網(wǎng)卡驅(qū)動模塊產(chǎn)生并送到應(yīng)用層處理模塊刷新的。應(yīng)用層處理模塊的網(wǎng)絡(luò)過濾模塊還負(fù)責(zé)監(jiān)聽CPU給出的網(wǎng)絡(luò)風(fēng)暴抑制標(biāo)志,并作出相應(yīng)的動作。
以上三個層次中的網(wǎng)絡(luò)報文過濾模塊都有屏蔽超時恢復(fù)功能:某組風(fēng)暴報文被屏蔽接收超過一定時間(可根據(jù)實際應(yīng)用情況設(shè)置),就會重新開放接收功能。改進(jìn)后的裝置通信流程如圖2所示。
圖2 新型網(wǎng)絡(luò)流量處理流程
2.4.1測試用例設(shè)計
為了驗證上述方法的正確性和可靠性,設(shè)計了裝置網(wǎng)絡(luò)風(fēng)暴測試用例,主要包括:對單個網(wǎng)口施加訂閱業(yè)務(wù)報文網(wǎng)絡(luò)風(fēng)暴;對多個網(wǎng)口同時施加訂閱業(yè)務(wù)報文網(wǎng)絡(luò)風(fēng)暴;對單個網(wǎng)口施加非訂閱業(yè)務(wù)報文網(wǎng)絡(luò)風(fēng)暴;對多個網(wǎng)口同時施加非訂閱業(yè)務(wù)報文網(wǎng)絡(luò)風(fēng)暴;重復(fù)訂閱業(yè)務(wù)報文網(wǎng)絡(luò)壓力測試;裝置各以太網(wǎng)口之間是否禁止互相轉(zhuǎn)發(fā)報文測試等等,通過上述多種項目的試驗,驗證該方法是否能夠充分減少網(wǎng)絡(luò)風(fēng)暴對裝置通信功能和性能的影響,同時能保證裝置運(yùn)行的可靠性、高效性。
2.4.2測試分析
按照上述測試用例設(shè)計的網(wǎng)絡(luò)數(shù)據(jù),分別施加10 Mbps、50 Mbps、100 Mbps等不同的壓力流量,考核裝置是否丟幀、切換功能是否正常,以及CPU占有率等關(guān)鍵功能和性能,經(jīng)過對比測試,使用改進(jìn)前的網(wǎng)絡(luò)壓力報文處理機(jī)制出現(xiàn)了丟幀及裝置重啟的現(xiàn)象,裝置在上述情況下由于CPU占有率很容易就達(dá)到98%左右,一個網(wǎng)口出現(xiàn)網(wǎng)絡(luò)風(fēng)暴時,會影響到其他網(wǎng)口也無法正常工作,且裝置經(jīng)常出現(xiàn)重啟或死機(jī)現(xiàn)象。使用改進(jìn)后的網(wǎng)絡(luò)壓力處理流程后,均實現(xiàn)了一個網(wǎng)口中一組報文發(fā)生網(wǎng)絡(luò)風(fēng)暴時,不影響其他組或其他網(wǎng)口的正常工作,施加流量過程中通過其他組或其他網(wǎng)口的GOOSE均能正確操控裝置,并且有效降低了裝置CPU占有率,提高了裝置運(yùn)行的可靠性。
本文論述的方法在三個層次上對網(wǎng)絡(luò)風(fēng)暴進(jìn)行檢測和屏蔽,層層遞進(jìn),即分散了網(wǎng)絡(luò)風(fēng)暴到來時給單一處理模塊的巨大壓力,更重要的是通過對每個網(wǎng)口的每個組播地址的報文流量的檢測和控制,確保設(shè)備在某一個網(wǎng)口的某些組播報文網(wǎng)絡(luò)壓力很大的時候,不影響對其他組播報文的處理,其他網(wǎng)口的功能及裝置的性能都不受影響,杜絕了惡劣網(wǎng)絡(luò)環(huán)境下智能裝置拒動或誤動的可能性,保證了運(yùn)行的可靠性。通信技術(shù)在電力系統(tǒng)中的應(yīng)用越來越多,通信功能也越來越重要,該方法對于類似的電力二次裝置的通信功能設(shè)計也具有一定的參考意義。