1. 概述
很多工業(yè)應用要求現(xiàn)場設備采用線形拓撲聯(lián)網。使用線形拓撲,要求終端設備具有兩個以太網端口,實施串行連接的方式,從上一個設備連到下一個設備。這種連接的問題是:一旦一個節(jié)點設備或者連接失效,會導致整個網絡的失效。如果在終端設備上使用設備環(huán)協(xié)議, 配置成環(huán)形拓撲,這時單點失效就不會阻礙其他設備的通信了。
本文描述的設備環(huán)(DLR)協(xié)議在環(huán)形拓撲網絡上提供了高可用性。DLR協(xié)議最初打算用在EtherNet/IP的終端設備中,設備具有兩個以太網口,嵌入了交換機的技術,網絡具有快速的故障檢出和重新配置功能,可以滿足大多數(shù)控制應用的要求。比如:一個50節(jié)點的環(huán)網使用DLR協(xié)議,在最差的情況下,網絡恢復的時間小于3ms。
因為DLR協(xié)議運行在第2層(在ISO的OSI 網絡模型中),環(huán)形拓撲和DLR協(xié)議的運行,對于高層協(xié)議是透明的,諸如TCP/IP和CIP,除了通過CIP提供了一個DLR對象,這個對象包括了DLR配置和診斷接口。
DLR網絡至少要有一個節(jié)點(設備)、一個環(huán)監(jiān)督器和任何數(shù)量的常規(guī)環(huán)節(jié)點。這里假設所有環(huán)節(jié)點都有兩個以太網口,使用了嵌入式技術的交換機。非DLR的多口設備- 交換機或者節(jié)點設備-可以接入環(huán)中,但要服從一定的規(guī)則。非DLR 設備的接入會影響環(huán)網的恢復時間。
2. 支持的拓撲結構
DLR拓撲使用簡單的單環(huán)結構;不支持多環(huán)或者重疊環(huán)。網絡架構允許多于一個DLR環(huán),只要求多個環(huán)之間是隔離的。這樣,在一個環(huán)中的DLR協(xié)議幀不會在另一個環(huán)上出現(xiàn)。DLR協(xié)議可以與其他協(xié)議共存,且不會相互干擾。標準的網絡協(xié)議,諸如IEEE的生成樹協(xié)議(STP,RSTP,MSTP)、專有的冗余協(xié)議,可以和DLR一起運行。也就是說,用戶可以用交換機構建環(huán)形網絡,使用DLR協(xié)議,同時還可以運行生成樹協(xié)議或其他環(huán)協(xié)議,見圖1。
圖1:使用交換機的DLR
在圖1中,每個DLR都是隔離的DLR網絡,每個環(huán)都有一個環(huán)監(jiān)督器(DLR Supervisor)。圖示中的監(jiān)督器有一個端口為封閉模式,用短紅線表示,這是在環(huán)沒有故障的情況下。
連接DLR的交換機可以運行STP/RSTP/MSTP, 當冗余路徑存在時(圖1中用綠線表示),生成樹協(xié)議可以防止環(huán)路產生。交換機在DLR環(huán)端口發(fā)送的生成樹協(xié)議報文會由DLR環(huán)監(jiān)督器(參考IEEE 802.1D/802.1Q STP/RSTP/MSTP協(xié)議)阻斷,交換機不會阻斷DLR信息。
連接了DLR設備的交換機端口必須進行配置,以確保能夠完成相應的功能。較復雜的拓撲可能是結合DLR環(huán)和非DLR交換機時運行STP/RSTP/MSTP,可能在DLR端口產生被阻止的情況。參考DLR規(guī)范了解詳情。
[DividePage:NextPage]
3. 正常運行
圖2表示了一個DLR網絡正常運行的情況。就像圖中顯示的,每個節(jié)點有兩個以太網口,并假設內嵌了交換機。當節(jié)點設備接收到一個以太網口包時,它要決定是接收這個包(比如,包有節(jié)點的MAC地址),還是要從另一個以太網口轉發(fā)這個包。
圖 2: 正常運行
有效的環(huán)監(jiān)督器阻斷另一個端口的通信,除了一些特殊幀,它不轉發(fā)從一個口到另一個口的數(shù)據。使用這樣的機制,可以避免網絡環(huán)路的形成。在正常工作期間,任何兩個環(huán)節(jié)點之間只有一條路徑存在。
在每個信標間隔(缺省值為400微秒),有效環(huán)監(jiān)督器通過它的兩個以太網口發(fā)送一次信標幀。有效環(huán)監(jiān)督器每秒還發(fā)送一次通告幀。發(fā)送信標和通告幀可以達到以下的目的:
1. 信標和通告幀可以通知環(huán)節(jié)點從線形拓撲到環(huán)形拓撲的轉換。
2. 監(jiān)督器的信標幀丟失可以檢測到某種類型的故障。(注:通用環(huán)節(jié)點也能檢查環(huán)和通知環(huán)故障)。
3. 信標幀攜帶一個優(yōu)先值,當配置了多個環(huán)監(jiān)督器時,通過這個值選擇一個有效監(jiān)督器。
圖3表示由有效環(huán)監(jiān)督器發(fā)送信標和通告幀:
圖3: 信標和通告幀
4. 連接失效
4.1公共失效
最常見的公共鏈接失效形式包括下面的情形:
? 連接或者其他物理層失效由相鄰節(jié)點查出。
? 一個環(huán)節(jié)點的電源失效或者電源波動,由相鄰節(jié)點查出,認為是連接失效。
? 介質被用戶有意斷開,比如增加新節(jié)點或者刪減已有節(jié)點。
在上述情況下,故障相鄰節(jié)點會發(fā)送一個Link_Status信息到有效環(huán)監(jiān)督器。圖4 表示了故障相鄰的環(huán)節(jié)點各自發(fā)送一個Link_Status信息到有效環(huán)監(jiān)督器。
圖4:鏈接失效
接收了Link_Status信息之后,有效環(huán)監(jiān)督器重新配置網絡,釋放以前被封閉的端口,更新它的單播MAC表。監(jiān)督器立即發(fā)送帶有環(huán)狀態(tài)值的信標和通告幀,指出環(huán)現(xiàn)在出現(xiàn)故障。
[DividePage:NextPage]
根據一個方向上信標檢測的丟失信息、或根據帶有環(huán)狀態(tài)值的信標和通告幀,環(huán)節(jié)點也要更新它們的單播MAC表。在監(jiān)督器和環(huán)節(jié)點同時都更新了單播 MAC表以后,網絡完成了重新配置,通信才能繼續(xù)進行。
圖5表示了在連接失效后網絡的配置,通信信息經過了有效環(huán)監(jiān)督器的兩個口。
圖5: 在鏈接失效后網絡重新配置
4.2 非公共失效
除了大多數(shù)的公共連接失效外,還有一類非公共失效:
? 在一個環(huán)節(jié)點的高層硬件/固件故障引起通信丟失,但物理層功能正常,電源也正常。
? 環(huán)協(xié)議未知節(jié)點與協(xié)議識別節(jié)點連接成鏈,這個鏈的中間某處出現(xiàn)失效。
在這些情況下,有效環(huán)監(jiān)督器會先在一個口檢查信標幀的丟失,然后在兩個口都檢查到。這時有效環(huán)監(jiān)督器會重新配置網絡,和公共失效的情況一樣。另外,有效環(huán)監(jiān)督器會發(fā)送一個Locate_Fault幀診斷故障位置。
還有可能出現(xiàn):網絡的一部分發(fā)生故障(如這部分由同一個電源供電,這個電源出了故障),會導致通信僅在一個方向上丟失。有效環(huán)監(jiān)督器檢測到在一個口的信標丟失,可以查出這種故障。當有效環(huán)監(jiān)督器的封閉口檢測到部分故障時,會在DLR對象中設置狀態(tài)值。因為是部分故障,環(huán)從這個點會進行網絡分段,這時還需要用戶的參與,排除故障。
某些特殊條件,諸如一個網絡連接器連接不可靠,可能會使有效環(huán)監(jiān)督器不斷在故障/恢復周期中循環(huán)。如果一直這樣持續(xù),會引起網絡狀態(tài)的不穩(wěn)定,而且很難診斷的問題所在。當有效環(huán)監(jiān)督器快速檢測故障/恢復條件(在一個30秒周期發(fā)現(xiàn)5故障)時沒有發(fā)現(xiàn)故障,會在DLR對象中設置一個狀態(tài)值,在一個端口阻止通信。用戶必須通過DLR對象,顯式地清除這個狀態(tài)值。
5.DLR設備的分類
DLR的設備分為下面幾類。執(zhí)行每類的詳細要求會在后續(xù)章節(jié)定義。
環(huán)監(jiān)督器
這類設備執(zhí)行環(huán)監(jiān)督器的功能。必須完成要求的環(huán)監(jiān)督器行為,包括在缺省信標間隔400微秒時,發(fā)送和處理信標幀的能力。
支持信標幀的環(huán)節(jié)點
這類設備能夠執(zhí)行DLR協(xié)議,但沒有環(huán)監(jiān)督器的功能。它們能夠處理和執(zhí)行環(huán)監(jiān)督器發(fā)送的信標幀。支持信標的環(huán)節(jié)點要支持以400微秒間隔接收信標的速率。
支持通告幀的環(huán)節(jié)點
這類設備能夠執(zhí)行DLR協(xié)議,但沒有環(huán)監(jiān)督器的功能。因為這種環(huán)節(jié)點不處理信標幀,所以只能轉發(fā)信標幀。這種節(jié)點可以處理通告幀。
[DividePage:NextPage]
6. 實施要求
6.1 嵌入式交換機的要求和建議
下面是對使用嵌入式技術交換機(無論使用哪種商用芯片,F(xiàn)PGA,ASIC,等)的通用要求和建議:
? IEEE 802.3操作:
? 自動協(xié)商,10/100Mbps,全/半雙工(要求);
? 速度/雙工的強迫設置(要求);
? 推薦:在環(huán)口關閉流控制。
? 自動MDIX(介質隨接口交叉),在自動協(xié)商和強迫設置速度/雙工模式下。 注:這是物理層和轉換問題,不是嵌入交換問題(要求)。
? QoS:
? 2 個隊列(要求);4個隊列(推薦);
? 因為DLR幀具有排列中的高優(yōu)先級,所以需要嚴格執(zhí)行優(yōu)先級排序功能(要求);
? 使用802.1Q/D 的優(yōu)先次序(要求),和DSCP-差分服務代碼點 (高度推薦)。要與EtherNet/IP 的QoS 標準相一致。對于IP幀,嵌入交換機要使用DSCP值。對于非IP幀,使用在802.1Q幀頭中的優(yōu)先級位。
? 限制主機CPU的廣播速率(推薦)。設備容忍的廣播閥值取決于主機CPU。一般的推薦為:當廣播通信量超過帶寬的1%時,廣播流量限制應該使能。
? 到主機CPU 的單播和多播過慮(推薦,實踐證明大多數(shù)設備需要這個功能)。
6.2 DLR 實施要求
下面的要求應用于DLR節(jié)點,無論是環(huán)監(jiān)督器還是環(huán)節(jié)點:
? 保持環(huán)協(xié)議幀中的 IEEE 802.1Q VLAN Id 和標簽優(yōu)先級。
? 在環(huán)口禁止IP多播過慮或者在環(huán)狀態(tài)轉換時更新多播過慮表。
? 為環(huán)口轉發(fā)信標幀和主機CPU執(zhí)行信標幀配置多播地址。
? 為通告和Locate_Fault 幀轉發(fā)到主機CPU和環(huán)口配置多播地址。
? 為Neighbor_Check_Request /Response和Sign_On僅轉發(fā)給主機CPU配置多播地址。
? 執(zhí)行一種機制:標記從環(huán)上收到這種幀的端口。
? 執(zhí)行一種機制:轉發(fā)從主機CPU到環(huán)的這種幀,僅通過該端口發(fā)出。
? 配置有效環(huán)監(jiān)督器的單播MAC地址,這樣監(jiān)督器可以在兩個口轉發(fā)幀。
? 在環(huán)狀態(tài)轉換時,更新單播MAC 地址表(或者禁止學習)。
? 配置自己的單播MAC地址,這樣在MAC地址表更新時,它不會被清除。
? 執(zhí)行以太網連接對象的接口計數(shù)器和介質計數(shù)器屬性,幫助進行網絡監(jiān)視。
? 執(zhí)行QoS對象,至少要有由設備產生的EtherNet/IP通信DSCP記號。
? 推薦:配置訪問控制列表或者其他適合的機制-在接收報文時,除去來自網絡設備自己的幀(比如,在環(huán)啟動/恢復周期)。
7. 結論
DLR協(xié)議適合在EtherNet/IP網絡上使用。DLR網絡可以容錯所有單點失效,在單環(huán)拓撲中提供了高可用性網絡。在50個節(jié)點的DLR網絡中,最差的情況下,網絡的恢復時間小于3ms??焖俚墓收匣謴停沟肈LR網絡可以在實時的控制系統(tǒng)中使用。
(轉載)