當前最新的車載網絡廣泛采用以太網作為主干網絡,為了增強網絡的可靠性,通常采用了環網拓撲結構,允許數據通過多條路徑傳輸。然而,引入環網拓撲結構可能導致環路形成,進而帶來廣播風暴等潛在風險。為了規避這些問題,我們通常需要借助STP/RSTP等技術來防止環路形成,并在檢測到通信鏈路故障時實現無縫切換,從而減小故障對網絡通信的不良影響。然而,STP/RSTP等技術在鏈路切換時的收斂速度通常超過1秒,遠遠無法滿足車載網絡通信的要求。相比之下,ERPS技術為以太網環網提供了一種更快速的故障檢測和切換解決方案,確保在發生故障時網絡能夠以更快的速度恢復正常,因此在車載網絡中具有廣泛應用的潛力。
什么是ERPS
ERPS全稱是Ethernet Ring Protection Switching,即以太網環路保護切換,是ITU-T定義的一種二層破壞性協議標準,標準號為ITU-T G.8032/Y1344,因此又稱為G.8032,它定義了R-APS(Ring Auto Protecting Switching)協議報文和保護切換機制。ERPS包含v1和v2兩個版本,其中v2版本新增了子環等功能,且v2完全兼容v1。
以太網交換網絡中為了進行鏈路備份,提高網絡可靠性而引入的環網拓撲會使網絡上產生環路,可能會引起廣播風暴以及MAC地址表不穩定等現象,從而影響用戶通信質量,甚至導致通信中斷。為解決環路問題,引入了一系列的環網協議,包括RRPP、STP/RSTP/MSTP、SEP、ERPS等,其中ERPS旨在提供快速的故障檢測和切換,以確保網絡在出現故障時能夠迅速地從備用路徑傳輸數據,減小網絡中斷的時間,從而有效保證用戶通信質量。
ERPS技術和STP/RSTP/MSTP、RRPP、SEP等其他二層環路協議比較,具有以下優勢:
收斂速度快
ERPS吸取了STP/RSTP/MSTP等環網保護技術的優點,優化了檢測機制,收斂速度更快,可以達到ms級。
兼容性高
ERPS是ITU-T發布的標準二層環路協議,如果環網內制造商的設備都支持該協議,則可以實現互通。
ERPS原理
1.ERPS基本概念
ERPS的基本原理是通過阻塞環路中的部分端口,達到消除環路的目的,并通過快速檢測環路中的故障,選擇備份路徑并在切換后盡快恢復數據傳輸,以確保在發生故障時網絡能夠迅速而有效地繼續運行。下面結合圖1的單環結構,介紹ERPS涉及到的一些基本概念。
圖1. ERPS單環示意圖
環(Ethernet ring)
ERPS環是 ERPS協議的基本單位,是由一組配置了相同的控制 VLAN 且互連的交換設備構成。對于多環結構,則包含一個主環和至少一個子環。
節點(Ethernet ring node)
加入ERPS環的二層交換設備稱之為節點,每個節點不能多于兩個端口加入同一個ERPS環中,圖1中的Switch A ~ Switch D即為此ERPS環中的4個節點。
環網保護鏈路(RPL - Ring Protection Link)
非故障狀態下通過阻塞該鏈路兩端的端口防止形成環路,其兩端的端口分別為RPL owner端口與RPL neighbour端口。
端口角色(Port role)
ERPS協議中規定的端口角色主要有RPL owner端口、RPL neighbour端口和普通端口三種類型。其中RPL neighbour端口類型只有ERPSv2版本支持,v1版本不支持。
RPL owner端口
處于RPL鏈路一端的端口,由用戶配置指定,一個ERPS環只有一個RPL owner端口。非故障狀態下RPL owner 端口處于阻塞狀態,以防止鏈路產生環路。含有RPL owner端口的節點又稱為RPL owner節點。
RPL neighbour端口
處于RPL鏈路另一端的端口,RPL neighbour端口指的是與RPL owner端口直接相連的節點端口。非故障狀態下,RPL neighbour端口處于阻塞狀態,以防止產生環路。當 ERPS環網非RPL鏈路出現故障時,RPL owner端口和 RPL neighbour端口都會被打開。含有RPL neighbour端口的節點又稱為RPL neighbour節點。
普通端口
在ERPS環中,除RPL owner和RPL neighbour以外的端口都是普通端口。普通端口負責監測自己直連的鏈路狀態,并把鏈路狀態變化及時通知環網中其他節點。
2.ERPS協議報文
ERPS協議傳遞消息使用的是R-APS PDU,其格式如圖2所示,這是OAM消息定義中的一種,具體可參考IUT-T G.8013/Y1731的定義。R-APS PDU的目標MAC地址為0x01-0x19-0xA7-0x00-0x00-[Ring ID],其中Ring ID的默認值為0x01。
圖2. R-APS PDU格式
MEL:標識維護實例等級。
Version:ERPS協議版本,0x00為v1版本,0x01為v2版本。
OpCode:取固定值0x28,表明這是R-APS PDU。
Flags:取固定值0x00,此字段在接收時會被忽略。
TLV Offset:取固定值0x20,表示此PDU中的TLV從本字段之后偏移32個字節后開始。
R-APS Specific Information:攜帶ERPS環的重要信息,后文再詳細介紹。
Optional TLV:用戶可自定義需要攜帶的額外信息,如無額外信息需要攜帶,則無此字段。
End TLV:取固定值0x00。
針對R-APS Specific Information,在ERPS v2版本中的定義如圖3所示。
圖3. R-APS specific information格式
Request/State:標識該信息是請求信息或當前狀態信息。
表1. Request/status取值含義表
Sub-code:配合Request/status字段使用,當Request/status取值為1110時,本字段為0000表示FDB表項刷新請求。當Request/status取值為其他值時,本字段為保留字段,且在接收過程中會被忽略。
Status:包含特定的狀態信息。
RB(RPL Blocked):對于RPL owner節點,取值為1表示RPL鏈路被阻塞,取值為0表示RPL鏈路解除阻塞。非RPL owner節點發送的R-APS PDU中此值為0。
DNF(Do Not Flush):取值為1表示接收方應執行FDB表切換,取值為0表示接收方不執行FDB表切換。
BPR(Blocked Port Reference):阻塞端口標志位,取值為0表示阻塞ERPS環的第一個端口,取值為1表示阻塞ERPS環的第二個端口。
Node ID:發送此消息的節點MAC地址,屬于信息類字段,不影響ERPS環的保護切換過程。
Reserved 2:保留
3.ERPS單環鏈路故障保護切換過程
前文提到ERPS環是通過阻塞RPL Owner及RPL Neighbor端口達到消除環路的目的,并在檢測到環路中出現故障時,通過更新FDB表和端口狀態快速切換數據傳輸路徑保證數據傳輸,接下來將按照非故障-故障-故障移除的過程分析ERPS環網的保護切換過程。
1.非故障狀態如圖4所示,在非故障狀態下會阻塞RPL owner端口和RPL neighbour端口以防止形成環路,同時RPL owner節點會向其所在ERPS環的其他節點周期發送NRRB R-APS報文(即Request/State取值為0000,同時Status字段的RB位取值為1,表示RPL鏈路處于阻塞狀態),表明當前ERPS環中無故障。
圖4. ERPS單環非故障狀態
2.鏈路故障如圖5所示,當Switch C和Switch D之間的鏈路發生故障時(即檢測到鏈路link down),啟動保護切換機制,將故障鏈路兩端的端口阻塞并刷新本設備的FDB表。然后Switch C和Switch D通過發送SF R-APS報文將故障信息發送給ERPS環中的其他節點。當Switch A和Switch B收到SF R-APS報文后,分別打開RPL owner端口和RPL neighbour端口并刷新FDB表,保證通信暢通。
圖5. ERPS單環鏈路故障狀態
3.鏈路故障移除如圖6所示,當Switch C和Switch D之間的鏈路故障移除后(即檢測到鏈路重新link up),啟動故障回切模式,首先Switch C和Switch D停止發送SF R-APS報文并向外發送NR R-APS報文表明故障移除,Switch A和Switch B收到NR R-APS報文后,分別阻塞RPL owner端口和RPL neighbour端口并刷新FDB表,同時RPL owner節點向外發送NRRB R-APS報文,當Switch C和Switch D收到NRRB R-APS報文后,將原先故障狀態下阻塞的端口打開,停止發送NR R-APS報文并刷新FDB表。
圖6. ERPS單環鏈路故障移除狀態
總結
ERPS是以太網環網技術中的一種,主要通過阻塞部分端口來避免環路帶來的廣播風暴風險等問題。同時,通過快速故障檢測等機制實現通信鏈路的快速切換,可以滿足車載網絡等場景的應用需求。近些年出現的環網冗余技術中還有時間敏感網絡TSN中的IEEE 802.1 CB協議,北匯信息針對CB協議的測試開發及測試實施也積累了豐富的經驗,期待后續有機會與大家分享。
-
以太網
+關注
關注
40文章
5427瀏覽量
171810 -
通信
+關注
關注
18文章
6035瀏覽量
136053 -
車載網絡
+關注
關注
6文章
160瀏覽量
31795
發布評論請先 登錄
相關推薦
評論