高正明 張慶軍 包偉華
(上海自動化儀表股份有限公司,上海 200072)
工業以太網MRP協議及多主機制的研究
高正明 張慶軍 包偉華
(上海自動化儀表股份有限公司,上海 200072)
針對工業通信網絡高可用性的要求,采用MRP協議組建的環型冗余網絡,在故障發生時能夠迅速建立起新的網絡拓撲來恢復網絡通信。通過研究MRP協議給出的環型拓撲以太網網絡冗余的解決方案,在介紹MRP協議工作原理的基礎上,研究了MRP協議的多主站連接時的協議機制。采用多主協議能夠提高環網的可靠性,便于網絡的管理和維護。
工業通信網絡 高可用性 環網冗余 MRP協議 多主站
媒體冗余協議(media redundancy protocol,MRP),是基于環型拓撲的網絡恢復協議,采用網絡冗余的方法提高網絡的可用性。當環型網絡中的交換機或交換機內部的鏈路發生一個單一故障時,MRP協議能夠在一定的時間內確定性地恢復網絡的功能,滿足工業網絡的可用性要求。隨著技術和應用需要的不斷提高,MRP協議還定義了單環下的多個主站協議和機制,并向IEC(國際電工委員會)/SC65C/WG15工作組進行了提交。本文的主要內容就是簡要介紹及研究MRP的技術。
媒體冗余協議(MRP),是基于環型拓撲的網絡恢復協議,典型的MRP協議的冗余網絡拓樸圖如圖1[1]所示。環中的MRP兼容節點可以是MRP兼容交換機,也可以是MRP兼容終端節點,且必須有兩個環端口。每個MRP兼容節點都能夠檢測或恢復交換機內部的鏈路故障,也能夠檢測或恢復相鄰節點的故障。環中的MRP兼容節點有兩種角色:媒體冗余管理者(media redundancy manager,MRM)、媒體冗余客戶(media redundancy client,MRC)。MRM和MRC的角色可以互相調換,但運行的網絡中只允許一臺交換機處于MRM工作狀態。
MRP協議組成的環網在物理上連接成環,在邏輯上實際處于鏈狀結構,并且要避免形成環路。為了確保鏈路故障恢復時網絡在邏輯上不成環,當網絡上鏈路發生中斷時,與該鏈路連接的兩個MRC環端口設為阻塞狀態,以中止正常業務報文的轉發。并且,MRM將原處于阻塞狀態的環端口設為轉發狀態,使得通信鏈路恢復,實現冗余功能。當網絡上鏈路故障恢復時,MRM在檢測到環閉的情況下將一環端口設為阻塞狀態,此時,MRC再將原處于阻塞狀態的環端口設為轉發狀態。
為了提高協議魯棒性,避免在鏈路接觸不良時導致協議時序的不確定性,在MRC中設置兩個暫態,單連接暫態(DE)和雙連接暫態(PT),即對應于只有一個環端口連接時的暫態和對應于兩個環端口都連接時的暫態。當MRC只有一個環端口連接,并檢測到另一環端口剛連接時,先進入雙連接暫態,啟動連接定時器,在連接定時器超時或者從站收到拓撲改變報文(TopologyChange)后再達到雙連接穩態(PT_IDLE)。當MRC兩個環端口都已連接,并檢測到一環端口剛斷開時,先進入單連接暫態,啟動斷開定時器,在斷開定時器超時或者從站收到拓撲改變報文(TopologyChange)后再達到單連接穩態(DE_IDLE)。
MRM和MRC兩個環端口具有下列3種狀態。
(1)Disabled:所有的幀都被阻塞。
(2)Blocked:除了以下測試幀,其他幀都被阻塞。
①來自MRM的MRP_TopologyChange幀和MRP_ Test幀。
②來自MRC的MRP_LinkChange幀。
③ IEEE 802.1D中定義的其他協議的幀,如LLDP、PTP。
(3)Forwarding:根據IEEE 802.1D的轉發行為轉發所有的幀。
MRM通過以下步驟控制環的狀態。
①按照預先配置的時間周期,通過兩個環端口向環的兩個方向發送MRP_Test幀。
② 將一個環端口設置為 Forwarding狀態,如果MRM接收到它自己發出的MRP_Test幀,這意味著整個環是閉合的(見圖1),則將另一個環端口設置為Blocked狀態。
③如果MRM在配置的時間內不能收到它自己發出的MRP_Test幀,這意味著環是斷開的[1],則將兩個環端口都設置為Forwarding狀態。
MRM不會將MRP_Test幀、MRP_TopologyChange幀和MRP_LinkChange幀轉發到非環端口,并且也不會在其自身的兩個環端口間轉發這3種幀,以避免無限循環。
MRM通過MRP_TopologyChange幀向環中的MRC指示環狀態的改變。
MRC在環中的行為如下。
①每個MRC將一個端口收到的MRP_Test幀轉發到另一個環端口,反之亦然。
②如果MRC檢測到一個環端口鏈路的故障或恢復,MRC可以通過其環端口發送MRP_LinkChange幀通知這個鏈路的改變。每個MRC將一個端口收到的MRP_LinkChange幀轉發到另一個環端口,反之亦然。
③ 每個 MRC將一個端口收到的 MRP_ TopologyChange幀轉發到另一個環端口,反之亦然。同時,每個MRC都需要處理這種幀,并清空其過濾數據庫(filtering data base,FDB)。
如果MRM收到了MRP_LinkChange幀(MRP_ LinkUp和MRP_LinkDown),MRM將減小測試間隔時間,加速發送MRP_Test幀檢測環是否斷開。
MRM發送給MRC的MRP_TopologyChange幀是帶延時的,在這個時間以后環的拓撲才被改變。表示這個延時的參數被稱為MRP_Interval。只有這個時間耗盡以后,所有的MRC才清空FDB。

圖2 MRM在一個斷開的環中的狀態Fig.2 The state of MRM in an opened ring
MRM在一個斷開的環中的狀態如圖2所示。
在環網中有多個MRM(MRP主站)的情況下,由于MRM會阻塞環端口,多個MRM會將環分割成多段,導致環網不能正常工作。所以,環網中只能有一個是處于工作狀態的MRM。可是,在環網中如果只有一個MRM,當MRM出現故障時,整個網絡的狀況將處于未知的狀況,這又會影響系統的可靠性。
針對上述問題,MRP協議引入了多主站的機制。具體來說,就是開始支持多主站的媒體冗余自動管理者(media redundancy automanager,MRA)競選機制。對于具備MRM能力的設備,出廠時其缺省模式可以配置成MRA模式,這樣在設備啟動后進行自動競選,直到產生一個唯一的MRM,其他的作為MRC。
啟動時MRP環網中的各個角色如圖3所示[3]。圖3的MRP環網中有2個處于MRA角色的設備。競選的主要原理就是每個MRA定義了一個優先級的參數,當兩個設備優先級的參數相同時,比較設備的MAC地址,MAC地址越小,設備的優先級越高。MRA通過優先級參數和MAC地址的組合保證了優先級的唯一性。

圖3 啟動時MRP環網中的各個角色Fig.3 Each role of MRP ring at network startup
設備啟動后,MRA會將優先級參數放在MRP_Test報文中進行發送,其他的MRA在收到報文后,會將報文中的優先級與自身的進行比較,如果比自己高,就放棄MRA的角色,進入MRC的角色。競選后MRP環網中的各個角色如圖4所示[2]。圖4中,具有最高優先級的設備的角色由MRA轉為MRM,并開始管理環網。

圖4 競選后MRP環網中的各個角色Fig.4 Each role in MRP ring after the election
競選機制的好處是,如果選出的MRM不在網絡中或者出現故障時,網絡中會自動進行重新競選,上次選舉中第二優先級的設備會成為MRM。當新的MRA設備加入到網絡中時,也會進行重新競選。如果一個不支持MRA的MRM加入到網絡中,所有的MRA將退回到MRC角色,競選取消,保證環網中MRM的唯一性。
MRM主站競選的過程如圖5所示[1]。圖5中共有4個MRA的設備,在設備上電時將競選MRM。首先4個MRA都將向2個環端口發送包含自己優先級信息的MRP_Test報文,收到MRP_Test報文后不再轉發而進行優先級比較。如果接收到的優先級低于自己的優先級,則發送負響應報文MRP_TestMgrNAck。圖5中,MRA3和MRA4低于MRA1和MRA2,因此MRA3和MRA4將收到相鄰的MRA1、MRA2的負響應報文。
MRA收到負響應報文后,將記錄高優先級MRA的MAC地址和優先級,并將角色轉換為MRC;同時,通過2個環端口向高優先級MRA發送MRP_TestPropagate報文。圖5中,MRA3和MRA4由于優先級低,將進入MRC角色,同時開始正常轉發MRP_Test報文。
這時轉換為MRC的MRA設備需要根據轉發并接收到的MRP_Test監視并記錄高優先級設備的生存狀態。同時,也需要根據MRP_TestPropagate來更新網絡中高優先級的設備。這樣做的目的是監視高優先級的設備的生存狀態。當它發現高優先設備發送的MRP_ Test報文超時時,它會重新進入MRA角色,并發動新的MRM競選,實現了多主備份和冗余管理。
圖5中的MRA3和MRA4進入到MRC角色后,MRA1和MRA2將可以看到相互的MRP_Test報文,MRA1和MRA2將進行競選,MRA1最終成為唯一的MRM。

圖5 主站競選的過程Fig.5 Election process of the MRM
使用負響應報文進行握手的目的主要是保證高優先級的MRA在環內,因為有可能有的交換機通過環端口連接到環網中的非環端口。如果環網中交換機的非環端口沒有進行報文過濾,環網外部的MRP_Test報文將會被引入到環網中。
環網外的MRA如圖6所示[1]。

圖6 環網外的MRAFig.6 The MRA located outside MRP ring
圖6中,實線箭頭表示MRP_Testframe:T1、T2,虛線箭頭表示MRP_TestMgrNAck:NA1。圖6中MRA2就是在環網外部的設備。MRA2的環端口接入到MRP環的非環端口上,如果MRA1的優先級低于MRA2的優先級,MRA1將會收到MRA2的MRP_Test報文;但是MRA2收不到MRA1的MRP_Test報文,MRA2就不會發送負響應報文,這樣MRA1就可以保持在MRM狀態。如果MRA1的優先級高于MRA2,由于MRA2收不到負響應報文,因此就不會影響網絡的正常競選。
需要注意的是,在MRM競選時,為了避免環路,MRA設備需要將第二個環端口設置為阻塞狀態。MRP_TestPropagate報文主要用來防止轉化為MRC的MRA所監視的高優先級設備轉化為MRC后,停止發送MRP_Test報文,再重新競選,導致網絡出現迭代現象。
MRA多主協議的實施,給設備和維護也提供了便利,不一定再需要手工維護和配置每臺設備的信息,設備的添加和移除也可以大大減少網絡維護的工作量。
MRP協議實現環形網絡的冗余,與傳統的生成樹協議(spanning tree protocol,STP)和快速生成樹協議(rapid spanning tree protocol,RSTP)相比,網絡恢復時間提高了一個數量級,實現了快速的網絡恢復,能夠滿足工業控制系通過與通信網絡的高可用性的要求。MRP尤其支持多主站,實現了通信鏈路的冗余與通信設備冗余的結合,也極大地方便了設備的管理和維護。
[1]IEC 62439 Industrial communication networks-high availability automation networks Part2:media redundancy protocol(MRP)[S].2010.
[2] Hansen K.Redundancy Ethernet in industrial automation[C]//Proceedings of 10th IEEE International Conference on Emerging Technologies and Factory Automation ETFA 2005,2005:941-947.
[3]SeifertR,Edwards J.The all-new Switch book:the complete guide to LAN switching technology[M].New Jersey:John Wiley&Sons,Inc,2000.
[4]Tanenbaum A S.計算機網絡[M].熊桂喜,王小虎,譯.3版.北京:清華大學出版社,2003.
[5]Cena G,Valenzano A,Vitturi S.Hybrid wired/wireless networks for real-time communications[J].Industrial Electronics Magazine,IEEE,2008,2(1):8-20.
[6]Kirrmann H,Hansson M,Muri P.IEC 62439 PRP:Bumpless recovery for highly available,hard real-time industrial networks[C]//IEEE Conference on Emerging Technologies&Factory Automation,ETFA,2007:1396-1399.
[7]程曉琳,徐用愚.現場總線控制網絡模型與網絡集成[J].測控技術,2000,19(10):35-37.
[8]夏鋒,孫優賢.基于交換式以太網實現多現場總線集成[J].電力系統及其自動化學報,2003,15(4):58-62.
[9]楊清宇.現場總線實時分布式控制網絡技術研究[D].西安:西安交通大學,2003.
[10]Prytz G.Redundancy in industrial Ethernet networks[C]//Proceedings of 6th IEEE InternationalWorkshop on Factory Communication Systems WFCS,2006:380-385.
[11]陸愛林,馮冬芹,榮岡,等.工業以太網的發展趨勢[J].自動化儀表,2004,25(2):1-4.
[12]郭俊能.寬帶傳輸網絡生存性及自愈技術研究[D].重慶:重慶大學,2000.
Study on Media Redundancy Protocol and Multiple Media Redundancy Manager
In accordance with the requirementof high availability for industrial communication network,by adopting the redundant ring network based on media redundancy protocol(MRP);when any failure occurs,the communication can be recovered quickly via establishing a new network topology.Through studying the solution of ring topological Ethernet redundancy given by MRP,on the basis of introduction of the working principle ofMRP,themechanism ofmultiple MRM is studied.Withmultiple MRM,the reliability of the ring can be improved,and the management and maintenance of the network may bemore convenient.
Industrial communication network High availability Ring redundancy Media redundancy protocol(MRP) Multiple media redundancy manager(MRM)
TP29
A
修改稿收到日期:2014-06-26。
高正明(1959-),男,1983年畢業于上海市業余工業大學輕工分校自動控制專業,獲學士學位,高級工程師;主要從事智能儀表及自動控制系統的研究。