李 彥,許宗光,李廣華,顧 浩
(南京南瑞繼保電氣有限公司,南京 211102)
在智能變電站的建設(shè)實踐中,IEC 61850 標準憑借良好的可擴展性和體系結(jié)構(gòu),成為智能電網(wǎng)的統(tǒng)一標準。智能變電站的典型網(wǎng)絡(luò)拓撲為“三層兩網(wǎng)”架構(gòu)[1],設(shè)備根據(jù)其工作地位歸屬于站控層、間隔層和過程層三個層次之一;層次間的通信網(wǎng)絡(luò)分別為站控層網(wǎng)絡(luò)及過程層網(wǎng)絡(luò)。站控層網(wǎng)絡(luò)業(yè)務(wù)包括MMS(制造報文規(guī)范)及其他高級網(wǎng)絡(luò)應(yīng)用業(yè)務(wù);過程層網(wǎng)絡(luò)的主要業(yè)務(wù)包括SV(采樣值)和變電站通用事件GOOSE(面向?qū)ο蟮淖冸娬臼录┑葦?shù)據(jù)鏈路層業(yè)務(wù)。
根據(jù)智能變電站業(yè)務(wù)的特點和通信方式,過程層網(wǎng)絡(luò)業(yè)務(wù)是智能站控制保護功能的必要支撐,其實時性和可靠性要求更高[2],并表現(xiàn)出特定的周期與流量特征[3]。針對不同應(yīng)用的安全等級要求以及數(shù)據(jù)流特征,現(xiàn)有的技術(shù)方案采取了一系列措施來增強二次設(shè)備在網(wǎng)絡(luò)故障環(huán)境下的可用度。這些措施包括采用獨立處理器管理站控層網(wǎng)絡(luò)以實現(xiàn)人機交互與控制保護等邏輯功能的解耦;在網(wǎng)絡(luò)交換設(shè)備上采取流量管控措施[4]來限制端口的最大流量;采用VLAN(虛擬局域網(wǎng))劃分虛擬網(wǎng)絡(luò)隔離非相關(guān)數(shù)據(jù)[5]等。然而,網(wǎng)絡(luò)壓力的成因復(fù)雜[6](包括網(wǎng)絡(luò)拓撲異常、設(shè)備硬件問題、人為失誤和惡意攻擊等),異常行為多樣[7],僅在網(wǎng)絡(luò)交換設(shè)備上采取防護措施是不完備的,更重要的是增強網(wǎng)絡(luò)終端設(shè)備自身壓力防護能力。此外,如STP(生成樹協(xié)議)機制能在秒級時間內(nèi)檢測并修復(fù)異常的網(wǎng)絡(luò)環(huán)路以隔絕網(wǎng)絡(luò)風(fēng)暴,但生效時間過長,無法避免網(wǎng)絡(luò)實時業(yè)務(wù)受損。目前的保護機制智能度不夠,無法精確區(qū)分異常流量和正常數(shù)據(jù),在隔離網(wǎng)絡(luò)壓力的同時可能導(dǎo)致設(shè)備的正常功能失效。
本文提出一種應(yīng)用于二次設(shè)備的網(wǎng)絡(luò)壓力防護方案,其原理和實施方案可以用四維空間中的數(shù)學(xué)模型來描述。本方案尤其適用于采用FPGA(現(xiàn)場可編程門陣列)作為網(wǎng)絡(luò)協(xié)處理器的場合,實施本方案不需要占用處理器資源,網(wǎng)絡(luò)協(xié)處理器通過訂閱過濾、風(fēng)暴抑制和流量控制三重策略來過濾本設(shè)備不需要的網(wǎng)絡(luò)幀,實現(xiàn)了復(fù)雜網(wǎng)絡(luò)環(huán)境下“排除干擾,盡力工作”的目標,從而提高智能變電站系統(tǒng)整體的可靠性與魯棒性。
將二次設(shè)備從網(wǎng)絡(luò)中接收到的任一數(shù)據(jù)幀的4 種參數(shù)抽象為空間坐標,每個幀對應(yīng)于四維空間(X,Y,Z,T)中的一個點,幀的有效性判據(jù)可抽象為幀坐標的數(shù)學(xué)關(guān)系。網(wǎng)絡(luò)協(xié)處理器根據(jù)有效性判據(jù)主動丟棄無效幀,以實現(xiàn)網(wǎng)絡(luò)壓力防護功能。四維坐標中,X 軸為接收到該幀的設(shè)備物理網(wǎng)口,取值范圍是從1 開始的有上限的自然數(shù);Y 軸為網(wǎng)絡(luò)幀的邏輯鏈路信息,代表網(wǎng)絡(luò)數(shù)據(jù)承載的業(yè)務(wù)特征以及處理需求,可以作為網(wǎng)絡(luò)幀在變電站域內(nèi)的唯一性識別信息;Z 軸為幀數(shù)據(jù)的具體內(nèi)容,以太網(wǎng)幀內(nèi)容可以表示為一個二進制序列,該序列在Z 軸上的投影值映射幀二進制序列的數(shù)字值;T 軸是時間軸,表示接收該幀的時刻。
如圖1 所示,任意一個網(wǎng)絡(luò)幀均可用4 個維度的坐標(x,y,z,t)來表示,當(dāng)該幀到達接收設(shè)備時,各坐標值即確定,按照接收的先后順序以下標來區(qū)分,設(shè)備接收到的第n 幀可表示為(xn,yn,zn,tn),網(wǎng)絡(luò)幀在該4 個坐標軸上的投影是唯一的。物理世界中不存在4 個坐標均相同的2 個幀,任意幀也不可能存在不同的2 組坐標。二次設(shè)備期望從網(wǎng)絡(luò)中獲取的以太網(wǎng)幀組成了在該4維空間內(nèi)點的集合。這些點受行業(yè)標準、通信原理及變電站設(shè)計等因素限制,其坐標分布具有一定的規(guī)律性。此外,根據(jù)網(wǎng)絡(luò)壓力形成的原理,網(wǎng)絡(luò)壓力數(shù)據(jù)幀的坐標也表現(xiàn)出一定的規(guī)律性。
圖1 以太網(wǎng)幀的四維空間表示法
首先,根據(jù)智能變電站的配置流程,最終下載到裝置內(nèi)的是每個IED(智能電子設(shè)備)唯一的CID(智能電子設(shè)備實例配置描述文件)[8],或由廠家自定義格式的包含相同信息的配置文件。配置文件將本設(shè)備訂閱的網(wǎng)絡(luò)數(shù)據(jù)的應(yīng)用功能(邏輯鏈路)與路徑(物理端口)聯(lián)系起來。對于單個二次設(shè)備,其IEC 61850 配置文件確定了該設(shè)備訂閱的數(shù)據(jù)集,這個數(shù)據(jù)集表現(xiàn)為整個XY 平面上確定位置的離散點。任意網(wǎng)絡(luò)數(shù)據(jù)幀在XY 平面上的投影落于這些離散點之外,均為非訂閱數(shù)據(jù)。訂閱過濾機制直接丟棄XY 坐標不滿足訂閱關(guān)系的網(wǎng)絡(luò)數(shù)據(jù)幀,保留滿足訂閱關(guān)系的網(wǎng)絡(luò)數(shù)據(jù)幀。判斷訂閱關(guān)系的數(shù)學(xué)表達式為:
式中:(x,y)為任意網(wǎng)絡(luò)幀的接收網(wǎng)口號以及邏輯鏈路信息;(X0,Y0),…,(Xn,Yn)為根據(jù)配置文件確定了有限多個離散值的集合,僅當(dāng)(x,y)的取值落在上述集合中時,表示該幀滿足訂閱條件并被接收。
其次,當(dāng)網(wǎng)絡(luò)拓撲中存在異常環(huán)路或者有網(wǎng)絡(luò)設(shè)備故障時,網(wǎng)絡(luò)內(nèi)可能出現(xiàn)大量無限循環(huán)復(fù)制的重復(fù)報文,這種情況稱之為網(wǎng)絡(luò)風(fēng)暴。信息論表明相同的數(shù)據(jù)不包含新信息,因此風(fēng)暴抑制起效的條件為:
對于接收設(shè)備而言,若序號為m 和n 的2幀接收網(wǎng)口相同(x 坐標相同),幀內(nèi)容相同(z 坐標相同)以及時標接近(t 坐標相近),則后一幀即為網(wǎng)絡(luò)風(fēng)暴幀,可以直接丟棄。
最后,智能變電站中主要業(yè)務(wù)如GOOSE 和SV 的幀率有較為明確的期望值。對于SV 類型,國內(nèi)實踐中常采用4 000 s 的幀率;GOOSE 的幀率情況比較復(fù)雜。根據(jù)國內(nèi)工程實施習(xí)慣,設(shè)備以固定周期(5 s)發(fā)送心跳報文;當(dāng)有新事件發(fā)生時,立刻發(fā)送這條事件報文;為了確保GOOSE傳遞至接收端,事件報文有重傳機制[9],重傳后GOOSE 報文強制恢復(fù)為心跳報文。因此考慮極限情況,GOOSE 幀周期應(yīng)該與設(shè)備處理GOOSE的定時周期相同(國內(nèi)一般是833 μs)。過程層流量控制的數(shù)學(xué)描述為:
式(3)中,將同屬于確定的邏輯鏈路的幀按照接收順序連續(xù)編號,如果序號差(m-n)的2 幀的接收時間差(tm-tn)小于指定時間Ti,則說明該時間段內(nèi)接收邏輯鏈路Yi的幀異常多,超出合理預(yù)期。據(jù)此可以直接丟棄不符合預(yù)期時間分布限制的幀。
通過網(wǎng)絡(luò)壓力的成因以及期望接收數(shù)據(jù)幀的相關(guān)特征,可以指導(dǎo)網(wǎng)絡(luò)協(xié)處理器設(shè)計實現(xiàn)網(wǎng)絡(luò)壓力防護功能。首先按作用范圍從大至小確定訂閱過濾、風(fēng)暴抑制與流量控制3 種策略的起效順序。訂閱過濾首先起效,丟棄所有非訂閱數(shù)據(jù),包括非訂閱的風(fēng)暴流量以及幀率異常的其他報文。其次起效的是風(fēng)暴抑制,因為風(fēng)暴數(shù)據(jù)幀的存在會導(dǎo)致流量控制措施失效。訂閱過濾和風(fēng)暴抑制的目標均屬于本設(shè)備“不需要”的數(shù)據(jù),在感受到網(wǎng)絡(luò)壓力幀時立即起效,無損隔離。最后起效的是流量控制,源設(shè)備可能因為軟件故障導(dǎo)致超發(fā)數(shù)據(jù),這些數(shù)據(jù)在訂閱范圍內(nèi),內(nèi)容不重復(fù)但幀率奇高,甚至可能超出了接收設(shè)備處理器的負載能力,因此流量控制策略在最后環(huán)節(jié)生效。按照訂閱過濾、風(fēng)暴抑制以及流量控制三重策略順序起效,在不同維度實施網(wǎng)絡(luò)壓力過濾,組成完整的網(wǎng)絡(luò)壓力防護方案。本方案對異常流量特征進行數(shù)學(xué)抽象,據(jù)此指導(dǎo)在FPGA 器件上實現(xiàn)適用于多種異常流量混雜情況的網(wǎng)絡(luò)壓力防護方案,克服了過濾異常流量同時保持其他正常數(shù)據(jù)接收的難題,解決了網(wǎng)絡(luò)壓力環(huán)境下超大流量與有限的處理器資源之間的矛盾。
在具體實施過程中,需要針對智能變電站網(wǎng)絡(luò)通信業(yè)務(wù)的特點,對第1 節(jié)中所述的網(wǎng)絡(luò)壓力防護方法做進一步細化,并使其適合在二次設(shè)備上規(guī)?;渴?。
對于智能站中的SV 以及GOOSE 類網(wǎng)絡(luò)數(shù)據(jù)幀,邏輯鏈路信息為以太網(wǎng)目的地址(DestAddr)+以太網(wǎng)幀類型(Type)+APPID 的組合;對于其他如PTP1588 等不包含APPID 字段的網(wǎng)絡(luò)幀,APPID 字段固定為0 以維持邏輯鏈路信息的格式統(tǒng)一性,即:
目前智能變電站中存在組網(wǎng)和點對點2 種主流網(wǎng)絡(luò)拓撲。組網(wǎng)模式簡化了網(wǎng)絡(luò)拓撲,但其數(shù)據(jù)流更為復(fù)雜。網(wǎng)絡(luò)壓力防護的訂閱過濾機制必須適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境,應(yīng)考慮并支持如下特性:要求支持識別智能變電站內(nèi)網(wǎng)絡(luò)幀的協(xié)議二次封裝。訂閱過濾所需要的字段包括邏輯鏈路信息,這部分內(nèi)容一般位于以太網(wǎng)幀的固定位置。然而,以太網(wǎng)幀在傳輸過程中可能會進行二次封裝,如添加/刪除VLAN(0×8100)字段,或者在網(wǎng)絡(luò)幀進入IEC 62439 規(guī)范中所定義冗余網(wǎng)絡(luò)時,會添加PRP(0×88FB)/HSR(0×892F)標簽,這些標簽字段插入在原以太網(wǎng)幀類型的位置,導(dǎo)致邏輯鏈路信息在網(wǎng)絡(luò)報文中的位置發(fā)生變化,訂閱過濾功能需要能自動識別此類變化。此外,也需要考慮訂閱過濾行為的效率,F(xiàn)PGA 器件支持并發(fā)執(zhí)行,合理的流水線設(shè)計可以使其在一個時鐘周期內(nèi)完成1 條訂閱信息的檢索和比較。當(dāng)前主流的FPGA 器件均能穩(wěn)定地工作在100 MHz 甚至更高的驅(qū)動時鐘之下,百兆以太網(wǎng)最短的幀間隔約為5 μs,可以支持近500 條訂閱信息檢索,滿足絕大部分二次設(shè)備的訂閱數(shù)量需要。因此,以FPGA 作為網(wǎng)絡(luò)協(xié)處理器執(zhí)行訂閱過濾是適合且高效的。
網(wǎng)絡(luò)內(nèi)設(shè)備均正常運行時,智能站網(wǎng)絡(luò)中出現(xiàn)完全相同的數(shù)據(jù)幀的概率極低(根據(jù)SV 的編碼規(guī)則,任意控制塊在一個序號(Smp_Cnt)循環(huán)周期(1 s)內(nèi)不可能出現(xiàn)2 個完全相同的報文[10]);GOOSE 也有類似的編碼規(guī)則(StNum 和SqNum)[11]。當(dāng)網(wǎng)絡(luò)拓撲錯誤或者出現(xiàn)網(wǎng)絡(luò)硬件異常時[12],則可能產(chǎn)生無限復(fù)制的重復(fù)報文。在執(zhí)行風(fēng)暴抑制時,需要考慮以下因素:首先,智能站過程層采用AB 同源雙網(wǎng)的情況下,不同物理網(wǎng)口到達的網(wǎng)絡(luò)報文可能內(nèi)容完全相同,因此需要針對每個物理網(wǎng)口獨立實施風(fēng)暴抑制;其次,經(jīng)過傳輸環(huán)節(jié)后,網(wǎng)絡(luò)風(fēng)暴報文可能與正常報文交替到達,因此僅在相鄰報文中檢查重復(fù)性效果有限,需要在一個實時更新的幀隊列中實現(xiàn)抑制措施;最后,以太網(wǎng)報文合法長度范圍從64~1 522 B(即幀在Z 軸上的取值范圍可以為0~28×1522-1),如此規(guī)模的字長,無論是軟件或FPGA 直接計算ΔZ 都不可行。因此,需要通過散列算法將以太網(wǎng)報文完整內(nèi)容映射為一個取值范圍有限的值,即對Z坐標的比較算法進行簡化。顯而易見,散列算法沒有漏檢概率(相同序列計算得到不同散列值),但存在誤檢可能(不同的序列算出相同散列值)。CRC64 是簡化Z 坐標的合適算法。任意二進制序列的CRC64 結(jié)果可能有264種可能性,百兆以太網(wǎng)中最短幀時間為5.76 μs,按照平均概率計算,出現(xiàn)一次碰撞需要3 369 268 年[13],這種誤檢概率在工程上是完全可以接受的。實際的FPGA 網(wǎng)絡(luò)協(xié)處理器按如下流程操作:計算經(jīng)過訂閱過濾的幀的CRC(冗余循環(huán)檢驗),將不定長序列轉(zhuǎn)換為定長64 bit 散列值,并在一個指定深度(如64)的散列值序列中查找是否有重復(fù)元素,如發(fā)現(xiàn)有重復(fù)元素,即將新接收報文識別為風(fēng)暴報文直接丟棄。這種風(fēng)暴檢測方法實現(xiàn)簡單,能識別連續(xù)64 幀內(nèi)的任意2 個重復(fù)報文,當(dāng)重復(fù)報文間隔超過了64 幀,意味著風(fēng)暴流量占流量的比重已經(jīng)很小,對系統(tǒng)的不利影響可以忽略。
智能變電站中,過程層主要業(yè)務(wù)的幀率表現(xiàn)出有限的可預(yù)測性,如SV 的4 000 幀率以及GOOSE 幀2/2/4/8 ms 的發(fā)送間隔。站控層數(shù)據(jù)一般都基于IP(互聯(lián)網(wǎng)協(xié)議),支撐了諸如TCP/UDP(傳輸控制協(xié)議/用戶數(shù)據(jù)報協(xié)議)等高級網(wǎng)絡(luò)協(xié)議,此類報文在時間軸T 上的分布并無明顯特征。進一步地,不同邏輯鏈路(Y 值)對應(yīng)于設(shè)備不同的子功能,其可靠性要求也不盡相同,不允許因為某一類幀的異常流量而影響其他非相關(guān)的應(yīng)用功能。因此,流量控制機制作為訂閱過濾以及風(fēng)暴抑制措施的補充,首先應(yīng)能根據(jù)幀的邏輯鏈路(Y)來區(qū)分不同的流控條目,并按條目獨立地進行流量控制;其次,不同數(shù)據(jù)類型的預(yù)期幀率不同,因此邏輯鏈路的流控閾值需要能獨立設(shè)置;最后,網(wǎng)絡(luò)數(shù)據(jù)幀從源設(shè)備發(fā)送至接收設(shè)備的過程中,在交換機域內(nèi)轉(zhuǎn)發(fā)時可能會造成毫秒級的報文間隔抖動[14]。流控閾值必須能體現(xiàn)為一個時間窗內(nèi)的統(tǒng)計結(jié)果以適應(yīng)抖動并保留一定的裕量。綜上,實際應(yīng)用中,F(xiàn)PGA 網(wǎng)絡(luò)協(xié)處理器將長度(P)的時間窗內(nèi)的接收幀數(shù)(N)作為閾值,這個閾值要高于正常情況下報文間隔抖動造成的時間窗內(nèi)報文數(shù)量增加的最大值,且低于處理器在時間窗內(nèi)能處理的報文最大數(shù)量,以保護軟件性能不被耗盡。如第1 節(jié)對GOOSE 重發(fā)機制的描述,考慮其自有的間隔不確定度并預(yù)留一定裕度,可以將這個閾值設(shè)置為:P=10 ms,N=8 幀。SV 控制塊的幀率基本固定,考慮必要的裕度,其閾值設(shè)置為:P=1 ms,N=6 幀。對于站控層流量,一般由帶操作系統(tǒng)的CPU 負責(zé)處理,不影響裝置的核心功能,因此可以將所有類型數(shù)據(jù)統(tǒng)一為1 個條目且設(shè)置較為寬松的閾值。如第1 節(jié)所述,流控措施的控制對象是幀率異常、格式正確且已訂閱的幀,協(xié)處理器無法精確判斷該幀的內(nèi)容是否有效,但能通過流控閾值以及按條目獨立流控的措施,即使發(fā)生“未知原因”導(dǎo)致的網(wǎng)絡(luò)壓力,也能保證透過流控到達應(yīng)用層的報文不足以耗盡處理器資源,從而達到了“盡力”隔離網(wǎng)絡(luò)壓力的目的。
設(shè)計一個針對二次設(shè)備網(wǎng)絡(luò)壓力防護能力的實驗系統(tǒng),來驗證本文所述3 種措施的效果。實驗系統(tǒng)如圖2 所示。
圖2 網(wǎng)絡(luò)壓力防護效果實驗系統(tǒng)
合智一體通過交換機向被測設(shè)備注入訂閱的GOOSE 與SV 流量,網(wǎng)絡(luò)分析儀通過交換機注入網(wǎng)絡(luò)壓力流量。網(wǎng)絡(luò)壓力分為非訂閱流量、風(fēng)暴流量和雪崩流量(超過正常幀率的訂閱的非重復(fù)幀)3 種。由于網(wǎng)絡(luò)壓力造成后果與實際設(shè)備的應(yīng)用程序細節(jié)緊密相關(guān),因此為了簡化實驗環(huán)境,易于獲取量化的比較結(jié)果,本實驗將應(yīng)用程序?qū)W(wǎng)絡(luò)報文的處理簡化為對網(wǎng)絡(luò)報文內(nèi)容的簡單累加求和,被測設(shè)備在定時器任務(wù)中處理當(dāng)前周期內(nèi)接收到的全部數(shù)據(jù)。依次對被測設(shè)備施加如表1 所示的各種網(wǎng)絡(luò)壓力流量,分別在開啟或關(guān)閉網(wǎng)絡(luò)壓力防護措施的情況下,記錄被測設(shè)備處理器執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)處理的時間。
表1 實驗結(jié)果
實驗結(jié)果表明:在不開啟網(wǎng)絡(luò)壓力防護措施的情況下,設(shè)備的處理時間隨著接收到的總流量的增加而增加;而在開啟網(wǎng)絡(luò)壓力防護措施后,非訂閱流量以及風(fēng)暴流量直接被識別為不需要的數(shù)據(jù)直接丟棄,無論流量多大,均不會對設(shè)備的處理時間造成影響。當(dāng)輸入的網(wǎng)絡(luò)壓力為雪崩流量、在沒有達到流控閾值時,設(shè)備處理時間隨流量遞增而增加,網(wǎng)絡(luò)協(xié)處理器正常接收數(shù)據(jù)并將是否采信該數(shù)據(jù)的決定權(quán)交給應(yīng)用軟件;當(dāng)超過流控閾值時,流控起效關(guān)斷了當(dāng)前邏輯鏈路的接收,因此總的處理時間恢復(fù)至不施加網(wǎng)絡(luò)壓力時的初始水平。實驗結(jié)果驗證了網(wǎng)絡(luò)壓力防護方法的有效性。
網(wǎng)絡(luò)通信可靠性對于智能變電站來說是系統(tǒng)安全的關(guān)鍵因素,因此增強二次設(shè)備網(wǎng)絡(luò)壓力防護能力意義重大。本文體系化地闡述了網(wǎng)絡(luò)壓力防護的方法與流程,并將其原理映射為四維空間中諸元的數(shù)學(xué)關(guān)系。采用本文所述防護措施的二次設(shè)備,可以在處理器的承受能力范圍內(nèi)最大限度地隔離異常流量,保留正常數(shù)據(jù),顯著提高設(shè)備在復(fù)雜網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)壓力防護能力,為智能變電站的安全可靠運行奠定堅實的基礎(chǔ)。