專利名稱:鏈形和環(huán)形網(wǎng)絡(luò)中用于透明自動恢復(fù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及鏈形和環(huán)形網(wǎng)絡(luò)中用于鏈路故障的透明自動恢復(fù)的方法。更具體 地,本發(fā)明涉及在故障情形期間數(shù)據(jù)業(yè)務(wù)的自動重新路由。
背景技術(shù):
個人、企業(yè)和政府日益依賴計算機系統(tǒng)和網(wǎng)絡(luò)計算操作來進行關(guān)鍵的服務(wù)和商務(wù) 活動。在這樣的系統(tǒng)中,網(wǎng)絡(luò)正常運行時間(uptime)對于基本的服務(wù)或操作的平穩(wěn)運轉(zhuǎn)可 能是非常關(guān)鍵的,并且網(wǎng)絡(luò)故障必須被迅速隔離或恢復(fù)。因而,在網(wǎng)絡(luò)故障條件下的故障隔 離和自動恢復(fù)是較高帶寬的網(wǎng)絡(luò)和關(guān)鍵任務(wù)的網(wǎng)絡(luò)的至關(guān)重要的要求。此外,在典型的網(wǎng) 絡(luò)故障和恢復(fù)情形下,甚至幾百毫秒量級的延遲也可能是非常嚴重的。在網(wǎng)絡(luò)故障情形期間可能遇到的另一個問題是不能訪問處于故障位置的物理鏈 路或設(shè)備。例如,在制造或其它自動化系統(tǒng)中,結(jié)構(gòu)可能是分散或分布式的,同時其性能則 比得上集中式系統(tǒng)。例如,ADVANTYS STB分布式I/O系統(tǒng)是開放的模塊化輸入輸出系統(tǒng), 其使得可以設(shè)計經(jīng)由總線或通信網(wǎng)絡(luò)由主控制器管理的自動化的島。ADVANTYS STB分布 式 I/O 系統(tǒng)是 Schneider Automation Inc.公司 (One High Street,North Andover, Massachusetts)的產(chǎn)品。往往,島和關(guān)聯(lián)的I/O模塊可以廣泛地分散并且可以位于隔離位置中,或者目標 系統(tǒng)可以被封裝到其它機器中。在這些類型的網(wǎng)絡(luò)操作中,在故障情況期間獲得對于遠程 I/O模塊或網(wǎng)絡(luò)鏈路的物理訪問可能非常困難。此外,在諸如工業(yè)自動化系統(tǒng)的網(wǎng)絡(luò)中,可 靠性是至關(guān)重要的。例如在工廠中,如果網(wǎng)絡(luò)連接斷開,則操作員可能受到身體傷害。在這 些類型的網(wǎng)絡(luò)操作中,故障恢復(fù)必須是自動的。在典型的故障恢復(fù)情形中,當故障發(fā)生時,將數(shù)據(jù)業(yè)務(wù)從當前有故障的路徑重新 路由或切換到備用路徑。依賴于實際的冗余策略,應(yīng)急或備用數(shù)據(jù)路徑可以是專用的,可 以需要連接的物理變化,或者可以是到活動的或主路徑的虛擬的備用路徑。用于在網(wǎng)絡(luò) 中提供冗余的當前的軟件方法要求網(wǎng)絡(luò)上的設(shè)備分析或探索整個網(wǎng)絡(luò)以確定備用路徑。 快速生成樹協(xié)議(RSTP)和Hirschmann HIPER-Ring 是兩種這樣的方法。在RSTP和 Hirschmanr^HIPER-Ring 二者中,在可以實現(xiàn)重新路由之前必須探索整個網(wǎng)絡(luò),增加了用 于故障恢復(fù)的的時間和計算資源的使用。此外,在RSTP和hirSChmannTMHIPER-RingTM 二者 中,實現(xiàn)故障恢復(fù)的網(wǎng)絡(luò)設(shè)備必須與網(wǎng)絡(luò)上的其它網(wǎng)絡(luò)設(shè)備通信。因而,需要一種即時的、由網(wǎng)絡(luò)設(shè)備自動實施的、且對網(wǎng)絡(luò)上的其它節(jié)點透明的故 障恢復(fù)的方法。
發(fā)明內(nèi)容
本發(fā)明的方面提供一種在基于環(huán)形拓撲的網(wǎng)絡(luò)中的自動的故障恢復(fù)的高效且快 速的方法。在網(wǎng)絡(luò)中的鏈路發(fā)生故障時,將數(shù)據(jù)業(yè)務(wù)自動重新路由而不需要系統(tǒng)或網(wǎng)絡(luò)重 新配置。此外,在環(huán)上的每個節(jié)點處執(zhí)行自動恢復(fù)操作而不需要節(jié)點之間的消息交換以及與遠程客戶端通信。根據(jù)本發(fā)明的實施例,從遠程主機向環(huán)形網(wǎng)絡(luò)上的節(jié)點發(fā)送的每個數(shù)據(jù)分組被從 邊緣交換機上的兩個端口同時組播到該環(huán)形網(wǎng)絡(luò)。因而,在正常操作條件下,接收節(jié)點接 收環(huán)形網(wǎng)絡(luò)上來自兩個相反方向的該數(shù)據(jù)分組的兩個副本。根據(jù)本發(fā)明的各方面,數(shù)據(jù)分 組的第一副本由該節(jié)點處理,而數(shù)據(jù)分組的第二副本被丟棄。但是,在鏈路或設(shè)備故障條件 下,正常數(shù)據(jù)流可能被破壞。在故障條件下,本發(fā)明假定數(shù)據(jù)分組的至少一個副本將被接收 節(jié)點接收到。此外,根據(jù)本發(fā)明的各方面,在每個本地節(jié)點上迅速處理故障條件下的自動恢復(fù) 動作,因而可以優(yōu)化總的處理時間。因此,所有的自動恢復(fù)相關(guān)操作對遠程主機是透明的。
本發(fā)明在附圖中以示例的方式示出,并且不受附圖限制,其中圖1描述可以在其上執(zhí)行本發(fā)明的實施例的示范性環(huán)形網(wǎng)絡(luò)。圖2描述適合用于實現(xiàn)這里描述的自動恢復(fù)技術(shù)的示范性網(wǎng)絡(luò)節(jié)點。圖3A是描述根據(jù)本發(fā)明的數(shù)據(jù)流和自動恢復(fù)技術(shù)的一個實施例的流程圖。圖3B是描述根據(jù)本發(fā)明的數(shù)據(jù)流和自動恢復(fù)技術(shù)的另一個實施例的流程圖。圖4A和4B描述根據(jù)本發(fā)明的實施例的兩個示范性環(huán)形網(wǎng)絡(luò)上的數(shù)據(jù)流。圖5A描述根據(jù)本發(fā)明的實施例的示范性環(huán)形網(wǎng)絡(luò)上的示范性故障位置。圖5B至5G描述根據(jù)本發(fā)明的實施例的示范性環(huán)形網(wǎng)絡(luò)上在故障條件期間的數(shù)據(jù) 流。
具體實施例方式本發(fā)明的各方面提供用于在雛菊鏈環(huán)路或其它環(huán)形聯(lián)網(wǎng)系統(tǒng)上使用的自動恢復(fù) 機制。圖1描述可以在其上執(zhí)行本發(fā)明的實施例的示范性環(huán)形網(wǎng)絡(luò)103。該示范性網(wǎng)絡(luò)包 括具有冗余鏈路102和104的邊緣交換機100、以及示范性網(wǎng)絡(luò)節(jié)點110、120、130、140和 150。可以使用諸如以太網(wǎng)的各種數(shù)據(jù)鏈路層協(xié)議來實現(xiàn)網(wǎng)絡(luò)103。每個網(wǎng)絡(luò)節(jié)點包含兩個 端口 A和B,并且端口 A和B均可以用于進入(ingress)和出外(egress)業(yè)務(wù)(traffic)。 因而,圖1中描述的示范性網(wǎng)絡(luò)已經(jīng)提供了設(shè)備級(facility level)冗余,因為環(huán)路或環(huán) 103上存在兩個冗余數(shù)據(jù)路徑(151和111)。除了所述冗余數(shù)據(jù)路徑之外,可以為邊緣交換 機100提供兩個冗余數(shù)據(jù)鏈路102和104,在這兩個冗余數(shù)據(jù)鏈路上,可以從冗余數(shù)據(jù)路徑 151和111上的端口 107和108將業(yè)務(wù)組播出去。網(wǎng)絡(luò)提供領(lǐng)域的技術(shù)人員將理解且能提 供這些類型的設(shè)備冗余。根據(jù)圖1,節(jié)點110充當?shù)窖芈窂?11的網(wǎng)絡(luò)環(huán)路103的入口端口,并且還作為用 于沿路徑151的環(huán)路103的出口端口。對稱地,節(jié)點150充當用于沿路徑151的網(wǎng)絡(luò)環(huán)路 103的入口端口,并且還作為用于沿路徑111的環(huán)路103的出口端口。此外,節(jié)點110和150 均直接連接到建立閉合環(huán)路的邊緣交換機100。環(huán)路103中間的節(jié)點120、130和140均連 接到兩個相鄰節(jié)點。以太網(wǎng)邊緣交換機100充當?shù)酵獠烤W(wǎng)絡(luò)101 (由鏈路102和104服務(wù)) 的入口點(進入)和出口點(出外)二者。根據(jù)本發(fā)明的另一個實施例,可以禁用邊緣交換機節(jié)點100上的一個端口(圖1的105或106)。在這樣的情形下,可以將從鏈路(102或104)接收到的數(shù)據(jù)組播到端口 107 和108。下面將參照圖4B進一步討論此情形??梢允褂弥T如以太網(wǎng)交換機的通用交換機設(shè)備來支持這里描述的本發(fā)明的實施 例。該交換機可以提供從四個端口中的任何一個到另一個其它端口的非阻塞分組轉(zhuǎn)發(fā)。此 夕卜,邊緣交換機應(yīng)當能夠支持從任何端口到任何端口的分組廣播和分組組播二者,如這里 所述。
可以利用諸如圖2所示的網(wǎng)絡(luò)節(jié)點200的各種傳統(tǒng)聯(lián)網(wǎng)計算機系統(tǒng)來實現(xiàn)本發(fā)明 的各方面。節(jié)點200包括用于接收進入數(shù)據(jù)業(yè)務(wù)和發(fā)送出外數(shù)據(jù)業(yè)務(wù)的網(wǎng)絡(luò)接口端口 202 和204、中央處理器206、系統(tǒng)存儲器208、以及耦接包括端口 202和204、中央處理器206和 系統(tǒng)存儲器208的各種系統(tǒng)組件的系統(tǒng)總線210。系統(tǒng)總線210可以是幾種類型的總線結(jié) 構(gòu)中的任何一種,包括存儲器總線或存儲控制器、外圍總線、和使用各種總線結(jié)構(gòu)中的任何 一種的本地總線。系統(tǒng)存儲器208的結(jié)構(gòu)對本領(lǐng)域技術(shù)人員來說是公知的,并且可以包括 存儲在只讀存儲器(ROM)中的基本輸入/輸出系統(tǒng)(BIOS)和存儲在隨機存取存儲器(RAM) 中的一個或多個程序模塊(諸如,操作系統(tǒng)、應(yīng)用程序和程序數(shù)據(jù))。接口 202和204可以 是本領(lǐng)域技術(shù)人員公知的任何類型的網(wǎng)絡(luò)接口。此外,計算機200可以包括用于與其它類 型的計算機可讀介質(zhì)接口連接的驅(qū)動器。節(jié)點200的操作可以由各種不同的程序模塊控制。程序模塊的示例是執(zhí)行特定任 務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組分(component)、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明也 可以在分布式計算環(huán)境中實踐,其中由通過諸如圖1的示范性網(wǎng)絡(luò)的通信網(wǎng)絡(luò)鏈接的遠程 處理設(shè)備執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊既可以位于本地存儲器存儲設(shè)備中也 可以位于遠程存儲器存儲設(shè)備中。圖3A和3B是描述根據(jù)本發(fā)明的自動恢復(fù)技術(shù)的數(shù)據(jù)流和算法的實施例的流程 圖。圖3A描述處理單播、廣播和組播數(shù)據(jù)業(yè)務(wù)的網(wǎng)絡(luò)中的一般(generic)數(shù)據(jù)流和算法。 圖3B描述僅涉及接收和處理單播數(shù)據(jù)業(yè)務(wù)的網(wǎng)絡(luò)中的特定的數(shù)據(jù)流。下面將參照圖4A-4B 和圖5A-5G討論圖3A和3B。圖4A和4B描述根據(jù)本發(fā)明的實施例的兩個示范性環(huán)形網(wǎng)絡(luò)上的數(shù)據(jù)流。圖4A 的網(wǎng)絡(luò)中,以太網(wǎng)邊緣交換機400配置有四個端口(405、406、407和408),而圖4B描述其 中以太網(wǎng)邊緣交換機400配置有三個端口(405、407和408)的網(wǎng)絡(luò)。圖4A的網(wǎng)絡(luò)包括進 一步的冗余,其中端口 405和406支持到外部網(wǎng)絡(luò)401的冗余鏈路402和404。相反,圖4B 的網(wǎng)絡(luò)僅僅支持在端口 405上到外部網(wǎng)絡(luò)401的一個鏈路402。圖4A中,兩個端口 405和406被配置在邊緣交換機400上,并且專用于通過冗余 鏈路402和404到外部網(wǎng)絡(luò)401的連接。端口 407和408可以專用于邊緣交換機與兩個頭 節(jié)點410和450之間的連接。在進入方向上,交換機400可以提供從端口 405到端口 407 和從端口 406到端口 408的內(nèi)部分組轉(zhuǎn)發(fā)。業(yè)務(wù)流460和480描述進入業(yè)務(wù)。在出外方向 上,邊緣交換機可以組播從端口 407到端口 405和406的出外業(yè)務(wù)470。對稱地,可以將到 達端口 408上的出外業(yè)務(wù)組播到端口 405和端口 406 二者。圖4A中可見,可以在其端口 405和其端口 406上接收從遠程主機到內(nèi)部環(huán)路網(wǎng)絡(luò) 403上的節(jié)點的任何分組。如果僅配置了一個鏈路,如圖4B中所見的端口 405或端口 406, 倘若該一個鏈路有故障,則該分組將不會被保護。但是,如果配置了兩個鏈路,則該分組將被保護,并且可以從一個鏈路上的故障中幸存。
圖4B中,僅僅一個端口 405被配置在邊緣交換機400上并且專用于通過鏈路402 到外部網(wǎng)絡(luò)401的連接。在進入方向上,交換機400可以提供從端口 405到端口 407和408 的內(nèi)部分組轉(zhuǎn)發(fā)/組播。業(yè)務(wù)流482和486描述進入業(yè)務(wù)。在出外方向上,邊緣交換機400 可以將出外業(yè)務(wù)484從端口 407轉(zhuǎn)發(fā)到端口 405。根據(jù)這里描述的本發(fā)明的實施例,不管是提供一個(圖4A)還是兩個(圖4B)外 部鏈接,邊緣交換機400的端口 407和408都必須被使能。如果提供兩個外部鏈接,則兩個 進入端口 405和406將都被使能。如果僅僅提供一個鏈路,則僅僅連接到該鏈路的端口將 被使能。如果兩個端口均被使能,則在端口 405上接收的任何分組將被轉(zhuǎn)發(fā)到端口 407 (點 到點);在端口 406上接收的任何分組將被轉(zhuǎn)發(fā)到端口 408 (點到點)。如果僅僅一個端口 被使能,則在該端口上接收的任何分組將被組播到兩個端口 407和端口 408。這些控制邏輯 可以在邊緣交換機400的系統(tǒng)配置中預(yù)定義和實施、或者可以在邊緣交換機的正常的工作 模式中動態(tài)地定義。此外,該鏈路上的每個節(jié)點410、420、430、440和450包含至少兩個全雙工端口 A 和B。一個端口用于將每個節(jié)點連接到其上游節(jié)點或邊緣交換機400,而另一個端口用于將 每個節(jié)點連接到其下游節(jié)點或邊緣交換機400。在如圖4A和4B所示的環(huán)路網(wǎng)絡(luò)403之內(nèi), 節(jié)點410的端口 A可以具有與邊緣交換機400的端口 407的直接連接,并且節(jié)點410的端 口 B可以直接連接到其沿著路徑411的下游節(jié)點420的端口 A。此鏈路連接一直繼續(xù)到節(jié) 點450,其中節(jié)點450的端口 B可以直接連接到邊緣交換機400上的端口 408,以閉合該連 接環(huán)路。反方向?qū)τ诼窂?51也一樣。因此,如圖4A和4B所示,在網(wǎng)絡(luò)環(huán)路403中提供兩組冗余。首先,可以由遠程主 機經(jīng)由外部網(wǎng)絡(luò)401提供一對冗余鏈路402和404以經(jīng)由邊緣交換機400連接到環(huán)路403。 此冗余可以用于在鏈路402或404中斷時自動恢復(fù),下面將進一步描述。如上所述,在描述 的一個實施例中支持此冗余。此外,可以在由節(jié)點410、420、430、440和450創(chuàng)建的網(wǎng)絡(luò)環(huán) 路403之內(nèi)提供兩個冗余的全雙工數(shù)據(jù)路徑451和411。此冗余可以用于在網(wǎng)絡(luò)環(huán)路403 內(nèi)發(fā)生故障時的自動恢復(fù),下面將進一步描述。圖4A進一步描述在具有4端口配置的邊緣交換機400的正常操作條件下的數(shù)據(jù) 流。在端口 405上接收的業(yè)務(wù)可以被轉(zhuǎn)發(fā)到端口 407,并且進一步被傳送到環(huán)路403的路徑 411上,其中業(yè)務(wù)460進入網(wǎng)絡(luò)節(jié)點的環(huán)路403。類似地,在端口 406上接收的業(yè)務(wù)可以被 轉(zhuǎn)發(fā)到端口 408,然后相同的業(yè)務(wù)480被傳送到環(huán)路403上的451上。在圖4A中,數(shù)據(jù)分組 被傳送到節(jié)點420,其中數(shù)據(jù)分組的目標地址是節(jié)點420的網(wǎng)絡(luò)地址。例如,數(shù)據(jù)分組的目 標地址可以是節(jié)點420的IP地址。每個節(jié)點進一步包含分組處理例程422和分組靜噪例 程424。圖4B類似地描述在具有3端口配置的邊緣交換機的正常操作條件下的數(shù)據(jù)流。參考圖4A,而且在正常操作條件下,在網(wǎng)絡(luò)環(huán)路403上流動的每個數(shù)據(jù)分組沿著 兩個單獨的路徑451和411移動。因而,環(huán)路403上的每個節(jié)點接收同一數(shù)據(jù)分組的兩個副 本。根據(jù)本發(fā)明的各方面,分組的第一副本將由例程422處理,并且第二副本將被例程424 丟棄(參見圖3A和3B)。根據(jù)圖4A的實施例,在邊緣交換機400上,在出外方向上在端口 407或408上接收的數(shù)據(jù)分組(業(yè)務(wù)流470)將被組播到兩個端口 405和406。從遠程主機向內(nèi)部環(huán)路網(wǎng)絡(luò)403上的節(jié)點發(fā)送的任何分組經(jīng)由邊緣交換機400進入環(huán)路網(wǎng)絡(luò)403,并且可以被從端口 407或端口 408傳送。如果該分組沿著路徑411被節(jié)點410、420、430、440或450中的任何一個接收,則接收端口將是它的端口 A。如果該分組沿著 451被接收,則接收端口將是它的端口 B。參考圖4A和4B 二者,可以在端口 407或408而不是其二者上接收從內(nèi)部網(wǎng)絡(luò)環(huán) 路403上的節(jié)點向外部網(wǎng)絡(luò)401上的遠程主機發(fā)送的任何響應(yīng)消息分組。如果僅僅配置一 個外部鏈路(參考圖4B),則該分組將被轉(zhuǎn)發(fā)到配置的外部鏈路405或406,其中響應(yīng)消息 將經(jīng)由外部網(wǎng)絡(luò)401被傳送到遠程主機。如果配置兩個鏈路,則該分組將被組播到兩個端 口 405和406,其中該分組將經(jīng)由外部網(wǎng)絡(luò)401在兩個外部鏈路上被傳送到遠程主機??梢越?jīng)由邊緣交換機400發(fā)送從內(nèi)部環(huán)路網(wǎng)絡(luò)403上的節(jié)點向遠程主機發(fā)送的任 何響應(yīng)分組。從該內(nèi)部節(jié)點(圖4A中的節(jié)點420),可以創(chuàng)建分組并在它的端口 A或端口 B 而不是兩個端口上將分組發(fā)送出去。如果在端口 A上發(fā)送響應(yīng)分組,則將通過路徑451將 該分組發(fā)送給邊緣交換機400上的端口 407。如果在端口 B上發(fā)送該分組,則將通過路徑 411將該分組發(fā)送給邊緣交換機400上的端口 408。誘明自動恢復(fù)方法和算法回來參考圖3A中描述的實施例,當節(jié)點在步驟302接收數(shù)據(jù)分組時,該節(jié)點開始 處理該分組(步驟304-314和步驟328)。在該分組被處理之后,如果從來沒有在該節(jié)點上 接收過該分組,則該節(jié)點或者在步驟332和334通過沿著相同的路徑但是在相反方向上發(fā) 送響應(yīng)或應(yīng)答分組來決定處理該分組,或者在步驟318中將該分組轉(zhuǎn)發(fā)到它的下游節(jié)點。 或者,如果先前已經(jīng)接收過相同的分組,則該節(jié)點將在步驟328和步驟330丟棄該分組?;?來參考圖3B中描述的實施例,當節(jié)點在步驟340接收到不是尋址到該節(jié)點的數(shù)據(jù)分組時, 該節(jié)點沿著相同的路徑將相同的分組轉(zhuǎn)發(fā)到它的下游節(jié)點(步驟344)而不進一步處理該 數(shù)據(jù)分組。當節(jié)點在步驟340接收到尋址到該節(jié)點(例如,圖4A和4B中的節(jié)點420)的數(shù) 據(jù)分組時,該節(jié)點處理該分組(步驟354-370)。在該分組被處理之后,該節(jié)點在步驟374沿 著相同的路徑但是在相反方向上發(fā)送響應(yīng)或應(yīng)答分組。下面將進一步描述圖3A和3B所示 的兩個實施例。根據(jù)圖3A的實施例,在步驟300,節(jié)點等待分組。在步驟302,節(jié)點(例如,圖4A 中的節(jié)點420)在它的端口之一(例如,圖4A中的節(jié)點420的端口 A)接收分組。對于在節(jié) 點的端口 A或端口 B上接收的每個有效分組,該節(jié)點可以在步驟304在本地將該分組的事 務(wù)信息和接收該分組的時間的時間戳保存在用于該端口的數(shù)據(jù)結(jié)構(gòu)中。此信息可以接著在 步驟308-312中使用。本領(lǐng)域技術(shù)人員可以確定用于本發(fā)明的實施例的合適的數(shù)據(jù)結(jié)構(gòu)。 合適的數(shù)據(jù)結(jié)構(gòu)可以具有以下特性新條目能夠被容易地插入到該結(jié)構(gòu)中;遍歷該結(jié)構(gòu)中 的條目的整個列表、或第一和最后一個條目是容易且快速的;當該列表充滿時,該結(jié)構(gòu)的最 后一個條目可以被刪除,以便為要被插入到該列表中的新條目騰出空間;該結(jié)構(gòu)將具有固 定數(shù)目的條目。此外,根據(jù)本發(fā)明的各方面的數(shù)據(jù)結(jié)構(gòu)隊列應(yīng)當具有足夠的空間以容納在與分組 從入口點到出口點穿過整個環(huán)路網(wǎng)絡(luò)所用的時間(參見處理步驟308-312期間)對應(yīng)的時 間窗口中的所有接收的且有效的分組。此窗口包括分組花在環(huán)路上的節(jié)點之間的每個鏈路 上的時間加上在每個節(jié)點內(nèi)部將該分組從端口 A轉(zhuǎn)發(fā)到端口 B的內(nèi)部節(jié)點時間。因此,實 際需要的隊列尺寸實際上取決于環(huán)路的尺寸。
因而,在圖3A的步驟304,節(jié)點檢索尋址到該節(jié)點的接收的分組的事務(wù)信息和時 間戳。該事務(wù)信息可以是包括在該分組的首標或有效載荷中的、用于標識該分組的任何形 式的信息或標識符。在步驟306,確定在該節(jié)點的哪個端口上接收到該分組。如果在該節(jié)點 的端口 A上接收到該分組,則該節(jié)點檢索在端口 B上接收的最新的分組的時間戳,并從正被 處理的當前分組的時間戳減去此時間戳以得出delta時間(步驟308)。如果在該節(jié)點的 端口 B上接收到該分組,則該節(jié)點檢索在端口 A上接收的最新的分組的時間戳,并從正被處 理的當前分組的時間戳減去此時間戳以得出delta時間(步驟310)。接著,在步驟312,該 節(jié)點將該delta時間與給定系統(tǒng)的往返時間(round trip time)相比較。對于任何給定系 統(tǒng),往返時間是分組游歷環(huán)路(例如從節(jié)點400上的端口 405 (參考圖4A)到節(jié)點410,然 后到節(jié)點420,一直到節(jié)點400的端口 406)所花的最長的時間。如果由節(jié)點計算的delta 時間大于或等于環(huán)路網(wǎng)絡(luò)的往返時間,則該節(jié)點不需要遍歷對等端口的數(shù)據(jù)結(jié)構(gòu)以查找匹 配,因為該節(jié)點不會已經(jīng)接收到該分組。更準確地說,該節(jié)點接收到的將會是該分組的第一 副本,該節(jié)點將處理該分組而不是丟棄。因而,在步驟314,該節(jié)點簡單地確定分組是否是 尋址到該節(jié)點的。例如,如果節(jié)點420確定該分組是尋址到節(jié)點420的,則在步驟332,該 節(jié)點接著處理該分組的有效載荷,并構(gòu)造響應(yīng)分組以發(fā)送給遠程主機。在步驟334,該節(jié)點 發(fā)送該響應(yīng)分組。如果在步驟314該節(jié)點確定該分組不是尋址到該節(jié)點的,則該節(jié)點確定 它的對等端口的發(fā)送器是否可供使用(步驟316),并且如果是的話,則在此端口(在該示 例中,為圖4A中的節(jié)點420的端口 B)上將該分組轉(zhuǎn)發(fā)出去,其中將沿著相 同的路徑(即, 圖4A中的路徑411)在相同的方向上將該分組傳送到它的下游節(jié)點(圖4A中的節(jié)點430)。 反之,如果在端口 B上接收分組,則將該分組轉(zhuǎn)發(fā)到端口 A,其中將沿著相同的路徑(即,路 徑451)在相同的方向上將該分組傳送到它的下游節(jié)點。如果在步驟316轉(zhuǎn)發(fā)發(fā)送器(在 對等端口上)不可操作,則該節(jié)點首先在步驟320確定該分組是否是響應(yīng)分組。如果該分 組是響應(yīng)分組,則在步驟322丟棄該分組。如果該分組不是響應(yīng)分組,則在步驟324將使用 相同端口上的發(fā)送器但是在與它被接收的方向相反的方向上轉(zhuǎn)發(fā)該分組。因而,該分組將 被傳送到它的上游節(jié)點410 (參考圖4A或圖4B)。返回到步驟312,如果該節(jié)點確定由該節(jié)點計算的delta時間不大于或等于該環(huán) 路的往返時間,則在步驟326,該節(jié)點遍歷對等端口的數(shù)據(jù)結(jié)構(gòu)(即,用于接收的分組的事 務(wù)信息和時間戳),以在步驟328確定是否已經(jīng)在對等端口上接收到該分組,即,是否發(fā)現(xiàn) 匹配。如果發(fā)現(xiàn)了匹配,則該節(jié)點在步驟330丟棄該分組。如果沒有發(fā)現(xiàn)匹配,則該節(jié)點繼 續(xù)到步驟314以確定該分組是否是尋址到該節(jié)點的,如上所述。如上所述,圖3B是根據(jù)本發(fā)明的第二實施例的自動恢復(fù)技術(shù)的數(shù)據(jù)流和算法的 流程圖,其中僅僅考慮單播業(yè)務(wù)。根據(jù)圖3B的實施例,在步驟336,節(jié)點等待分組。在步驟338,節(jié)點(遵循上述示 例,圖4A中的節(jié)點420)在它的端口之一(例如,端口 A)接收分組。在步驟340,該節(jié)點確 定該分組是否是尋址到它的。如果該分組不是尋址到該節(jié)點的,則該節(jié)點確定它的轉(zhuǎn)發(fā)發(fā) 送器是否可供使用(步驟342),并且如果是的話,則在相反的端口(在該示例中,為端口 B) 上將該分組轉(zhuǎn)發(fā)出去,其中將沿著相同的路徑(如果接收端口是端口 A,則為路徑411,如果 在端口 B上接收,則為路徑451)在相同的方向上將該分組傳送到它的下游節(jié)點(圖4A中 的節(jié)點430)。如果在步驟342轉(zhuǎn)發(fā)發(fā)送器不可操作,則該節(jié)點首先在步驟346確定該分組是否是響應(yīng)分組。如果該分組是響應(yīng)分組,則在步驟352丟棄該分組。如果該分組不是響 應(yīng)分組,則該節(jié)點在步驟348確定對等路徑發(fā)送器是否可供使用,并且如果是的話,將在步 驟350在對等路徑發(fā)送器上轉(zhuǎn)發(fā)該分組。仍然參考圖3B,如果接收的分組是尋址到該節(jié)點的(例如,圖4A中的節(jié)點420上 的端口 A),則該節(jié)點將處理該分組(步驟354-370)。如果在該節(jié)點的對等端口上尚未接收 到相同的分組,則在步驟372和374中,創(chuàng)建響應(yīng)消息然后在它自己的發(fā)送器上發(fā)送該響應(yīng) 消息,其中將沿著路徑451傳送該分組。如果不能經(jīng)由同一端口上的發(fā)送器傳送該響應(yīng)分 組,則在步驟376和378,將該響應(yīng)分組發(fā)送給它的對等端口上的發(fā)送器,其中將沿著路徑 411傳送該分組。如圖3B所示,在步驟354記錄在網(wǎng)絡(luò)環(huán)路上的任一節(jié)點的兩個端口(端口 A和端 口 B)的每一個上接收和接受的分組。對于在節(jié)點的端口 A或端口 B上接收的每個有效分 組,該節(jié)點可以在本地將該分組的事務(wù)信息和接收該分組的時間的時間戳保存在用于該端 口的數(shù)據(jù)結(jié)構(gòu)中。此信息可以接著在步驟358-362中使用。如上所述,本領(lǐng)域技術(shù)人員可 以確定用于本發(fā)明的實施例的合適的數(shù)據(jù)結(jié)構(gòu)。
在圖3B的步驟354,節(jié)點檢索尋址到該節(jié)點的接收的分組的事務(wù)信息和時間戳。 該事務(wù)信息可以是包括在該分組的首標或有效載荷中的、用于標識該分組的任何形式的信 息或標識符。在步驟358,如果在該節(jié)點的端口 B上接收到該分組,則該節(jié)點檢索在端口 A上接收的最后一個分組的時間戳,并從正被處理的當前分組的時間戳減去此時間戳以得 出delta時間。如果在該節(jié)點的端口 A上接收到該分組,則該節(jié)點檢索在端口 B上接收的 最后一個分組的時間戳,并從正被處理的當前分組的時間戳減去此時間戳以得出delta時 間(步驟360)。接著,該節(jié)點將該delta時間與給定系統(tǒng)的往返時間相比較。對于任何給 定系統(tǒng),往返時間是分組游歷該環(huán)路,例如從端口 405到端口 406,所花的最長的時間。在 步驟362,如果由節(jié)點計算的delta時間大于或等于環(huán)路網(wǎng)絡(luò)的往返時間,則該節(jié)點不需要 遍歷對等端口的數(shù)據(jù)結(jié)構(gòu),因為該分組不會有時間在相反方向上游歷該環(huán)路以到達對等端 口。因而,將事務(wù)信息和時間戳保存在合適的端口的數(shù)據(jù)結(jié)構(gòu)中,該節(jié)點處理該分組的有效 載荷,并且該節(jié)點構(gòu)造響應(yīng)分組并將其發(fā)送到遠程主機(步驟370)。但是,如果由該節(jié)點計 算的delta時間不大于或等于環(huán)路網(wǎng)絡(luò)的往返時間,則在步驟364,該節(jié)點遍歷對等端口的 數(shù)據(jù)結(jié)構(gòu)(即,用于接收的分組的事務(wù)信息和時間戳),以確定是否已經(jīng)在對等端口上接收 到該分組。如果發(fā)現(xiàn)了匹配,則該節(jié)點在步驟368丟棄該分組。如果未發(fā)現(xiàn)匹配,則該節(jié)點 在步驟370處理該分組,如前所述。具有在故障條件下自動恢復(fù)的數(shù)據(jù)流圖5A描述在這里描述的實施例中可能發(fā)生的故障條件,圖5B-5G描述根據(jù)這里描 述的自動恢復(fù)技術(shù)的數(shù)據(jù)流。如圖5A所示,故障條件560和562可能在外部網(wǎng)絡(luò)501上的 鏈路故障條件期間發(fā)生。圖5A中的故障條件564可能在邊緣交換機500的端口 507與節(jié) 點510的端口 A之間的鏈路上的鏈路故障條件期間發(fā)生。圖5A中的故障條件566可能在 邊緣交換機500的端口 508與節(jié)點550的端口 B之間的鏈路上的鏈路故障條件期間發(fā)生。 圖5A中的故障條件568可能在網(wǎng)絡(luò)環(huán)路503中間節(jié)點520的端口 B與節(jié)點530的端口 A上 檢測的鏈路故障缺陷條件期間發(fā)生。圖5A中的故障條件570可能在節(jié)點530設(shè)備故障或 移除期間發(fā)生,并且將產(chǎn)生在網(wǎng)絡(luò)環(huán)路503中間節(jié)點540的端口 A和節(jié)點520的端口 B上檢測的鏈路故障缺陷條件。圖5A中的故障條件572可能在邊緣交換機500的故障期間發(fā) 生。在故障條件572期間,這里描述的自動恢復(fù)技術(shù)不會解析(resolve)外部網(wǎng)絡(luò)鏈路與 網(wǎng)絡(luò)環(huán)路503之間的數(shù)據(jù)流。利用上面在圖3A和3B中 所述的數(shù)據(jù)流和算法技術(shù),根據(jù)本發(fā)明的各方面,在如上 參考圖5A所述的示范性故障條件560、562、564、566、568、570和572下,將確保某些數(shù)據(jù)流。邊緣交換機500上的數(shù)據(jù)流控制和網(wǎng)絡(luò)環(huán)路503的每個節(jié)點上的數(shù)據(jù)流控制非常 不同。對于邊緣交換機中的數(shù)據(jù)流的控制可以被預(yù)定義,并且不需要動態(tài)控制邏輯或算法。 因此,可以在系統(tǒng)進入工作模式之前,在系統(tǒng)配置階段執(zhí)行(enforce)邊緣交換機500中的 靜態(tài)數(shù)據(jù)流控制。參考圖5A,在環(huán)路網(wǎng)絡(luò)503中邊緣交換機500與兩個頭節(jié)點510和550的每一個 之間的故障條件將引起類似的自動恢復(fù)行為。邊緣交換機與節(jié)點510之間的故障將中斷環(huán) 路503內(nèi)的整個路徑511,同時端口 507將停止接收此路徑上來自出外方向的響應(yīng)消息分 組;交換機500與節(jié)點550之間的故障將中斷環(huán)路503內(nèi)的整個路徑551,同時端口 508將 停止接收此路徑上來自出外方向的響應(yīng)消息分組。這些故障僅僅影響一個數(shù)據(jù)路徑而不是 兩個。環(huán)路網(wǎng)絡(luò)503中間的任何單個故障條件(例如,568和570)將同時影響兩個數(shù)據(jù)路 徑(551和511)。但是,當故障條件568或570發(fā)生時,路徑551和511將不會都被完全阻 斷。而是,兩個路徑的僅僅一部分將受到影響。下面描述根據(jù)本發(fā)明的各方面的對于每個 描述的故障條件560、562、564、566、568、570、和572的數(shù)據(jù)流。圖5B和5C描述在到外部網(wǎng)絡(luò)501的端口 505或端口 506上的故障條件560和 562的自動恢復(fù)期間的示范性數(shù)據(jù)流。在到端口 505或端口 506的鏈路上(而不是兩個鏈路上)的故障不會引起網(wǎng)絡(luò)環(huán) 路503內(nèi)的不同的數(shù)據(jù)流。而是,這些故障條件(560和562)將僅僅影響邊緣交換機500 內(nèi)的數(shù)據(jù)流。在圖5B中,經(jīng)由端口 505的數(shù)據(jù)路徑被阻斷,而經(jīng)由端口 506的路徑仍然可用。正 在從遠程主機向節(jié)點520發(fā)送分組。根據(jù)本發(fā)明的實施例,同一接收的分組的兩個副本將 被傳送到節(jié)點520。如圖5B所示,從路徑511到達的分組將被處理,同時將創(chuàng)建相關(guān)的響應(yīng) 消息分組并且將其沿著路徑511但是在相反方向上發(fā)送回邊緣交換機500上的端口 507。 在響應(yīng)分組到達端口 507之后,邊緣交換機500將該分組轉(zhuǎn)發(fā)給端口 506,然后將該消息發(fā) 送出環(huán)路網(wǎng)絡(luò)503到外部網(wǎng)絡(luò)501或到遠程主機。結(jié)果,節(jié)點520與遠程主機之間的雙工 通信信道可以幸免于故障560。由圖3A和圖3B描述的數(shù)據(jù)流控制和實施例確保此恢復(fù)。在圖5C中,經(jīng)由端口 506的數(shù)據(jù)路徑被阻斷,而經(jīng)由端口 505的路徑仍然可用。根 據(jù)在故障條件562下的本發(fā)明的實施例,同樣假定從遠程主機向節(jié)點520發(fā)送分組。對于 圖5C描述的情形,在故障條件下的數(shù)據(jù)流與上面參照圖5B描述的故障條件描述的數(shù)據(jù)流 相似。圖5D描述在邊緣交換機500與節(jié)點510之間的鏈路上的故障條件564的自動恢 復(fù)期間的示范性數(shù)據(jù)流。在圖5D中,正在從遠程主機向節(jié)點520發(fā)送分組。在故障564發(fā) 生之前,去往節(jié)點520的分組被從節(jié)點500上的兩個端口 507和508發(fā)送,即,相同分組的 兩個副本將到達節(jié)點520,而沿著路徑511在端口 A上接收的分組將是要被處理的副本,并且響應(yīng)消息分組將沿著相同的路徑(數(shù)據(jù)路徑511)但是在相反方向上被發(fā)送回去。這些 數(shù)據(jù)流已被示出在圖4A和4B中。在故障564發(fā)生之后(參考圖5D),只有沿著路徑551的分組可以到達節(jié)點520, 而沿著路徑511發(fā)送的第二副本則不能到達節(jié)點520。在節(jié)點520接收分組之后,其可以 處理它,然后將相關(guān)的響應(yīng)分組沿著相同的路徑(即,路徑551)但是在相反方向上經(jīng)由內(nèi) 部節(jié)點540和節(jié)點550發(fā)送回邊緣交換機500上的端口 508。在邊緣交換機500上,當端 口 508接收響應(yīng)分組時,該分組將被組播給兩個端口 505和506,然后傳送到網(wǎng)絡(luò)501。由 圖3A和圖3B中描述的數(shù)據(jù)流控制和實施例確保此恢復(fù)。圖5E描述在邊緣交換機500與節(jié)點550之間的鏈路上的故障條件566的自動恢 復(fù)期間的示范性數(shù)據(jù)流。在圖5E中,正在從遠程主機向節(jié)點520發(fā)送分組。對于圖5E中 描述的情形的并且根據(jù)這里描述的自動恢復(fù)技術(shù)的數(shù)據(jù)流與圖5D中的故障條件564下的 數(shù)據(jù)流相似。圖5F描述在環(huán)路網(wǎng)絡(luò)503中間的故障條件568的自動恢復(fù)期間的示范性數(shù)據(jù)流。 在圖5F中,正在從遠程主機向節(jié)點520發(fā)送分組。在圖5F描述的故障條件下,兩個路徑 511和551 均在節(jié)點520與節(jié)點530之間的點處斷開。但是,路徑511的從邊緣交換機500 上的端口 507到節(jié)點520的部分、和路徑551的從邊緣交換機500上的端口 508到節(jié)點530 的部分仍然是連接的。因而,在圖5F描述的故障條件下,遠程主機仍然可以經(jīng)由路徑511 到達節(jié)點510和節(jié)點520,并且可以經(jīng)由路徑551到達節(jié)點530、節(jié)點540和節(jié)點550。在根 據(jù)本發(fā)明的實施例的故障條件568下,如果遠程主機需要向節(jié)點520發(fā)送分組,則唯一可用 的數(shù)據(jù)路徑將是路徑511。然而,去往530的分組只能經(jīng)由路徑551傳送。由圖3A和圖3B 中描述的數(shù)據(jù)流控制和實施例確保此恢復(fù)。圖5G描述在環(huán)路網(wǎng)絡(luò)503中間的節(jié)點(在此實施例中,為節(jié)點530)上的故障條 件570的自動恢復(fù)期間的示范性數(shù)據(jù)流。在圖5G中,正在從遠程主機向節(jié)點520發(fā)送分組。 在環(huán)路503上的節(jié)點遇到設(shè)備故障或者被移除時發(fā)生圖5G所示的故障條件570。在故障條 件下,節(jié)點530上的兩個端口不能用于向相鄰節(jié)點(或者邊緣交換機,如果有故障的節(jié)點剛 好是路徑551或路徑511上的頭節(jié)點的話)通信。如圖5G所示,遠程主機將僅僅能夠經(jīng)由 路徑511訪問節(jié)點510和節(jié)點520,并且遠程主機將僅僅能夠經(jīng)由路徑551訪問節(jié)點540和 節(jié)點550。在圖5G的實施例中,無法經(jīng)由任一路徑訪問節(jié)點530。與如上所述的其它故障 情形相似,遠程主機和網(wǎng)絡(luò)環(huán)路503上的目標節(jié)點520之間的通信信道幸免于此故障。此 夕卜,根據(jù)圖5G的實施例,由節(jié)點520向遠程主機發(fā)送的響應(yīng)消息可以經(jīng)由邊緣交換機節(jié)點 500上的端口 507在兩個鏈路502和504上傳送到主機。由圖3A和圖3B中描述的數(shù)據(jù)流 控制和實施例確保此恢復(fù)。當在邊緣交換機500上發(fā)生設(shè)備故障時、或者如果將邊緣交換機500從網(wǎng)絡(luò)上拔 掉(即,圖5A中的故障條件572),則根據(jù)本發(fā)明的實施例,沒有辦法恢復(fù)遠程主機與環(huán)路網(wǎng) 絡(luò)503中的節(jié)點之間的通信。根據(jù)上面如圖5A所示參照配置有4端口的邊緣交換機500描述的本發(fā)明的實施 例,到外部網(wǎng)絡(luò)501的兩個鏈路在進入和出外兩個方向傳送相同的業(yè)務(wù)。此外,參照配置有 3端口或4端口的邊緣交換機500,沿著網(wǎng)絡(luò)環(huán)路503內(nèi)的兩個數(shù)據(jù)路徑(路徑511和551) 的業(yè)務(wù)是相同的。作為直接后果,根據(jù)本發(fā)明的各方面,在正常條件下相同數(shù)據(jù)分組的兩個副本可以被傳送到目標節(jié)點。在這里描述且根據(jù)本發(fā)明的各方面的故障條件下,由于冗余, 目標節(jié)點應(yīng)當接收數(shù)據(jù)分組的至少一個副本。本領(lǐng)域 普通技術(shù)人員將理解,上述技術(shù)可以被實現(xiàn)在各種環(huán)形或環(huán)路網(wǎng)絡(luò)系統(tǒng)上 并且利用各種傳輸介質(zhì)來實現(xiàn)?;诰€路、光纖電纜、無線或其它傳輸介質(zhì)的網(wǎng)絡(luò)可以應(yīng)用 本發(fā)明。例如,本發(fā)明的另一個實施例包括在基于衛(wèi)星的網(wǎng)絡(luò)中實現(xiàn)上述自動恢復(fù)技術(shù)。在 這樣的實施方式中,衛(wèi)星網(wǎng)絡(luò)中的節(jié)點可以從兩個衛(wèi)星站接收重復(fù)傳輸。根據(jù)本發(fā)明的各 方面,節(jié)點將處理重復(fù)傳輸,如上所述。還應(yīng)當注意,雖然已經(jīng)在這里描述了本發(fā)明的某些方面,但是本發(fā)明不局限于描 述的實施例。本領(lǐng)域技術(shù)人員在閱讀或?qū)嵺`本發(fā)明時將認識到本發(fā)明包含的額外變化。所 附權(quán)利要求書說明本發(fā)明的范圍。
權(quán)利要求
一種在網(wǎng)絡(luò)節(jié)點中實現(xiàn)故障恢復(fù)的方法,其中該網(wǎng)絡(luò)節(jié)點是環(huán)形拓撲網(wǎng)絡(luò)中的節(jié)點,該方法包括步驟(a)在該網(wǎng)絡(luò)節(jié)點的第一端口的進入路徑上接收數(shù)據(jù)分組;(b)確定是否已經(jīng)在該網(wǎng)絡(luò)節(jié)點的第二端口的進入路徑上接收到該分組的副本;(c)確定該分組是否是尋址到該網(wǎng)絡(luò)節(jié)點;以及(d)處理該分組,其中處理該分組包括步驟(A)如果該分組不是尋址到該網(wǎng)絡(luò)節(jié)點,則將該分組轉(zhuǎn)發(fā)給相鄰的網(wǎng)絡(luò)節(jié)點;以及(B)如果該分組是尋址到該網(wǎng)絡(luò)節(jié)點,則構(gòu)造響應(yīng)分組并且將該響應(yīng)分組轉(zhuǎn)發(fā)給相鄰的網(wǎng)絡(luò)節(jié)點。
2.如權(quán)利要求1所述的方法,其中該環(huán)形拓撲網(wǎng)絡(luò)是工業(yè)自動化系統(tǒng)的一部分。
3.如權(quán)利要求2所述的方法,其中該網(wǎng)絡(luò)節(jié)點是該工業(yè)自動化系統(tǒng)中的I/O模塊。
4.如權(quán)利要求1所述的方法,其中步驟(d)(A)進一步包括經(jīng)由該網(wǎng)絡(luò)節(jié)點的第二端 口的出外端口將該分組轉(zhuǎn)發(fā)給相鄰的網(wǎng)絡(luò)節(jié)點。
5.如權(quán)利要求1所述的方法,其中步驟(d)(B)進一步包括經(jīng)由該網(wǎng)絡(luò)節(jié)點的第一端 口的出外端口將該響應(yīng)分組轉(zhuǎn)發(fā)給相鄰的網(wǎng)絡(luò)節(jié)點。
6.如權(quán)利要求1所述的方法,其中步驟(b)包括(A)接收用于在該網(wǎng)絡(luò)節(jié)點的第一端口上接收的分組的事務(wù)信息和時間戳;(B)將所述用于在該網(wǎng)絡(luò)節(jié)點的第一端口上接收的分組的事務(wù)信息和時間戳與用于在 該網(wǎng)絡(luò)節(jié)點的第二端口上接收的最近的分組的事務(wù)信息和時間戳相比較,以確定這些分組 是否匹配。
7.如權(quán)利要求6所述的方法,其中將所述用于在該網(wǎng)絡(luò)節(jié)點的第一端口上接收的分組 的事務(wù)信息和時間戳存儲在數(shù)據(jù)結(jié)構(gòu)中。
8.如權(quán)利要求6所述的方法,其中將所述用于在該網(wǎng)絡(luò)節(jié)點的第二端口上接收的最近 的分組的事務(wù)信息和時間戳存儲在數(shù)據(jù)結(jié)構(gòu)中。
9.如權(quán)利要求7所述的方法,其中該數(shù)據(jù)結(jié)構(gòu)是FIFO隊列。
10.如權(quán)利要求7所述的方法,其中該數(shù)據(jù)結(jié)構(gòu)是鏈表。
11.一種分布式工業(yè)自動化系統(tǒng)中的I/O模塊,其中該I/O模塊是環(huán)形拓撲網(wǎng)絡(luò)中的模 塊,包括處理器;耦接到該處理器的存儲器,其中該存儲器包含用于執(zhí)行以下步驟的計算機可執(zhí)行指令(a)在該I/O模塊的第一端口的進入路徑上接收數(shù)據(jù)分組;(b)確定是否已經(jīng)在該I/O模塊的第二端口的進入路徑上接收到該分組的副本;(c)確定該分組是否是尋址到該I/O模塊;以及(d)處理該分組,其中處理該分組包括步驟(A)如果該分組不是尋址到該I/O模塊,則將該分組轉(zhuǎn)發(fā)給該環(huán)形拓撲網(wǎng)絡(luò)上的相鄰 的I/O模塊;以及(B)如果該分組是尋址到該I/O模塊,則構(gòu)造響應(yīng)分組并且將該響應(yīng)分組轉(zhuǎn)發(fā)給該環(huán) 形拓撲網(wǎng)絡(luò)上的相鄰的I/O模塊。
12.如權(quán)利要求11所述的I/O模塊,其中步驟(d)(A)進一步包括經(jīng)由該I/O模塊的 第二端口的出外端口將該分組轉(zhuǎn)發(fā)給相鄰的模塊。
13.如權(quán)利要求11所述的I/O模塊,其中步驟(d)(B)進一步包括經(jīng)由該I/O模塊的 第一端口的出外端口將該響應(yīng)分組轉(zhuǎn)發(fā)給相鄰的模塊。
14.如權(quán)利要求11所述的I/O模塊,其中步驟(b)包括(A)接收用于在該I/O模塊的第一端口上接收的分組的事務(wù)信息和時間戳;(B)將所述用于在該I/O模塊的第一端口上接收的分組的事務(wù)信息和時間戳與用于在 該I/O模塊的第二端口上接收的最近的分組的事務(wù)信息和時間戳相比較,以確定這些分組 是否匹配。
15.如權(quán)利要求14所述的I/O模塊,其中將所述用于在該I/O模塊的第一端口上接收 的分組的事務(wù)信息和時間戳存儲在數(shù)據(jù)結(jié)構(gòu)中。
16.如權(quán)利要求14所述的I/O模塊,其中將所述用于在該I/O模塊的第二端口上接收 的最近的分組的事務(wù)信息和時間戳存儲在數(shù)據(jù)結(jié)構(gòu)中。
17.如權(quán)利要求15所述的I/O模塊,其中該數(shù)據(jù)結(jié)構(gòu)是FIFO隊列。
18.如權(quán)利要求15所述的I/O模塊,其中該數(shù)據(jù)結(jié)構(gòu)是鏈表。
19.一種有形的計算機可讀介質(zhì),包含用于使得環(huán)形拓撲網(wǎng)絡(luò)上的計算機設(shè)備執(zhí)行以 下步驟的計算機可執(zhí)行指令(a)在該計算機設(shè)備的第一端口的進入路徑上接收數(shù)據(jù)分組;(b)確定是否已經(jīng)在該計算機設(shè)備的第二端口的進入路徑上接收到該分組的副本;(c)確定該分組是否是尋址到該計算機設(shè)備;以及(d)處理該分組,其中處理該分組包括步驟(A)如果該分組不是尋址到該計算機設(shè)備,則將該分組轉(zhuǎn)發(fā)給相鄰的計算機設(shè)備;以及(B)如果該分組是尋址到該計算機設(shè)備,則構(gòu)造響應(yīng)分組并且將該響應(yīng)分組轉(zhuǎn)發(fā)給相 鄰的計算機設(shè)備。
20.如權(quán)利要求19所述的有形的計算機可讀介質(zhì),其中該計算機設(shè)備是工業(yè)自動化系 統(tǒng)的一部分。
21.如權(quán)利要求19所述的有形的計算機可讀介質(zhì),其中步驟(d)(A)進一步包括經(jīng)由 該計算機設(shè)備的第二端口的出外端口將該分組轉(zhuǎn)發(fā)給相鄰的計算機設(shè)備。
22.如權(quán)利要求19所述的有形的計算機可讀介質(zhì),其中步驟(d)(B)進一步包括經(jīng)由 該計算機設(shè)備的第一端口的出外端口將該響應(yīng)分組轉(zhuǎn)發(fā)給相鄰的計算機設(shè)備。
23.如權(quán)利要求19所述的有形的計算機可讀介質(zhì),其中步驟(b)包括(A)接收用于在該計算機設(shè)備的第一端口上接收的分組的事務(wù)信息和時間戳;(B)將所述用于在該計算機設(shè)備的第一端口上接收的分組的事務(wù)信息和時間戳與用于 在該計算機設(shè)備的第二端口上接收的最近的分組的事務(wù)信息和時間戳相比較,以確定這些 分組是否匹配。
全文摘要
這里描述的本發(fā)明提供一種在鏈接的環(huán)路或環(huán)形聯(lián)網(wǎng)系統(tǒng)(103)中用于故障隔離和自動恢復(fù)的系統(tǒng)和方法。根據(jù)所述方法和描述的相關(guān)路徑選擇算法的各方面,可以在環(huán)路上的每個節(jié)點上在本地處理故障隔離和自動恢復(fù)操作,并且可以最小化鏈路故障條件下的總的故障恢復(fù)時間。此外,該方法允許對網(wǎng)絡(luò)的其它部分和遠程主機透明的自動恢復(fù)操作。
文檔編號H04L12/42GK101971575SQ200880127736
公開日2011年2月9日 申請日期2008年12月29日 優(yōu)先權(quán)日2007年12月31日
發(fā)明者威廉·萊里特, 靳少征 申請人:施耐德電氣美國股份有限公司