国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

IEC 61850過(guò)程層網(wǎng)絡(luò)冗余報(bào)文捕獲分析工具開(kāi)發(fā)

2014-06-09 15:54:51許茂林王嬌張惠剛
浙江電力 2014年8期
關(guān)鍵詞:解析器標(biāo)識(shí)符環(huán)網(wǎng)

許茂林,王嬌,張惠剛

(1.德化縣供電有限責(zé)任公司,福建泉州362500;2.南京工程學(xué)院電力學(xué)院,南京211167)

電力信息化

IEC 61850過(guò)程層網(wǎng)絡(luò)冗余報(bào)文捕獲分析工具開(kāi)發(fā)

許茂林1,王嬌2,張惠剛2

(1.德化縣供電有限責(zé)任公司,福建泉州362500;2.南京工程學(xué)院電力學(xué)院,南京211167)

隨著IEC 61850第二版的發(fā)布,以IEC 62439-3中高可用無(wú)縫環(huán)網(wǎng)為基礎(chǔ)的網(wǎng)絡(luò)冗余方案層出不窮,但缺乏相應(yīng)的監(jiān)測(cè)工具解析報(bào)文內(nèi)容?;赪indows平臺(tái),采用Wireshark網(wǎng)絡(luò)開(kāi)發(fā)包,開(kāi)發(fā)出高可用無(wú)縫環(huán)網(wǎng)(HSR)報(bào)文的捕捉、解析工具,并創(chuàng)新性地采用Winpcap庫(kù)接口函數(shù)模擬裝置發(fā)送報(bào)文,驗(yàn)證協(xié)議解析工具的可用性。結(jié)果表明,該解析工具能正確分析數(shù)據(jù)包的負(fù)載內(nèi)容,對(duì)IEC 61850第二版的推廣具有重要意義。

IEC 61850;高可用無(wú)縫環(huán);Wireshark;協(xié)議解析

0 引言

IEC 61850標(biāo)準(zhǔn)是變電站自動(dòng)化領(lǐng)域最為完善的通信標(biāo)準(zhǔn),最大程度上實(shí)現(xiàn)了系統(tǒng)信息模型的統(tǒng)一、通信服務(wù)的統(tǒng)一和傳輸過(guò)程的統(tǒng)一,但并未對(duì)網(wǎng)絡(luò)冗余、安全等重要應(yīng)用領(lǐng)域做出明確的規(guī)定。隨著第二版引入IEC 62439-3標(biāo)準(zhǔn)中的HSR(高可用性無(wú)縫環(huán)網(wǎng))和PRP(并行冗余雙網(wǎng)),為數(shù)字化變電站的通信可靠性、安全性提供了參考性的實(shí)現(xiàn)方案[1-3]。目前,大量基于該種協(xié)議的網(wǎng)絡(luò)構(gòu)架層出不窮,文獻(xiàn)[4]提出了PRP的網(wǎng)絡(luò)構(gòu)架,將站控層網(wǎng)絡(luò)和過(guò)程層網(wǎng)絡(luò)均布置為星型雙網(wǎng)。文獻(xiàn)[5]根據(jù)HSR技術(shù)抵抗單點(diǎn)故障、實(shí)現(xiàn)無(wú)縫恢復(fù)的優(yōu)勢(shì),設(shè)計(jì)了應(yīng)用HSR的變電站三層通信網(wǎng)絡(luò)結(jié)構(gòu)。但是這些設(shè)計(jì)方案的可行性需要有強(qiáng)有力的監(jiān)測(cè)工具來(lái)驗(yàn)證。本文以Wireshark開(kāi)源代碼為基礎(chǔ),以Visual Studio 2008開(kāi)發(fā)平臺(tái)為著眼點(diǎn),利用C++語(yǔ)言編碼,融合GTK界面設(shè)計(jì)工具,開(kāi)發(fā)了捕獲、解析HSR報(bào)文的插件。并通過(guò)Winpcap庫(kù)模擬相關(guān)設(shè)備發(fā)包,以驗(yàn)證HSR報(bào)文插件的正確性。

1 高可用無(wú)縫環(huán)網(wǎng)

1.1 原理分析

1個(gè)簡(jiǎn)單的HSR網(wǎng)絡(luò)是由多個(gè)雙連接的交換節(jié)點(diǎn)串接而成的,每個(gè)交換節(jié)點(diǎn)都有2個(gè)端口,單播環(huán)形拓?fù)浣Y(jié)構(gòu)如圖1所示。

圖1中,灰色箭頭為“A”類型數(shù)據(jù)幀;黑色箭頭為“B”類型數(shù)據(jù)幀;虛線箭頭為主機(jī)與環(huán)網(wǎng)相互通信不含HSR標(biāo)簽的數(shù)據(jù)幀。SAN(單連接節(jié)點(diǎn))只有1個(gè)端口,不能直接連接到HSR環(huán)網(wǎng)中,需要使用冗余盒來(lái)搭橋;DANH(雙連接節(jié)點(diǎn))實(shí)現(xiàn)無(wú)縫環(huán)通信。

1個(gè)源端DANH從高層協(xié)議中發(fā)送1個(gè)數(shù)據(jù)幀(C幀),經(jīng)過(guò)LRE(鏈路層冗余單元)時(shí)添加HSR標(biāo)簽,然后轉(zhuǎn)發(fā)該幀到本節(jié)點(diǎn)的2個(gè)端口處,并配置相同MAC地址和序列號(hào)(即A幀和B幀)。在無(wú)故障的情況下,目的DANH在不同時(shí)間、不同方向接收2個(gè)結(jié)構(gòu)相同的數(shù)據(jù)幀。對(duì)第一次接收到的數(shù)據(jù)幀,通過(guò)LRE移除幀中的HSR標(biāo)簽,并轉(zhuǎn)發(fā)到高層協(xié)議中(D幀),第二次接收的相同幀認(rèn)為是重復(fù)報(bào)文而丟棄。

1.2 報(bào)文結(jié)構(gòu)

在第二版IEC 61850-9-2中,國(guó)際電工委員會(huì)第15工作組提出將IEC 62439-3中網(wǎng)絡(luò)冗余配置方案添加到過(guò)程層網(wǎng)絡(luò)中。其中,HSR標(biāo)簽映射到數(shù)據(jù)鏈路層,采用ISO/IEC 8802-3版本的以太網(wǎng)數(shù)據(jù)幀,具體格式如圖2所示[6]。

ISO/IEC 8802-3數(shù)據(jù)幀中字段的含義如下:

(1)目的地址:目的地址長(zhǎng)度為6個(gè)字節(jié)。根據(jù)規(guī)定,HSR目的地址的前5個(gè)字節(jié)固定為“01-15-4E-00-01”。

(2)標(biāo)簽協(xié)議標(biāo)識(shí)符:8位,由802.1Q標(biāo)準(zhǔn)以太網(wǎng)編碼幀來(lái)確定,一般設(shè)定為0X8100。

(3)標(biāo)簽控制信息:8位,主要涉及優(yōu)先級(jí)和虛擬局域網(wǎng)。如果數(shù)據(jù)單元是SV或Goose報(bào)文,優(yōu)先級(jí)為4,其他報(bào)文的優(yōu)先級(jí)為1。

(4)HSR以太網(wǎng)類型:HSR報(bào)文的以太網(wǎng)類型由IEEE的著作權(quán)注冊(cè)機(jī)構(gòu)進(jìn)行注冊(cè),一般是唯一的。HSR報(bào)文的以太網(wǎng)類型為0X892F。

(5)路徑標(biāo)識(shí)符:4位,由網(wǎng)絡(luò)標(biāo)識(shí)符和局域網(wǎng)標(biāo)識(shí)符構(gòu)成。其中局域網(wǎng)標(biāo)識(shí)符占1位,確定冗余盒2個(gè)端口的接收情況(A=0,B=1)。

(6)幀大小:12位,前4位與路徑標(biāo)識(shí)符結(jié)合,計(jì)算長(zhǎng)度是從路徑標(biāo)識(shí)符開(kāi)始,一直到幀的數(shù)據(jù)單元結(jié)束。

(7)序列號(hào):16位,用以標(biāo)識(shí)重復(fù)幀。每次從高層發(fā)送1幀,序列號(hào)加1。

HSR標(biāo)簽就是由(4)—(7)構(gòu)成的,由于HSR標(biāo)簽的加入,可能會(huì)超過(guò)IEEE 801.1D規(guī)定的數(shù)據(jù)最大長(zhǎng)度1 522字節(jié),因此需要網(wǎng)絡(luò)內(nèi)交換節(jié)點(diǎn)單元的內(nèi)部結(jié)構(gòu)支撐這種協(xié)議,目前該類裝置研究處在起步階段,開(kāi)發(fā)測(cè)試報(bào)文的平臺(tái)可以為裝置研發(fā)提供強(qiáng)有力的支持。

2 HSR報(bào)文測(cè)試工具開(kāi)發(fā)

2.1 開(kāi)發(fā)平臺(tái)介紹

Wireshark是一款強(qiáng)大的網(wǎng)絡(luò)協(xié)議分析開(kāi)源的跨平臺(tái)軟件[7],具有簡(jiǎn)潔友好的用戶界面,其開(kāi)源代碼可以從Wireshark官網(wǎng)下載。由于軟件底層和界面涉及許多Linux環(huán)境配置項(xiàng),因此在Windows系統(tǒng)中編譯Wireshark還需要以下軟件來(lái)輔助:Visual Studio,Python和Cygwin,且采用C++語(yǔ)言為主要開(kāi)發(fā)語(yǔ)言。

Wireshark源代碼的基本結(jié)構(gòu)邏輯上由5個(gè)部分組成,如圖3所示。

(1)Winpcap庫(kù)文件中NPF(數(shù)據(jù)包監(jiān)聽(tīng)設(shè)備驅(qū)動(dòng)程序)在操作系統(tǒng)核心內(nèi)與網(wǎng)絡(luò)接口驅(qū)動(dòng)交互,調(diào)用用戶級(jí)的Packet.dll和Wpacp.dll來(lái)實(shí)現(xiàn)報(bào)文的捕獲,將捕獲結(jié)果傳遞給Capture。

(2)Capture將捕獲的數(shù)據(jù)儲(chǔ)存在Wiretap。

(3)GTK1/2提供圖形窗口工具,將用戶的輸入消息傳遞出去。

(4)Core綜合協(xié)調(diào)用戶傳入、傳出的消息。

(5)Epan接收來(lái)自Core的命令,指揮協(xié)議解析器,將結(jié)果傳送到Core,最后調(diào)用GTK1/2庫(kù)文件在界面上顯示[9]。

2.2 開(kāi)發(fā)測(cè)試流程

開(kāi)發(fā)協(xié)議解析器主要目標(biāo)是針對(duì)協(xié)議部分各字段的信息,以樹(shù)形結(jié)構(gòu)來(lái)劃分各層,進(jìn)行詳細(xì)的展示。同時(shí),通過(guò)過(guò)濾規(guī)則篩選顯示到數(shù)據(jù)包列表的主窗口中[8]。將圖2所示的協(xié)議分成4層:

(1)解析以太網(wǎng)層:前12個(gè)字節(jié),包括目的MAC地址和源MAC地址,并判斷是否有上層協(xié)議封裝。

(2)解析虛擬局域網(wǎng)層:第12—14字節(jié),分析數(shù)據(jù)優(yōu)先級(jí)和虛擬局域網(wǎng)標(biāo)識(shí)符等。

(3)解析HSR層:?jiǎn)为?dú)分裂出來(lái),便于后面添加不同的數(shù)據(jù)報(bào)文,同時(shí)也有利于到達(dá)目的裝置后丟棄HSR標(biāo)簽算法的統(tǒng)計(jì)。

(4)解析SV層或Goose層:最后的數(shù)據(jù)結(jié)構(gòu)根據(jù)裝置發(fā)出的類型分辨來(lái)解析。

2.3 HSR解析器的開(kāi)發(fā)

本文主要開(kāi)發(fā)HSR層解析器,下面介紹如何開(kāi)發(fā)HSR解析器。

2.3.1 注冊(cè)協(xié)議

設(shè)計(jì)的插件與外部實(shí)現(xiàn)交互,該任務(wù)需要特定的接口來(lái)承擔(dān),其中1個(gè)就是proto_register_ hsr接口,作用是注冊(cè)解析器的協(xié)議信息。該函數(shù)包括協(xié)議的全名、簡(jiǎn)寫(xiě)和協(xié)議過(guò)濾字符串以及字段信息,對(duì)字段信息初始化也必不可少。static hf_register_info hf[]描述協(xié)議字段具體信息,包括路徑標(biāo)識(shí)符、局域網(wǎng)標(biāo)識(shí)符、序列號(hào)等;設(shè)置HSR層報(bào)文詳細(xì)列表樹(shù)根節(jié)點(diǎn)static gint*ett[]= &ett_hsr_frame。

2.3.2 注冊(cè)切換器

將解析器掛載到樹(shù)形節(jié)點(diǎn)中,并形成與外界交互的端口。通過(guò)采用函數(shù)proto_reg_handoff_hsr()生成解析協(xié)議的句柄,關(guān)聯(lián)上下層解析器,根據(jù)唯一標(biāo)識(shí)識(shí)別協(xié)議類型。首先通過(guò)create_dissector_handle(dissect_hsr_frame,proto_hsr)查找到解析該幀的句柄,利用dissector_add_uint("ether type",ETHERTYPE_HSR,hsr_frame_handle)將句柄與協(xié)議類型關(guān)聯(lián);最后根據(jù)類型查找相應(yīng)的解析器列表,準(zhǔn)備開(kāi)始解析。

2.3.3 實(shí)際解析處理

采用函數(shù)col_set_str(pinfo->cinfo,COL_PROTOCOL,"HSR")在數(shù)據(jù)列表中的縱向欄中設(shè)置需要顯示的列表信息,然后創(chuàng)建協(xié)議樹(shù)的詳細(xì)信息,將HSR標(biāo)簽中的路徑標(biāo)識(shí)符、網(wǎng)絡(luò)標(biāo)識(shí)符和局域網(wǎng)通過(guò)proto_tree_add_item()函數(shù)添加到子協(xié)議樹(shù),比較給定報(bào)文與實(shí)際報(bào)文大小,如果兩者相等,則繼續(xù)將該節(jié)點(diǎn)添加到子協(xié)議樹(shù)中,反之,在子協(xié)議樹(shù)中添加判斷的結(jié)果,并顯示正確的數(shù)值。接著重復(fù)使用proto_tree_add_item()函數(shù)設(shè)置序列號(hào)、類型等。根據(jù)tvb_get_ntohs()獲取下一層數(shù)據(jù)類型,如SV或Goose報(bào)文。開(kāi)始調(diào)用解析下一層解析器。

2.4 開(kāi)發(fā)結(jié)果驗(yàn)證

Winpcap網(wǎng)絡(luò)開(kāi)發(fā)包是一個(gè)免費(fèi)、基于Windows平臺(tái)下的工業(yè)標(biāo)準(zhǔn)工具,可以實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文監(jiān)聽(tīng)、抓捕、過(guò)濾、發(fā)送數(shù)據(jù)幀以及網(wǎng)絡(luò)流量統(tǒng)計(jì)[10]。利用Winpcap發(fā)送數(shù)據(jù)幀模擬裝置發(fā)包,利用已開(kāi)發(fā)好的工具捕捉該類報(bào)文,可以驗(yàn)證工具的可行性。具體流程如圖4所示:通過(guò)pcap_ findalldev()函數(shù)獲取設(shè)備列表,根據(jù)列表顯示的內(nèi)容選擇合適的網(wǎng)卡序列號(hào);利用pcap_open_live()打開(kāi)網(wǎng)卡,其中,因?yàn)楣ぞ呤褂玫氖侵骶€程抓包,內(nèi)部延遲參數(shù)設(shè)定要稍長(zhǎng)些。按照?qǐng)?bào)文格式設(shè)置主要數(shù)據(jù)后,利用pcap_sendpacket()發(fā)送出去,查看測(cè)試工具中是否有該類報(bào)文。編碼分解結(jié)果如表1所示。

圖4 發(fā)送報(bào)文流程

表1 編碼分解結(jié)果

3 結(jié)語(yǔ)

本文根據(jù)IEC 61850最新發(fā)布的網(wǎng)絡(luò)冗余方案預(yù)先設(shè)計(jì)出解析該類報(bào)文的插件,詳細(xì)分析了該類報(bào)文產(chǎn)生機(jī)理和最新的IEEE 802-3報(bào)文格式(含有HSR標(biāo)簽),采用分層解決思路,簡(jiǎn)單概括解析報(bào)文的流程。通過(guò)在Visual Studio平臺(tái)下搭建以Winpcap庫(kù)文件為核心的項(xiàng)目,利用其設(shè)備驅(qū)動(dòng)(NPF)和動(dòng)態(tài)連接庫(kù)(DLL)發(fā)送報(bào)文來(lái)驗(yàn)證測(cè)試工具設(shè)計(jì)的可行性,為未來(lái)設(shè)計(jì)相關(guān)類裝置提供強(qiáng)有力的監(jiān)測(cè)工具。

[1]謝志迅,鄧素碧,臧德?lián)P.數(shù)字化變電站通信網(wǎng)絡(luò)冗余技術(shù)[J].電力自動(dòng)化設(shè)備,2011,31(9)∶100-103.

[2]IEC 62439 SC 65C High availability automation networks [S].Geneva,Switzerland∶IEC,2008.

[3]IEC 61850 Communication network and systems in substations[S].Geneva,Switzerland∶IEC,2005.

[4]陳原子,徐習(xí)東.基于并行冗余網(wǎng)絡(luò)的數(shù)字化變電站通信網(wǎng)絡(luò)構(gòu)架[J].電力自動(dòng)化設(shè)備,2011,31(1)∶105-108.

[5]許鐵峰,徐習(xí)東.高可用性無(wú)縫環(huán)網(wǎng)在數(shù)字化變電站通信網(wǎng)絡(luò)的應(yīng)用[J].電力自動(dòng)化備,2011,31(10)∶121-125.

[6]IEC 61850 Communication network and systems in substations[S].Geneva,Switzerland∶IEC,2011.

[7]陳俊,閻慧,王宇.基于Wireshark的協(xié)議分析插件開(kāi)發(fā)[C].第十六屆全國(guó)青年通信學(xué)術(shù)會(huì)議集,2011.

[8]Wireshrk Developer’s Guide[EB/OL].http∶//www.wireshark.org/docs/wsdg_html_chunked/,2009.

[9]羅青林,徐克付,臧文羽,等.Wireshark環(huán)境下的網(wǎng)絡(luò)協(xié)議解析與驗(yàn)證方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(3)∶770-775.

[10]范建忠,馬千里.GOOSE通信與應(yīng)用[J].電力系統(tǒng)及其自動(dòng)化,2007,31(19)∶85-90.

(本文編輯:徐晗)

Development of Capture and Analytical Tool for Network Redundancy Packet on Process layer Based on IEC 61850

XU Maolin1,WANG Jiao2,ZHANG Huigang2
(1.Dehua Power Supply Co.,Ltd.,Quanzhou Fujian 362500,China;
2.Electric Power College,Nanjing Institute of Technology,Nanjing 211167,China)

With the publication of IEC 61850,version 2,the network redundancy schemes based on high availability seamless ring(HSR)in IEC 62439-3 emerge in endlessly.However,there are no corresponding monitoring tools for message analysis.Based on Windows platform and employing Wireshark network development kits,the tool for capturing and analyzing HSR packet is developed.Furthermore,the availability of the analysis tool is verified by innovatively adopting Winpcap interface function simulator for message sending. The result shows that the tool can correctly analyze the content in the data package,which is of great significance to popularization of the 2nd edition of IEC 61850.

IEC 61850;HSR;Wireshark;protocol analysis

TP311.56

:B

:1007-1881(2014)08-0046-04

2014-03-07

許茂林(1963-),男,福建泉州人,工程師,主要從事電力系統(tǒng)運(yùn)行與控制工作。

猜你喜歡
解析器標(biāo)識(shí)符環(huán)網(wǎng)
淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識(shí)符更新技術(shù)
基于底層虛擬機(jī)的標(biāo)識(shí)符混淆方法
基于多解析器的域名隱私保護(hù)機(jī)制
基于ODUk Spring方式實(shí)現(xiàn)基礎(chǔ)網(wǎng)絡(luò)環(huán)網(wǎng)保護(hù)的研究
基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
基于區(qū)塊鏈的持久標(biāo)識(shí)符系統(tǒng)①
如何防御DNS陷阱?常用3種DNS欺騙手法
一種基于無(wú)關(guān)DNS的通信隱私保護(hù)技術(shù)研究
電子世界(2018年14期)2018-04-15 16:14:25
高速公路萬(wàn)兆環(huán)網(wǎng)建設(shè)探析
數(shù)字美術(shù)館“數(shù)字對(duì)象唯一標(biāo)識(shí)符系統(tǒng)”建設(shè)需求淺議
阳曲县| 图们市| 大关县| 司法| 石屏县| 永寿县| 济南市| 怀柔区| 慈溪市| 绥江县| 叶城县| 包头市| 宁强县| 出国| 丰镇市| 东阳市| 寿宁县| 湘潭市| 祥云县| 洛扎县| 洛川县| 久治县| 高平市| 科技| 昌宁县| 牟定县| 广水市| 顺义区| 新兴县| 阿鲁科尔沁旗| 龙井市| 册亨县| 兴文县| 张北县| 邓州市| 苗栗市| 高唐县| 吉安县| 会昌县| 古田县| 磴口县|