文 杰, 陽小華, 汪琳霞
(南華大學電氣工程學院, 湖南 衡陽 421001)
心跳包在核電儀控網(wǎng)絡(luò)安全性設(shè)計中的研究
文 杰, 陽小華, 汪琳霞
(南華大學電氣工程學院, 湖南 衡陽 421001)
隨著核電儀控網(wǎng)絡(luò)對安全性要求越來越高,提出了一種心跳包模型。在不降低通信速度和增加網(wǎng)絡(luò)負擔的情況下,利用接收到的心跳包數(shù)據(jù),判斷網(wǎng)絡(luò)節(jié)點間的連接狀況,可提高總線網(wǎng)絡(luò)通信的安全性。通過對儀控網(wǎng)絡(luò)進行測試表明,該模型能夠檢測出標準IEC61784-3中規(guī)定的多種威脅核電儀控網(wǎng)絡(luò)安全的故障,有效提升了網(wǎng)絡(luò)的安全性。
核電; 儀控網(wǎng)絡(luò); 心跳包; 安全性; 智能電網(wǎng); 網(wǎng)絡(luò)節(jié)點; 通信速度;CAN總線;GPRS
安全的通信網(wǎng)絡(luò)是核電數(shù)字化儀控系統(tǒng),特別是核電保護系統(tǒng)的重要組成部分。心跳包技術(shù)是提高核電儀控網(wǎng)絡(luò)安全性的一種重要手段。儀控系統(tǒng)可以通過分析含有心跳包數(shù)據(jù)的報文,對核電儀控網(wǎng)絡(luò)的安全性進行檢測和判斷,然后采取請求重新連接或報警手段,提醒用戶檢修網(wǎng)絡(luò)來保證儀控系統(tǒng)的安全運行。心跳包技術(shù),是收發(fā)心跳數(shù)據(jù)包(簡稱心跳包)的機制。心跳包是遵循心跳數(shù)據(jù)包協(xié)議定義的周期性、循環(huán)發(fā)送的數(shù)據(jù)包[1-4]。目前,心跳包技術(shù)已經(jīng)被廣泛應(yīng)用于互聯(lián)網(wǎng)的通信服務(wù)[5-6]、網(wǎng)絡(luò)平臺的故障檢測、基于GPRS的系統(tǒng)[7-8]網(wǎng)絡(luò)負載均衡[9-10]、服務(wù)系統(tǒng)雙機熱備[11-12]以及智能電網(wǎng)數(shù)據(jù)傳輸過程[13-15]。
本文設(shè)計了一種改進的心跳包機制,即在核電儀控網(wǎng)絡(luò)中的相互傳輸?shù)臄?shù)據(jù)報文中直接添加心跳字段。這種機制可以在不降低儀控網(wǎng)絡(luò)傳輸速度的情況下,檢測儀控網(wǎng)絡(luò)中各個節(jié)點的通信,同時還可以保障網(wǎng)絡(luò)中傳輸數(shù)據(jù)報文的安全性與確定性。最后,在某核電儀控系統(tǒng)科研測試平臺中,對運用該機制的高可靠網(wǎng)絡(luò)通信協(xié)議進行測試。試驗結(jié)果表明,這種改進的心跳機制能夠檢測出標準《IEC61784-3工業(yè)通信網(wǎng)絡(luò)協(xié)議集——第3部分:現(xiàn)場總線功能安全—一般規(guī)則和協(xié)議定義》中規(guī)定的為滿足安全通信要求所必須檢測出的幾種常見故障,切實提高了儀控網(wǎng)絡(luò)的安全性。
安全性是指不發(fā)生事故的能力,是判斷、評價系統(tǒng)性能的一個重要指標。它表明系統(tǒng)在規(guī)定的條件下、規(guī)定的時間內(nèi)不發(fā)生事故,完成規(guī)定功能的能力。其中事故指的是使一項正常進行的活動中斷,并造成人員傷亡、職業(yè)病、財產(chǎn)損失或環(huán)境損害的意外事件。
1.1 核電儀控系統(tǒng)安全性要求
分析核電控制系統(tǒng)安全性時,必須考慮兩種重要的失效模式:安全失效與危險失效。安全失效是不會使系統(tǒng)處于潛在的危險狀態(tài)或功能故障狀態(tài)的失效,核電控制系統(tǒng)安全失效一般為誤動。危險失效是可能使系統(tǒng)潛在地處于某種危險或功能喪失狀態(tài)的失效,核電控制系統(tǒng)危險失效一般為拒動[16]。因此,要保障核電儀控網(wǎng)絡(luò)的安全性就是要防止由于網(wǎng)絡(luò)本身的原因?qū)е逻@兩種失效的情況出現(xiàn)。
1.2 心跳包在安全性中的作用
心跳包機制是實現(xiàn)網(wǎng)絡(luò)高安全性和高可靠性,保證工業(yè)控制設(shè)備的正常運行和服務(wù)不中斷的常用技術(shù)。傳統(tǒng)的心跳包機制就是將具有數(shù)據(jù)檢測或簡單控制功能的設(shè)備作為通信網(wǎng)絡(luò)中的從節(jié)點。這些從節(jié)點每隔固定時間發(fā)送一個特定心跳數(shù)據(jù)包信息給具備核心控制器功能的主節(jié)點,主節(jié)點收到后回復(fù)一個相應(yīng)信息。如果主節(jié)點在指定時間內(nèi)沒有收到相應(yīng)從節(jié)點信息,則認為該從節(jié)點設(shè)備處于離線狀態(tài);如果從節(jié)點在指定時間內(nèi)沒有收到主節(jié)點返回的信息,則認為網(wǎng)絡(luò)異常中斷,并采取相應(yīng)的措施[16-19]。
這種方式倘若直接應(yīng)用在儀控網(wǎng)絡(luò)中,不但會使得幀的發(fā)送等待時間增加、網(wǎng)絡(luò)效率降低,而且無法保障網(wǎng)絡(luò)中其他報文的準確性與有效性。這些缺陷將可能導致儀控系統(tǒng)出現(xiàn)安全失效和危險失效的風險,因此需要作一定的改進,即在數(shù)據(jù)幀中直接添加心跳字段。從節(jié)點在發(fā)送數(shù)據(jù)(包括仲裁失敗重發(fā))時,填充心跳信息。主節(jié)點可在接收時,判斷心跳字段在從節(jié)點發(fā)送過程中的唯一性及連續(xù)性,從而提高網(wǎng)絡(luò)的確定性、實時性。另外,在數(shù)據(jù)幀中增加心跳字段相當于給發(fā)送的數(shù)據(jù)幀編寫序號,可以避免主節(jié)點和從節(jié)點設(shè)備因發(fā)生故障或遭受攻擊而重復(fù)發(fā)送同一幀或無用幀造成網(wǎng)絡(luò)帶寬浪費,提高了系統(tǒng)的安全性。這種經(jīng)過改進的心跳包機制正好可以檢測出工業(yè)網(wǎng)絡(luò)通信標準IEC61784-3中規(guī)定的報文重復(fù)、丟失、插入和時序混亂等影響儀控網(wǎng)絡(luò)安全性的故障,切實提高了核電儀控網(wǎng)絡(luò)的安全性。
2.1 心跳包檢錯機制設(shè)計
由于測試平臺所限,基于改進心跳機制的通信協(xié)議建立在CAN總線基礎(chǔ)之上,傳統(tǒng)的CAN總線通信協(xié)議采用帶仲裁機制的載波偵聽多路訪問(carriersensemultipleaccuess,CSMA)通信模式,但這種方式無法滿足通信的可靠性和確定性。因此,在CAN總線中,采用基于連接的主/從通信模式。CAN總線的心跳包報文結(jié)構(gòu)如圖1所示。
幀起始仲裁場控制場數(shù)據(jù)場CRC場應(yīng)答場幀結(jié)尾
圖1 心跳包報文結(jié)構(gòu)圖
Fig.1Heartbeatpacketstructure
在本設(shè)計中,使用CAN總線擴展幀中的仲裁場的擴展標志符的17∶15位共3bit作為心跳字段。但是由于平臺限制,底層驅(qū)動暫無法修改,而將心跳包放入標準幀數(shù)據(jù)場第一個字節(jié)的7∶5位,作為心跳字段。該字段初始值為0,每發(fā)送一個數(shù)據(jù)包,就將該字段值加1。當加至7(即3bit為111)時,發(fā)送的心跳字段重新從0計數(shù)。CAN總線的數(shù)據(jù)場為8B。
在這8個字節(jié)中,數(shù)據(jù)區(qū)第0字節(jié)用作信息的頭部,補充心跳字段和總線冗余標志位;如果傳輸數(shù)據(jù)超過了數(shù)據(jù)區(qū)的長度,需采用分段方式將數(shù)據(jù)用多個數(shù)據(jù)包發(fā)送。因此,此時數(shù)據(jù)區(qū)除了I/O信息頭部外,還需增加第1字節(jié)作為分段標志,補充分段類型和分段計數(shù)器。其中,分段類型用于表明該分段是第一個分段、中間段還是最后一個分段,其值依次為0、1、2。分段計數(shù)器是每發(fā)送一個相鄰的分段,該值就在下一個分段自動加1,以防止分段遺失或者順序錯亂;其最大支持64個分段。數(shù)據(jù)場的最后2個字節(jié)是16位CRC校驗。雖然CAN總線本身在鏈路層自帶CRC校驗,但是經(jīng)過2次CRC校驗,可以極有效地避免數(shù)據(jù)在傳輸過程中可能出現(xiàn)的錯誤,而且兼顧傳輸?shù)母鱾€流程。雖然CRC校驗會損失部分實時性,但可以大大提高傳輸?shù)目煽啃浴?/p>
2.2 心跳模型實現(xiàn)
按照上述心跳機制與心跳包報文設(shè)計的通信協(xié)議,主要應(yīng)用于核電儀控網(wǎng)絡(luò)。整個核電儀控系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
整個網(wǎng)絡(luò)分為3層。其中,最接近現(xiàn)場的是設(shè)備層,改進的心跳包協(xié)議也應(yīng)用于此層。此外,考慮到故障隔離原則,儀控網(wǎng)絡(luò)設(shè)計了安全區(qū)與非安全區(qū)。安全區(qū)主要負責核電保護系統(tǒng)的監(jiān)視和控制,而且其控制層內(nèi)設(shè)計了備用控制器,以防因整個系統(tǒng)失效而對系統(tǒng)關(guān)鍵設(shè)備失去控制。非安全區(qū)主要負責核電系統(tǒng)的日??刂婆c維護。
按照前文闡述的心跳機制與心跳包報文設(shè)計通信協(xié)議,當主節(jié)點與從節(jié)點完成各項總線通信初始化流程后,主節(jié)點與從節(jié)點就可以交換現(xiàn)場監(jiān)測數(shù)據(jù)和各種控制命令。心跳機制流程如圖3所示。
圖3 心跳機制流程圖
從節(jié)點(即從站)在處理輪詢響應(yīng)的過程中,會按照嚴格的順序序號對心跳字段賦值;主站在接收到輪詢響應(yīng)之后,同樣會按照嚴格的順序序號檢查心跳字段:若正確,則進行下一步操作;若錯誤,則報錯。連續(xù)3次報錯之后,主站認為該從站故障,不再對該從站發(fā)送輪詢命令。
標準IEC61784-3規(guī)定了影響儀控網(wǎng)絡(luò)安全性的9種通信故障,其中心跳包機制能夠檢測出重復(fù)(unintendedrepetition)、丟失(loss)、報文插入(insertion)和時序混亂(incorrectsequence)這幾類故障。本文通過在某核電儀控系統(tǒng)科研測試平臺的核電儀控網(wǎng)絡(luò)中采用包含改進心跳包機制的通信協(xié)議,并通過測試其是否能檢測以上幾種故障,以證明心跳包機制在提高核電儀控網(wǎng)絡(luò)方面的作用。下面對能檢測的4種故障進行測試和分析。
3.1 報文重復(fù)
報文重復(fù)故障是指由于系統(tǒng)錯誤、故障或受到干擾,導致老舊、過時的報文在錯誤的時間段重復(fù)發(fā)送。其測試原理是通過重復(fù)發(fā)送同一幀報文,心跳信號無變化,可通過心跳信號機制檢測出該故障。為了獲取總線數(shù)據(jù),在總線上安裝CAN總線分析儀表——CANcaseXL接口卡。當測試開始時,啟動CAN總線監(jiān)控軟件CANoe偵聽總線,獲取測試數(shù)據(jù)。
根據(jù)通信協(xié)議,數(shù)據(jù)報文中數(shù)據(jù)場第一個字節(jié)的bit7∶bit5為心跳字段。若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數(shù)據(jù)可以看出,實際測試過程中發(fā)送到總線上的報文序號依次是0x00、0x00、0x00、0x00,即從站在正確響應(yīng)第一幀序號0報文之后,又重復(fù)響應(yīng)了3幀序號0報文。
此時,從主站的顯示屏顯示的信息可以看出,序號0報文正確接收,而后續(xù)的3幀可由心跳信號機制檢測出故障報文。
3.2 報文丟失
報文丟失故障是由于系統(tǒng)錯誤、故障或受到干擾,導致報文沒有被接收或確認而導致的錯誤。由于丟失一幀報文會造成中間心跳序號不連續(xù),所以可通過心跳信號機制檢測出該故障。
報文丟失測試數(shù)據(jù)如表1所示。
表1 報文丟失測試數(shù)據(jù)
在CANoe偵聽的報文數(shù)據(jù)中,標志符“0x40D”的報文為主站的輪詢命令報文,標志符“0x3C1”的報文為從站的輪詢響應(yīng)報文。由于輪詢響應(yīng)報文中數(shù)據(jù)場第一個字節(jié)的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數(shù)據(jù)可以看出,實際測試過程中發(fā)送到總線上的報文序號依次是0x00、0x20、0x40、0x60、0xA0、0xC0、0xE0,即從站在正確響應(yīng)序號0、1、2、3報文之后,丟失了序號4報文,直接響應(yīng)了序號5報文。
此時,從主站顯示屏顯示的信息可以看出,序號0、1、2、3報文正確接收,而后續(xù)的序號5、6、7報文由于心跳信號不連續(xù),可由心跳信號機制檢測出故障報文。
3.3 報文插入
報文插入故障是由于系統(tǒng)錯誤、故障或受到干擾,導致未期望的或未知的源實體報文插入到了總線。其測試原理是由于插入一幀報文,造成中間心跳序號不連續(xù)模擬故障,可通過心跳信號機制檢測出該故障。
報文插入測試數(shù)據(jù)如表2所示。
表2 報文插入測試數(shù)據(jù)
CANoe偵聽的報文數(shù)據(jù)中,標志符“0x40D”的報文為主站的輪詢命令報文,標志符“0x3C1”的報文為從站的輪詢響應(yīng)報文。由于輪詢響應(yīng)報文中數(shù)據(jù)場第一個字節(jié)的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……從CANoe偵聽的報文數(shù)據(jù)可以看出,實際測試過程中發(fā)送到總線上的報文序號依次是0x00、0x20、0x40、0xE0、0x60、0x80,即從站在正確響應(yīng)序號0、1、2報文之后,插入了一幀序號7報文,再依次響應(yīng)序號3、4報文。
從主節(jié)點的顯示屏顯示的信息可以看出,序號0、1、2報文正確接收,而后續(xù)的序號7、3、4報文由于心跳信號不連續(xù),可由心跳信號機制檢測出故障報文。
3.4 時序混亂
時序混亂是指由于系統(tǒng)錯誤、故障或受到干擾,導致源節(jié)點預(yù)先確定的報文發(fā)送順序不正確。該故障可以通過模擬心跳序號混亂,造成中間心跳序號不連續(xù)實現(xiàn),可通過心跳信號機制檢測出該故障。
由于輪詢響應(yīng)報文中數(shù)據(jù)場第一個字節(jié)的bit7∶bit5為心跳字段,若為正確的心跳序號,順序依次是0x00、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0、0x00、0x20、0x40……而從CANoe偵聽的報文數(shù)據(jù)可以看出,實際測試過程中發(fā)送到總線上的報文序號依次是0x00、0x20、0x40、0x80、0x60、0xA0、0xC0、0xE0,即從站在正確響應(yīng)序號0、1、2報文之后,先是響應(yīng)了序號4報文,再響應(yīng)序號3報文。
此時,由主節(jié)點相連屏幕獲取的信息可知,序號0、1、2報文正確接收,而后續(xù)的序號4、5、6報文由于心跳信號不連續(xù),可由心跳信號機制檢測出故障報文。
經(jīng)過上述測試,證明了改進的心跳包機制可以很好地檢測出影響核電儀控網(wǎng)絡(luò)安全性的4種故障。
本文研究了心跳包技術(shù)的應(yīng)用對提高核電儀控網(wǎng)絡(luò)安全性的作用,提出了一個改進心跳機制的心跳模型,并將其應(yīng)用于基于某核電網(wǎng)絡(luò)測試平臺的核電儀控網(wǎng)絡(luò)中。對測試結(jié)果的分析表明,基于改進心跳機制的心跳模型能夠很好地檢測出影響儀控網(wǎng)絡(luò)安全性的4種故障,提高了儀控網(wǎng)絡(luò)的安全性。該模型的數(shù)據(jù)協(xié)議具有很好的擴展性,在其他需要高安全性的工業(yè)控制網(wǎng)絡(luò)中也具有很好的移植性和適用性。
[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網(wǎng)絡(luò)通信中C#心跳包實現(xiàn)方法的研究[J].機電一體化,2014,8(10):11-19.
[6] 鄢鋒,桂衛(wèi)華,胡志坤,等.一種網(wǎng)絡(luò)節(jié)點通信控制的心跳模型[J].信息與控制,2008,37(5):525-528.
[7] 田小輝,李明遠,田昕.基于GPRS的遠程無線透傳終端系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2005,28(4):97-99.
[8] 許振文.基于GPRS和MCGS的SCADA系統(tǒng)的研究與實現(xiàn)[D].北京:中國農(nóng)業(yè)大學,2005.
[9] 侯宗浩,董小社,鄭守淇,等.一種支持負載均衡的多機心跳模型[J].小型微型計算機系統(tǒng),2005,26(1):1l-14.
[10]鄭在賓,金海.有TCP連接容錯功能的網(wǎng)絡(luò)負載平衡調(diào)度系統(tǒng)[J].華中科技大學學報(自然科學版),2003,31(2):17-19.
[11]趙巍,胡術(shù),韓學為.空管系統(tǒng)中雙機管理的設(shè)計與實現(xiàn)[J].中國民航飛行學院學報,2005,15(6):32-35.
[12]吳江嬌,高文洪.采用智能單元式控制臺實現(xiàn)計算機聯(lián)鎖系統(tǒng)的人機交互[J].北京交通大學學報(自然科學版),2004,28(6):107-110.
[13]薛晨,黎燦兵,黃小慶,等.智能變電站信息一體化應(yīng)用[J].電力自動化設(shè)備,2011,31(7):110-113.
[14]郭創(chuàng)新,王林青,曹一家.基于移動智能體多級電力控制中心互聯(lián)通信平臺模型研究[J].電工技術(shù)學報,2006,21(4):75-81.
[15]馬韜韜,李珂,朱少華,等.智能電網(wǎng)信息和通信技術(shù)關(guān)鍵問題探討[J].電力自動化設(shè)備,2010,30(5):87-91.
[16]李熊,程康,張春雷,等.淺談核電儀控系統(tǒng)中安全性與可靠性的關(guān)系及區(qū)別[J].自動化博覽,2013,12(8):61-63.
[17]郭興吉,李淑珍,文永革.帶心跳功能的連接池技術(shù)研究[J].現(xiàn)代計算機,2015,4(3):16-18.
[18]鄢鋒,桂衛(wèi)華,胡志坤,等.基于Socket的整流裝置遠程監(jiān)控系統(tǒng)[J].計算機工程,2008,34(5):243-245.
[19]胡志坤,何多昌,桂衛(wèi)華,等.基于改進心跳包機制的整流遠程監(jiān)控系統(tǒng)[J].計算機應(yīng)用,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—),男,碩士,講師,主要從事機器人控制、工業(yè)總線通信、工業(yè)大系統(tǒng)控制優(yōu)化的研究。E-mail:wenjie412@126.com。陽小華(通信作者),男,教授,博士生導師,主要研究領(lǐng)域為可信計算、核電站計算機控制系統(tǒng)縱深防御、網(wǎng)絡(luò)控制等。E-mail:xiaohua1963@foxmail.com。
TH86;TP
ADOI: 10686/j.cnki.issn1000-0380.201701015
修改稿收到日期:2016-07-20