文 杰, 陽小華, 汪琳霞
(南華大學電氣工程學院, 湖南 衡陽 421001)
心跳包在核電儀控網絡安全性設計中的研究
文 杰, 陽小華, 汪琳霞
(南華大學電氣工程學院, 湖南 衡陽 421001)
隨著核電儀控網絡對安全性要求越來越高,提出了一種心跳包模型。在不降低通信速度和增加網絡負擔的情況下,利用接收到的心跳包數據,判斷網絡節點間的連接狀況,可提高總線網絡通信的安全性。通過對儀控網絡進行測試表明,該模型能夠檢測出標準IEC61784-3中規定的多種威脅核電儀控網絡安全的故障,有效提升了網絡的安全性。
核電; 儀控網絡; 心跳包; 安全性; 智能電網; 網絡節點; 通信速度;CAN總線;GPRS
安全的通信網絡是核電數字化儀控系統,特別是核電保護系統的重要組成部分。心跳包技術是提高核電儀控網絡安全性的一種重要手段。儀控系統可以通過分析含有心跳包數據的報文,對核電儀控網絡的安全性進行檢測和判斷,然后采取請求重新連接或報警手段,提醒用戶檢修網絡來保證儀控系統的安全運行。心跳包技術,是收發心跳數據包(簡稱心跳包)的機制。心跳包是遵循心跳數據包協議定義的周期性、循環發送的數據包[1-4]。目前,心跳包技術已經被廣泛應用于互聯網的通信服務[5-6]、網絡平臺的故障檢測、基于GPRS的系統[7-8]網絡負載均衡[9-10]、服務系統雙機熱備[11-12]以及智能電網數據傳輸過程[13-15]。
本文設計了一種改進的心跳包機制,即在核電儀控網絡中的相互傳輸的數據報文中直接添加心跳字段。這種機制可以在不降低儀控網絡傳輸速度的情況下,檢測儀控網絡中各個節點的通信,同時還可以保障網絡中傳輸數據報文的安全性與確定性。最后,在某核電儀控系統科研測試平臺中,對運用該機制的高可靠網絡通信協議進行測試。試驗結果表明,這種改進的心跳機制能夠檢測出標準《IEC61784-3工業通信網絡協議集——第3部分:現場總線功能安全—一般規則和協議定義》中規定的為滿足安全通信要求所必須檢測出的幾種常見故障,切實提高了儀控網絡的安全性。
安全性是指不發生事故的能力,是判斷、評價系統性能的一個重要指標。它表明系統在規定的條件下、規定的時間內不發生事故,完成規定功能的能力。其中事故指的是使一項正常進行的活動中斷,并造成人員傷亡、職業病、財產損失或環境損害的意外事件。
1.1 核電儀控系統安全性要求
分析核電控制系統安全性時,必須考慮兩種重要的失效模式:安全失效與危險失效。安全失效是不會使系統處于潛在的危險狀態或功能故障狀態的失效,核電控制系統安全失效一般為誤動。危險失效是可能使系統潛在地處于某種危險或功能喪失狀態的失效,核電控制系統危險失效一般為拒動[16]。因此,要保障核電儀控網絡的安全性就是要防止由于網絡本身的原因導致這兩種失效的情況出現。
1.2 心跳包在安全性中的作用
心跳包機制是實現網絡高安全性和高可靠性,保證工業控制設備的正常運行和服務不中斷的常用技術。傳統的心跳包機制就是將具有數據檢測或簡單控制功能的設備作為通信網絡中的從節點。這些從節點每隔固定時間發送一個特定心跳數據包信息給具備核心控制器功能的主節點,主節點收到后回復一個相應信息。如果主節點在指定時間內沒有收到相應從節點信息,則認為該從節點設備處于離線狀態;如果從節點在指定時間內沒有收到主節點返回的信息,則認為網絡異常中斷,并采取相應的措施[16-19]。
這種方式倘若直接應用在儀控網絡中,不但會使得幀的發送等待時間增加、網絡效率降低,而且無法保障網絡中其他報文的準確性與有效性。這些缺陷將可能導致儀控系統出現安全失效和危險失效的風險,因此需要作一定的改進,即在數據幀中直接添加心跳字段。從節點在發送數據(包括仲裁失敗重發)時,填充心跳信息。主節點可在接收時,判斷心跳字段在從節點發送過程中的唯一性及連續性,從而提高網絡的確定性、實時性。另外,在數據幀中增加心跳字段相當于給發送的數據幀編寫序號,可以避免主節點和從節點設備因發生故障或遭受攻擊而重復發送同一幀或無用幀造成網絡帶寬浪費,提高了系統的安全性。這種經過改進的心跳包機制正好可以檢測出工業網絡通信標準IEC61784-3中規定的報文重復、丟失、插入和時序混亂等影響儀控網絡安全性的故障,切實提高了核電儀控網絡的安全性。
2.1 心跳包檢錯機制設計
由于測試平臺所限,基于改進心跳機制的通信協議建立在CAN總線基礎之上,傳統的CAN總線通信協議采用帶仲裁機制的載波偵聽多路訪問(carriersensemultipleaccuess,CSMA)通信模式,但這種方式無法滿足通信的可靠性和確定性。因此,在CAN總線中,采用基于連接的主/從通信模式。CAN總線的心跳包報文結構如圖1所示。

幀起始仲裁場控制場數據場CRC場應答場幀結尾
圖1 心跳包報文結構圖
Fig.1Heartbeatpacketstructure
在本設計中,使用CAN總線擴展幀中的仲裁場的擴展標志符的17∶15位共3bit作為心跳字段。但是由于平臺限制,底層驅動暫無法修改,而將心跳包放入標準幀數據場第一個字節的7∶5位,作為心跳字段。該字段初始值為0,每發送一個數據包,就將該字段值加1。當加至7(即3bit為111)時,發送的心跳字段重新從0計數。CAN總線的數據場為8B。
在這8個字節中,數據區第0字節用作信息的頭部,補充心跳字段和總線冗余標志位;如果傳輸數據超過了數據區的長度,需采用分段方式將數據用多個數據包發送。因此,此時數據區除了I/O信息頭部外,還需增加第1字節作為分段標志,補充分段類型和分段計數器。其中,分段類型用于表明該分段是第一個分段、中間段還是最后一個分段,其值依次為0、1、2。分段計數器是每發送一個相鄰的分段,該值就在下一個分段自動加1,以防止分段遺失或者順序錯亂;其最大支持64個分段。數據場的最后2個字節是16位CRC校驗。雖然CAN總線本身在鏈路層自帶CRC校驗,但是經過2次CRC校驗,可以極有效地避免數據在傳輸過程中可能出現的錯誤,而且兼顧傳輸的各個流程。雖然CRC校驗會損失部分實時性,但可以大大提高傳輸的可靠性。
2.2 心跳模型實現
按照上述心跳機制與心跳包報文設計的通信協議,主要應用于核電儀控網絡。整個核電儀控系統網絡結構如圖2所示。

圖2 系統網絡結構圖
整個網絡分為3層。其中,最接近現場的是設備層,改進的心跳包協議也應用于此層。此外,考慮到故障隔離原則,儀控網絡設計了安全區與非安全區。安全區主要負責核電保護系統的監視和控制,而且其控制層內設計了備用控制器,以防因整個系統失效而對系統關鍵設備失去控制。非安全區主要負責核電系統的日常控制與維護。
按照前文闡述的心跳機制與心跳包報文設計通信協議,當主節點與從節點完成各項總線通信初始化流程后,主節點與從節點就可以交換現場監測數據和各種控制命令。心跳機制流程如圖3所示。

圖3 心跳機制流程圖
從節點(即從站)在處理輪詢響應的過程中,會按照嚴格的順序序號對心跳字段賦值;主站在接收到輪詢響應之后,同樣會按照嚴格的順序序號檢查心跳字段:若正確,則進行下一步操作;若錯誤,則報錯。連續3次報錯之后,主站認為該從站故障,不再對該從站發送輪詢命令。
標準IEC61784-3規定了影響儀控網絡安全性的9種通信故障,其中心跳包機制能夠檢測出重復(unintendedrepetition)、丟失(loss)、報文插入(insertion)和時序混亂(incorrectsequence)這幾類故障。本文通過在某核電儀控系統科研測試平臺的核電儀控網絡中采用包含改進心跳包機制的通信協議,并通過測試其是否能檢測以上幾種故障,以證明心跳包機制在提高核電儀控網絡方面的作用。下面對能檢測的4種故障進行測試和分析。
3.1 報文重復
報文重復故障是指由于系統錯誤、故障或受到干擾,導致老舊、過時的報文在錯誤的時間段重復發送。其測試原理是通過重復發送同一幀報文,心跳信號無變化,可通過心跳信號機制檢測出該故障。為了獲取總線數據,在總線上安裝CAN總線分析儀表——CANcaseXL接口卡。當測試開始時,啟動CAN總線監控軟件CANoe偵聽總線,獲取測試數據。
根據通信協議,數據報文中數據場第一個字節的bit7∶bit5為心跳字段。若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數據可以看出,實際測試過程中發送到總線上的報文序號依次是0x00、0x00、0x00、0x00,即從站在正確響應第一幀序號0報文之后,又重復響應了3幀序號0報文。
此時,從主站的顯示屏顯示的信息可以看出,序號0報文正確接收,而后續的3幀可由心跳信號機制檢測出故障報文。
3.2 報文丟失
報文丟失故障是由于系統錯誤、故障或受到干擾,導致報文沒有被接收或確認而導致的錯誤。由于丟失一幀報文會造成中間心跳序號不連續,所以可通過心跳信號機制檢測出該故障。
報文丟失測試數據如表1所示。

表1 報文丟失測試數據
在CANoe偵聽的報文數據中,標志符“0x40D”的報文為主站的輪詢命令報文,標志符“0x3C1”的報文為從站的輪詢響應報文。由于輪詢響應報文中數據場第一個字節的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數據可以看出,實際測試過程中發送到總線上的報文序號依次是0x00、0x20、0x40、0x60、0xA0、0xC0、0xE0,即從站在正確響應序號0、1、2、3報文之后,丟失了序號4報文,直接響應了序號5報文。
此時,從主站顯示屏顯示的信息可以看出,序號0、1、2、3報文正確接收,而后續的序號5、6、7報文由于心跳信號不連續,可由心跳信號機制檢測出故障報文。
3.3 報文插入
報文插入故障是由于系統錯誤、故障或受到干擾,導致未期望的或未知的源實體報文插入到了總線。其測試原理是由于插入一幀報文,造成中間心跳序號不連續模擬故障,可通過心跳信號機制檢測出該故障。
報文插入測試數據如表2所示。

表2 報文插入測試數據
CANoe偵聽的報文數據中,標志符“0x40D”的報文為主站的輪詢命令報文,標志符“0x3C1”的報文為從站的輪詢響應報文。由于輪詢響應報文中數據場第一個字節的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……從CANoe偵聽的報文數據可以看出,實際測試過程中發送到總線上的報文序號依次是0x00、0x20、0x40、0xE0、0x60、0x80,即從站在正確響應序號0、1、2報文之后,插入了一幀序號7報文,再依次響應序號3、4報文。
從主節點的顯示屏顯示的信息可以看出,序號0、1、2報文正確接收,而后續的序號7、3、4報文由于心跳信號不連續,可由心跳信號機制檢測出故障報文。
3.4 時序混亂
時序混亂是指由于系統錯誤、故障或受到干擾,導致源節點預先確定的報文發送順序不正確。該故障可以通過模擬心跳序號混亂,造成中間心跳序號不連續實現,可通過心跳信號機制檢測出該故障。
由于輪詢響應報文中數據場第一個字節的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數據可以看出,實際測試過程中發送到總線上的報文序號依次是0x00、0x20、0x40、0x80、0x60、0xA0、0xC0、0xE0,即從站在正確響應序號0、1、2報文之后,先是響應了序號4報文,再響應序號3報文。
此時,由主節點相連屏幕獲取的信息可知,序號0、1、2報文正確接收,而后續的序號4、5、6報文由于心跳信號不連續,可由心跳信號機制檢測出故障報文。
經過上述測試,證明了改進的心跳包機制可以很好地檢測出影響核電儀控網絡安全性的4種故障。
本文研究了心跳包技術的應用對提高核電儀控網絡安全性的作用,提出了一個改進心跳機制的心跳模型,并將其應用于基于某核電網絡測試平臺的核電儀控網絡中。對測試結果的分析表明,基于改進心跳機制的心跳模型能夠很好地檢測出影響儀控網絡安全性的4種故障,提高了儀控網絡的安全性。該模型的數據協議具有很好的擴展性,在其他需要高安全性的工業控制網絡中也具有很好的移植性和適用性。
[1]LIFF,YUXZ,WUG.Designandimplementationofhighavailabilitydistributedsystembasedonmulti-levelheart-beatprotocol[C]//ProceedingsoftheInternationalConferenceonControl,AutomationandSystemsEngineering,2009:83-87.
[2]HOUZH,HUANGYX,ZHENGSQ.Designandimplemen-tationofheartbeatinmulti-machineenvironment[C]//Proceedingsofthe17thInternationalConferenceonAdvancedInformationNetworkingandApplications,2003:583-586.
[3]STRIEGELA,MANIMARANG.Edge-basedfaultdetectioninadiffservnetwork[C]//ProceedingsoftheInternationalConferenceonDependableSystemsandNetworks,2002:79-88.
[4]FITZPATRICKJ,MURPHYS,MURPHYJ.AnapproachtotransportlayerhandoverofVoIPoverWLAN[C]//Proceedingsofthe3rdIEEEConsumerCommunicationsandNetworkingConference,2006:1093-1097.
[5] 周奇才,張慧群,熊肖磊,等.基于Socket網絡通信中C#心跳包實現方法的研究[J].機電一體化,2014,8(10):11-19.
[6] 鄢鋒,桂衛華,胡志坤,等.一種網絡節點通信控制的心跳模型[J].信息與控制,2008,37(5):525-528.
[7] 田小輝,李明遠,田昕.基于GPRS的遠程無線透傳終端系統的設計與實現[J].現代電子技術,2005,28(4):97-99.
[8] 許振文.基于GPRS和MCGS的SCADA系統的研究與實現[D].北京:中國農業大學,2005.
[9] 侯宗浩,董小社,鄭守淇,等.一種支持負載均衡的多機心跳模型[J].小型微型計算機系統,2005,26(1):1l-14.
[10]鄭在賓,金海.有TCP連接容錯功能的網絡負載平衡調度系統[J].華中科技大學學報(自然科學版),2003,31(2):17-19.
[11]趙巍,胡術,韓學為.空管系統中雙機管理的設計與實現[J].中國民航飛行學院學報,2005,15(6):32-35.
[12]吳江嬌,高文洪.采用智能單元式控制臺實現計算機聯鎖系統的人機交互[J].北京交通大學學報(自然科學版),2004,28(6):107-110.
[13]薛晨,黎燦兵,黃小慶,等.智能變電站信息一體化應用[J].電力自動化設備,2011,31(7):110-113.
[14]郭創新,王林青,曹一家.基于移動智能體多級電力控制中心互聯通信平臺模型研究[J].電工技術學報,2006,21(4):75-81.
[15]馬韜韜,李珂,朱少華,等.智能電網信息和通信技術關鍵問題探討[J].電力自動化設備,2010,30(5):87-91.
[16]李熊,程康,張春雷,等.淺談核電儀控系統中安全性與可靠性的關系及區別[J].自動化博覽,2013,12(8):61-63.
[17]郭興吉,李淑珍,文永革.帶心跳功能的連接池技術研究[J].現代計算機,2015,4(3):16-18.
[18]鄢鋒,桂衛華,胡志坤,等.基于Socket的整流裝置遠程監控系統[J].計算機工程,2008,34(5):243-245.
[19]胡志坤,何多昌,桂衛華,等.基于改進心跳包機制的整流遠程監控系統[J].計算機應用,2009,28(2):364-366.
ResearchonHeartbeatPacketAppliedintheSafetyDesignofNuclearPowerInstrumentControlNetwork
WENJie,YANGXiaohua,WANGLinxia
(CollegeofElectricalEngineering,UniversityofSouthChina,Hengyang421001,China)
Inordertomeetthesafetyrequirementsforinstrumentcontrolnetworkofnuclearpowerbecomehigherandhigher,aheartbeatmodelisproposed.Withoutsacrificingcommunicationspeedandnetworkburden,byusingthereceivedheartbeatdata,theconnectionconditionbetweennetworknodesisjudged,thesafetyofcommunicationofbusnetworkisimproved.Throughtestingtheinstrumentandcontrolnetwork,itisindicatedthatthismodelcandetectvariousfaultsspecifiedinthestandardofIRC61784-3,thatarethreateningthesecurityofinstrumentcontrolnetworkofnuclearpower,andeffectivelyenhancethesecurityofthenetwork.
Nuclearpower;Instrumentcontrolnetwork;Heartbeatpacket;Safety;Smartgrid;Networknode;Communicationspeed;CANfieldbus;GPRS
文杰(1983—),男,碩士,講師,主要從事機器人控制、工業總線通信、工業大系統控制優化的研究。E-mail:wenjie412@126.com。陽小華(通信作者),男,教授,博士生導師,主要研究領域為可信計算、核電站計算機控制系統縱深防御、網絡控制等。E-mail:xiaohua1963@foxmail.com。
TH86;TP
ADOI: 10686/j.cnki.issn1000-0380.201701015
修改稿收到日期:2016-07-20