亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

容錯網(wǎng)絡的制作方法

文檔序號:7587243閱讀:255來源:國知局
專利名稱:容錯網(wǎng)絡的制作方法
技術領域
本發(fā)明一般涉及網(wǎng)絡數(shù)據(jù)通信。特別地,本發(fā)明涉及提供網(wǎng)絡和網(wǎng)絡接口卡容錯的設備和方法,其中中間件實現(xiàn)故障檢測并能根據(jù)檢測到活動信道上的一個故障從一個活動信道切換至備用信道。本專利文獻的公開部分包括屬于版權保護的材料。
版權擁有者不拒絕任何人傳真復制本專利公開,如同它出現(xiàn)在專利和商標局的專利文件或記錄中,但是保留所有版權。下面提示適用于下面并在附圖中描述的軟件和數(shù)據(jù)應用版權1998,Honeywell公司,保留所有權利。
背景技術
計算機網(wǎng)絡已經(jīng)廣泛應用在商業(yè)和工業(yè)上。它們可以用來鏈接在一個地點中的或在多個地點中的許多計算機。
該網(wǎng)絡提供一個數(shù)據(jù)傳輸或從一臺計算機至另一臺計算機的流量的通信信道。網(wǎng)絡使用是無邊的并可以包括簡單數(shù)據(jù)或文件傳輸,遠程音頻或視頻,多媒體會議,工業(yè)過程控制等等。
大概最流行的網(wǎng)絡協(xié)議是以太網(wǎng),它是專用于計算機網(wǎng)絡或計算機對計算機的文件傳輸?shù)母咚俳K端的局域網(wǎng)(LAN)。以太網(wǎng)通信協(xié)議許可并提供通過總線一般為雙鉸線或同軸電纜的數(shù)據(jù)傳輸。存在其它的數(shù)據(jù)總線介質(zhì),如光纖總線或無線總線為兩個例子。為方便起見,將使用通用術語總線而不管其介質(zhì)類型。
典型的LAN有幾個與LAN連接并與之通信的節(jié)點。每個節(jié)點有一個網(wǎng)絡接口卡(NIC),它通過LAN插頭提供至物理LAN的通信鏈接。另外,幾個網(wǎng)絡節(jié)點可以通過各種的網(wǎng)絡接口卡連接至網(wǎng)絡集線器或交換機。而且,多個LAN可以橋接在一起生產(chǎn)更大網(wǎng)絡。
節(jié)點一般遵循OSI模型,即國際標準組織的網(wǎng)絡模型。OSI模型將網(wǎng)絡通信分成7個功能層。這些層以邏輯層次安排,每一層提供緊接其上和其下的層的通信。每個OSI層負責不同的網(wǎng)絡服務。這些層是1)物理層,2)數(shù)據(jù)鏈接層,3)網(wǎng)絡層,4)傳輸層,5)會話層,6)展現(xiàn)層,7)應用層。前三個層提供數(shù)據(jù)傳輸和路由。傳輸和會話層提供用戶應用和硬件之間的接口。最后三層管理用戶應用。其它網(wǎng)絡模型在現(xiàn)有技術中是已知的。
以太網(wǎng)協(xié)議提供整個網(wǎng)絡的消息沖突的恢復,它自身能夠從網(wǎng)絡元件的故障中恢復,如網(wǎng)絡接口卡,分接點,集線器,交換機,橋路或總線。因此,通常需要容錯來確保連續(xù)的點對點通信。其它人提出的一種方法是依賴特殊硬件設計冗余系統(tǒng)用作故障檢測和恢復。然而,這樣的解決方案是專用的并依賴供應商的,使得他們很難實現(xiàn)和實現(xiàn)起來花費昂貴。這種針對硬件的系統(tǒng)可以在高度關鍵應用中被證明,但是他們由于專門化的屬性不能高度可手持的或可擴展的。
相應地,存在一種對提供容錯功能的性價比設備和方法的需求,他們能夠使用市場上可購買(COTS)的以太網(wǎng)硬件(網(wǎng)絡接口卡)和軟件(驅(qū)動和協(xié)議)在現(xiàn)有的以太網(wǎng)上實現(xiàn)。這樣一個開放式的解決方案有這樣的好處,降低生產(chǎn)成本,易于使用和維護,符合網(wǎng)絡標準并在網(wǎng)絡間互通。
發(fā)明概述中間件方法提供了在傳統(tǒng)的以太網(wǎng)網(wǎng)絡中的容錯性。該網(wǎng)絡有多個要求傳送文件包的節(jié)點。容錯網(wǎng)絡的節(jié)點有不止一個網(wǎng)絡連接并包括有多個連接至一個網(wǎng)絡的節(jié)點和有單連接至多個網(wǎng)絡的節(jié)點。一個網(wǎng)絡容錯管理器監(jiān)視故障檢測并執(zhí)行故障恢復。故障恢復包括將從一個節(jié)點的數(shù)據(jù)傳輸從表示有一個故障的節(jié)點重新定向到一個備用信道上。在一個實施例中,故障恢復限制數(shù)據(jù)傳輸及數(shù)據(jù)接收至一個活動信道。在另一個實施例中,故障恢復容許從任何連接信道接收有效數(shù)據(jù)包。在另外一個實施例中,該活動信道和備用信道共享共同資源。
中間件包括駐留在網(wǎng)絡接口設備和設備驅(qū)動器之上,但在系統(tǒng)傳輸服務和/或用戶應用程序之下的計算機軟件。本發(fā)明提供網(wǎng)絡容錯,它不需要修改現(xiàn)有的實現(xiàn)以太網(wǎng)的COTS硬件和軟件。該中間件方法對使用標準網(wǎng)絡和傳輸協(xié)議如TCP/IP,UDP/IP和IP多點傳送的應用程序是透明的。
在一個實施例中,一個網(wǎng)絡節(jié)點同時連接至多網(wǎng)絡系統(tǒng)中的不止一個網(wǎng)絡。該節(jié)點有能夠選擇一個網(wǎng)絡上的一個信道的軟件開關。網(wǎng)絡容錯管理器執(zhí)行在一個活動信道上的故障檢測。該網(wǎng)絡容錯管理器在操作開關選擇一個備用信道中還提供故障恢復。在另一個實施例中,該節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,網(wǎng)絡容錯管理器執(zhí)行在備用信道上的故障檢測和報告,以及在一個活動信道上的故障檢測和恢復。
在另一個實施例中,一個網(wǎng)絡節(jié)點同時連接至多網(wǎng)絡系統(tǒng)中的不止一個網(wǎng)絡。該節(jié)點對每個連接的網(wǎng)絡都有一個NIC(網(wǎng)絡接口卡)。該節(jié)點還有一個能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的分布式故障檢測。該網(wǎng)絡容錯管理器還提供在操作NIC開關選擇連接至備用信道的網(wǎng)絡接口卡中的故障恢復。在另一個實施例中,該節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,至少二個節(jié)點都同時連接至多網(wǎng)絡系統(tǒng)中的不止一個網(wǎng)絡。每個節(jié)點有每個連接的網(wǎng)絡的一個網(wǎng)絡接口卡。每個節(jié)點還有一個能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的分布式故障檢測。該網(wǎng)絡容錯管理器還提供在操作每個發(fā)送節(jié)點的NIC開關選擇連接至備用信道的網(wǎng)絡接口卡中的故障恢復。從一個發(fā)送節(jié)點的數(shù)據(jù)包傳遞給備用信道。來自備用信道的有效數(shù)據(jù)包由接收節(jié)點傳遞給更高層。在該實施例中,使用活動信道的所有節(jié)點根據(jù)在活動信道上的故障檢測交換為一個備用信道。在另一個實施例中,每個節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,至少二個節(jié)點都同時連接至多網(wǎng)絡系統(tǒng)中的不止一個網(wǎng)絡。每個節(jié)點有每個連接的網(wǎng)絡的一個網(wǎng)絡接口卡。每個節(jié)點還有一個能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的分布式故障檢測。該網(wǎng)絡容錯管理器還提供在操作每個發(fā)送節(jié)點的NIC開關選擇連接至備用信道的網(wǎng)絡接口卡中的故障恢復。將故障報告給網(wǎng)絡容錯管理器的節(jié)點將它的數(shù)據(jù)流量從活動信道交換給備用信道。從該發(fā)送節(jié)點傳遞數(shù)據(jù)包給備用信道。在活動信道上沒有檢測到故障的發(fā)送節(jié)點容許在活動信道上繼續(xù)數(shù)據(jù)傳輸。每個接收節(jié)點的NIC開關容許通過各自的信道在每個網(wǎng)絡接口卡上接收數(shù)據(jù)包。來自任何連接著的信道的有效數(shù)據(jù)包傳遞給更高層。在另一個實施例中,該節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,一個節(jié)點有至一個容錯網(wǎng)絡的多個連接。該節(jié)點有能夠選擇一個網(wǎng)絡連接的軟件開關。網(wǎng)絡容錯管理器提供在一個活動信道上的故障檢測。該網(wǎng)絡容錯管理器在操作開關選擇一個備用信道中還提供故障恢復。在另一個實施例中,該節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,一個節(jié)點有至一個容錯網(wǎng)絡的多個連接。該節(jié)點有每個網(wǎng)絡連接的NIC(網(wǎng)絡接口卡)。該節(jié)點還有能夠選擇一個網(wǎng)絡連接的軟件開關。該節(jié)點還有能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的故障檢測。該網(wǎng)絡容錯管理器在操作NIC開關選擇一個連接備用信道的網(wǎng)絡接口卡中還提供故障恢復。在另一個實施例中,該節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,至少二個節(jié)點都有至一個容錯網(wǎng)絡的多個連接。每個節(jié)點有每個網(wǎng)絡連接的一個網(wǎng)絡接口卡。每個節(jié)點還有一個能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的分布式故障檢測。該網(wǎng)絡容錯管理器還提供在操作每個發(fā)送節(jié)點的NIC開關選擇連接至備用信道的網(wǎng)絡接口卡中的故障恢復。從一個發(fā)送節(jié)點的數(shù)據(jù)包傳遞給備用信道。來自備用信道的有效數(shù)據(jù)包由接收節(jié)點傳遞給更高層。在該實施例中,使用活動信道的所有節(jié)點根據(jù)在活動信道上的故障檢測交換為一個備用信道。在另一個實施例中,每個節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,至少二個節(jié)點都有至一個容錯網(wǎng)絡的多個連接。每個節(jié)點有每個網(wǎng)絡連接的一個網(wǎng)絡接口卡。每個節(jié)點還有一個能夠選擇一個網(wǎng)絡接口卡的NIC開關。網(wǎng)絡容錯管理器提供在一個活動信道上的分布式故障檢測。該網(wǎng)絡容錯管理器還提供在操作每個發(fā)送節(jié)點的NIC開關選擇連接至備用信道的網(wǎng)絡接口卡中的故障恢復。向網(wǎng)絡容錯管理器報告一個故障的節(jié)點將數(shù)據(jù)流量從一個有問題的活動信道交換至備用信道。從一個發(fā)送節(jié)點的數(shù)據(jù)包傳遞給備用信道。沒有檢測到活動信道上的故障的發(fā)送節(jié)點容許在活動信道上繼續(xù)數(shù)據(jù)傳輸。每個接收節(jié)點的NIC開關容許通過各自的信道在每個網(wǎng)絡接口卡上接收數(shù)據(jù)包。來自任何連接著的信道的有效數(shù)據(jù)包傳遞給更高層。在另一個實施例中,每個節(jié)點連接至一個活動信道和一個備用信道。
在另一個實施例中,單個容錯網(wǎng)絡有一個開放環(huán)結(jié)構(gòu)和一個容錯網(wǎng)絡管理器節(jié)點。該單個容錯管理器節(jié)點用二個網(wǎng)絡接口卡連接至開放環(huán)的兩端。該網(wǎng)絡接口卡在故障檢測協(xié)議中只用來檢測網(wǎng)絡故障,如網(wǎng)絡總線故障。一旦在單個容錯網(wǎng)絡中檢測到網(wǎng)絡故障,二個網(wǎng)絡接口卡關閉該環(huán)來服務應用數(shù)據(jù)流量。
在一個實施例中,容錯網(wǎng)絡地址解析協(xié)議(FTNARP)自動地從一個節(jié)點開始產(chǎn)生一個介質(zhì)訪問控制(MAC)地址映射表。該FTNARP獲得一個活動和備用網(wǎng)絡接口卡的MAC地址。然后FTNARP向在活動和備用信道上的其它節(jié)點廣播該信息。接收節(jié)點將該信息增加到他們各自的MAC地址映射表上并用那個節(jié)點的MAC地址信息回答源節(jié)點。該源節(jié)點接收回答信息并將該信息增加到它自己的MAC地址映射表中。
在另一個實施例中,為包含路由器的網(wǎng)絡提供互聯(lián)網(wǎng)協(xié)議(IP)交換。IP交換功能在NIC交換機中實現(xiàn),其中NIC交換機有IP地址映射表。IP地址映射表實現(xiàn)交換發(fā)送節(jié)點的每一幀中的IP目的地址,并交換回接收節(jié)點的IP地址。
在另一個實施例中,每個節(jié)點通過每個連接著的信道發(fā)送一個周期性的消息。接收節(jié)點在從第一個信道上的源節(jié)點接收第一個消息之后,在從最后信道上的源節(jié)點接收最后消息時比較時間差值。如果接收節(jié)點不能在一個被分配的時間段內(nèi)接收最后消息并且最大數(shù)目的可容許消息丟失被超過,聲明有一個故障。在另一個實施例中,故障使用鏈接完整脈沖感應來決定。鏈接完整脈沖感應是一個證實信道完整性的周期性脈沖。在另外一個實施例中,使用二種故障檢測模式。
在本發(fā)明的另一個實施例中,使得處理器完成這里描述的方法的指令保存在機器可讀的介質(zhì)上。在本發(fā)明的另外一個實施例中,機器可讀介質(zhì)包括在節(jié)點中并與該節(jié)點通信。在本發(fā)明的另外一個實施例中,機器可讀介質(zhì)與該節(jié)點通信,但與該節(jié)點不物理聯(lián)系。
本發(fā)明的一個優(yōu)點是它保持了與IEEE(電氣和電子工程師學會)802.3標準的一致。這樣的一致性使得本發(fā)明在多數(shù)標準以太網(wǎng)網(wǎng)絡上是實用的,不需要修改以太網(wǎng)硬件和軟件,因此保持一個開放的系統(tǒng)。
作為一種軟件方法,本發(fā)明還能促進以太網(wǎng)以及其它網(wǎng)絡的任何COTS卡和驅(qū)動器的使用。使用特殊供應商的卡和驅(qū)動器對應用是透明的,從而使得本發(fā)明具備供應商互操作性,系統(tǒng)配置彈性和網(wǎng)絡用戶低成本。
而且,本發(fā)明提供使用OSI網(wǎng)絡和夾在中間件之上的傳輸協(xié)議的應用的網(wǎng)絡容錯。一個例子是使用以TCP-IP為基礎的應用,其中中間件透明地支持這些應用,好象該應用通過任何標準網(wǎng)絡即非容錯網(wǎng)絡使用TCP/IP協(xié)議。


圖1是組成本發(fā)明的一個實施例的有多個節(jié)點的一個多網(wǎng)絡以太網(wǎng)的一部分的方框圖。
圖1B是組成本發(fā)明的一個多網(wǎng)絡系統(tǒng)的實施例的方框圖。
圖2是組成本發(fā)明的一單個容錯網(wǎng)絡實施例的方框圖。
圖3A是組成本發(fā)明的一個實施例的一個節(jié)點實施例的方框圖。
圖3B是根據(jù)本發(fā)明的一個特征的一個節(jié)點實施例的方框圖。
圖4是在特殊操作系統(tǒng)平臺上組成本發(fā)明的一個實施例的一個節(jié)點實施例的方框圖。
圖5描述一個消息對故障檢測模式實施例的一個時間線。
圖6A是本發(fā)明的一個實施例的一個交互消息對表,一個Tskew隊列和計時器中斷的圖形表示。
圖6B是故障檢測前的消息對故障檢測模式的狀態(tài)機器圖。
圖6C是在一個節(jié)點故障檢測之后的消息對故障檢測模式的狀態(tài)機器圖。
圖7是連接組成本發(fā)明的一個實施例的二個網(wǎng)絡的二個節(jié)點尋址表示。
圖8是組成本發(fā)明并有路由器的容錯網(wǎng)絡的一個實施例的方框圖。
圖9是一個消息中斷流程的流程圖。
圖10A是消息對處理的一個實施例的流程圖。
圖10B是消息對處理的一個變種。
圖10C是消息對處理的一個變種。
圖11A是Tskew計時器操作的一個實施例的流程圖。
圖11B是Tskew計時器操作的一個實施例的流程圖。
圖12A是Tskew計時器中斷流程的一個實施例的流程圖。
圖12B是Tskew計時器中斷流程的一個實施例的流程圖。
圖13是信道交換流程的一個實施例的流程圖。
圖14是與設備交換失敗恢復模式有關的消息中斷流程的一個實施例的流程圖。
圖15是與設備交換失敗恢復模式有關的Tskew計時器中斷的一個實施例的流程圖。
圖16是容錯管理器消息處理流程的一個實施例的流程圖。
圖17是消息對發(fā)送操作的一個實施例的流程圖。
圖18是節(jié)點啟動流程的流程圖。
圖19是報告?zhèn)溆檬×鞒痰牧鞒虉D。
實施例詳述在下面詳細描述中,參照其中的附圖,在這些附圖中用解釋性特定實施例的方式表示,本發(fā)明在這些實施例中實現(xiàn)。這些實施例用充分的細節(jié)來描述,使得本領域的技術人員能夠?qū)崿F(xiàn)本發(fā)明,可以理解可以使用其它實施例,并可作出結(jié)構(gòu)上,邏輯上和有關電方面的修改,而不偏離本發(fā)明的精神和范疇。因此下面詳細描述沒有限制的意識,本發(fā)明的范疇由附加的權利要求書來定義。圖中相似的數(shù)字指相似的元件,這從使用的上下文來看應該是明顯的。
下面詳細描述是在一個以太網(wǎng)LAN的前提下起草的。本領域的技術人員將明顯看到該方法對其它網(wǎng)絡協(xié)議和其它網(wǎng)絡配置是可適應的。
術語信道定義為從一端的發(fā)送節(jié)點的網(wǎng)絡接口卡至另一端的接收節(jié)點的網(wǎng)絡接口卡的路徑,包括分接點,集線器,交換機,橋路和總線。二個或更多信道可以共享公共資源,如使用公用集線器,交換機,橋路和總線。另外,信道資源可以相互獨占的。一個節(jié)點上可用的二個信道稱為雙信道,盡管一個節(jié)點不限制為只有二個信道。
詳細描述一般開始于討論網(wǎng)絡設備和它們的結(jié)構(gòu),然后是故障檢測模式的討論。地址管理作為故障恢復的前奏討論。故障恢復在文中設計為信道交換和設備交換模式。最后,公開了這些概念的各種示范性執(zhí)行。
設備和結(jié)構(gòu)圖1A示出了組成本發(fā)明的簡化的容錯網(wǎng)絡的概念圖。容錯網(wǎng)絡100是一個多網(wǎng)絡系統(tǒng)的實例。容錯網(wǎng)絡100包括一個以太網(wǎng)總線110A和總線110B。容錯網(wǎng)絡100還包括二個或多個節(jié)點120,它們通過分接點連接以太網(wǎng)總線110A和110B。該節(jié)點120包括一個或多個網(wǎng)絡接口卡170,用來控制與分接點130的連接。在網(wǎng)絡接口卡可70描述為單個實體的同時,二個或多個網(wǎng)絡接口卡170可以結(jié)合為一個有多個通信端口的物理卡。
圖1B示出了多網(wǎng)絡系統(tǒng)的一個實施例的更為完整的容錯網(wǎng)絡100。容錯網(wǎng)絡100包括一個主網(wǎng)絡總線110A和二級網(wǎng)絡總線110B。主網(wǎng)絡總線110A和二級網(wǎng)絡總線110B中只有一個被一個單獨節(jié)點120在任何時候用作數(shù)據(jù)傳輸。盡管,如同涉及設備交換故障恢復模式中所討論的,節(jié)點可以使用多條總線用來接收數(shù)據(jù)包。主網(wǎng)絡總線110A連接至第一網(wǎng)絡交換機240A1和第二網(wǎng)絡交換機240A2。網(wǎng)絡交換機240A通過分接點130A連接節(jié)點120至主網(wǎng)絡總線110A。圖1B描述只有二個網(wǎng)絡的交換機240A和連接至主網(wǎng)絡總線110A的六個節(jié)點120,盡管任何數(shù)目的節(jié)點可以連接至任何數(shù)目的交換機,只要這些數(shù)目符合網(wǎng)絡協(xié)議和交換機端口數(shù)目的限制。而且,節(jié)點可以用圖1A中描述的方式直接連接主網(wǎng)絡總線110A。
二級網(wǎng)絡總線110B連接至第一網(wǎng)絡交換機240B1和二級網(wǎng)絡交換機240B2。網(wǎng)絡交換機240B通過分接點130B連接節(jié)點120至二級網(wǎng)絡總線110B。圖1B描述只有二個網(wǎng)絡的交換機240B和連接至二級網(wǎng)絡總線110B的六個節(jié)點120,盡管任何數(shù)目的節(jié)點可以連接至任何數(shù)目的交換機,只要這些數(shù)目符合網(wǎng)絡協(xié)議和交換機端口數(shù)目的限制。而且,節(jié)點可以用圖1A中描述的方式直接連接主網(wǎng)絡總線110A。
在活動資源一般與正常數(shù)據(jù)通訊有關以及在某些活動資源出現(xiàn)故障的情況下備用資源一般與數(shù)據(jù)通訊有關的指導下,活動和備用資源的選定是用戶可決定的。作為一個例子,主網(wǎng)絡總線110A可以指定用于活動信道,同時二級網(wǎng)絡總線110B可以指定用于備用信道??梢岳斫?,活動信道的選擇是由用戶決定的,而且該選定可以交換,而不偏離本發(fā)明的范疇。為了有助于說明活動和備用信道的概念,提供幾個特例。
參考圖1B,從節(jié)點120i至節(jié)點120z的活動信道定義為這樣的路徑,即從節(jié)點120i的網(wǎng)絡接口卡170A,至節(jié)點120i的的分接點130A,至第一交換機240A1,至主網(wǎng)絡總線110A,至第二交換機240A2,至節(jié)點120z的分接點130A,再至節(jié)點120z的網(wǎng)絡接口卡170A。從節(jié)點120i至節(jié)點120z的二級信道定義為這樣的路徑,即從節(jié)點120I的網(wǎng)絡接口卡170B,至節(jié)點120i的的分接點130B,至第一交換機240B1,至二級網(wǎng)絡總線110B,至第二交換機240B2,至節(jié)點120z的分接點130B,再至節(jié)點120z的網(wǎng)絡接口卡170B?;顒雍蛡溆眯诺腊ㄔ谛诺纼啥说木W(wǎng)絡接口卡。
相似地,從節(jié)點120j至節(jié)點120k的活動信道定義為這樣的路徑,即從節(jié)點120j的網(wǎng)絡接口卡170A,至節(jié)點120j的的分接點130A,至第一交換機240A1,至節(jié)點120k的分接點130A,再至節(jié)點120k的網(wǎng)絡接口卡170A。從節(jié)點120j至節(jié)點120k的二級信道定義為這樣的路徑,即從節(jié)點120j的網(wǎng)絡接口卡170B,至節(jié)點120j的的分接點130B,至第一交換機240B1,至節(jié)點120k的分接點130B,再至節(jié)點120k的網(wǎng)絡接口卡170B。
參照圖1B和前面的定義,一個活動信道的故障定義為或者網(wǎng)絡交換機240A,主網(wǎng)絡總線110A,任何分接點130A或者任何網(wǎng)絡接口卡170A的一個故障。同樣地,一個備用信道的故障定義為網(wǎng)絡交換機240B、二級網(wǎng)絡總線110B、任何分接點130B或者任何網(wǎng)絡接口卡170B任一個的故障?;顒有诺郎系墓收蠈е鹿收匣謴?,同時備用信道上的故障將被報告而不交換設備或信道。還注意到活動和備用信道的定義是動態(tài)的,這樣當一個活動信道失敗以及故障恢復開始時,選擇作為數(shù)據(jù)流量的備用信道成為活動信道。
圖2示出了單個網(wǎng)絡系統(tǒng)實施例的容錯網(wǎng)絡200。容錯網(wǎng)絡200包括一個網(wǎng)絡總線110。網(wǎng)絡總線110以一個開放環(huán)安排連接至第一網(wǎng)絡交換機2401,第二網(wǎng)絡交換機2402和第三網(wǎng)絡交換機2403。網(wǎng)絡交換機240通過分接點130A和130B連接節(jié)點120至網(wǎng)絡總線110。圖2描述的是只有3個網(wǎng)絡的交換機240和連接至網(wǎng)絡總線110的四個節(jié)點120,盡管任何數(shù)目的節(jié)點可以連接至任何數(shù)目的交換機,只要這些數(shù)目符合網(wǎng)絡協(xié)議以及交換機端口數(shù)目的限制。而且,節(jié)點可以以圖1A中描述的相似方式直接連接至網(wǎng)絡總線110。
容錯網(wǎng)絡200還包括一個有網(wǎng)絡接口卡170A和170B的管理器節(jié)點250。管理器節(jié)點250的網(wǎng)絡接口卡170A和170B用作在正常操作過程中的網(wǎng)絡故障的故障檢測。如果檢測到一個本地故障,管理器節(jié)點不采取行動,因為能通過將節(jié)點通訊本地交換為備用信道克服本地故障。容錯網(wǎng)絡200中的本地故障特征為設備故障,它影響與節(jié)點120的唯一一個網(wǎng)絡接口卡170的通訊。例如,在節(jié)點120w節(jié)點120z間的本地故障可能是連接至節(jié)點120w的網(wǎng)絡接口卡170A的活動信道上的第一個交換機2401的一個故障。交換與節(jié)點120w的網(wǎng)絡接口卡170B的數(shù)據(jù)通訊容許通過第二交換機2402與節(jié)點120z通訊。
如果檢測到一個網(wǎng)絡故障,本地交換數(shù)據(jù)通訊為備用信道對于恢復通訊是不足夠的。容錯網(wǎng)絡200中的一個網(wǎng)絡故障其特征是一個設備故障,它影響與節(jié)點120的所有網(wǎng)絡接口卡的通訊。例如,在節(jié)點120w節(jié)點120z間的網(wǎng)絡故障可能是第二個交換機2402的一個故障。交換通訊從節(jié)點120w的網(wǎng)絡接口卡170A至170B不足以恢復與節(jié)點120z的通訊,因為二個信道通過第二交換機2402路由。在這種情況下,管理器節(jié)點250的網(wǎng)絡接口卡170A和170B關閉該環(huán),如用虛線255所示,并容許通過管理器節(jié)點250進行數(shù)據(jù)通訊。因為有了通過管理器節(jié)點250的數(shù)據(jù)通訊,盡管第二交換機2402出現(xiàn)故障,還是恢復了在節(jié)點120w和120z之間的通訊。
在活動資源一般與正常數(shù)據(jù)通訊有關以及在某些活動資源出現(xiàn)故障的情況下備用資源一般與數(shù)據(jù)通訊有關的指導下,活動和備用資源即物理網(wǎng)絡元件的選定是用戶可決定的。作為一個例子,網(wǎng)絡接口卡170A可以指定為活動信道使用,而網(wǎng)絡接口卡170B可以指定為備用信道使用。可以理解,活動信道的選擇是由用戶決定的,而且該選定在本例中可以交換,而不偏離本發(fā)明的范疇。然而,應該注意到節(jié)點120z描述為只有一個網(wǎng)絡接口卡170A。相應地,節(jié)點120z的網(wǎng)絡接口卡應該指定為一個活動設備,因為它是與節(jié)點120z進行正常數(shù)據(jù)通訊的唯一選擇。
根據(jù)實施例包括容錯管理器的節(jié)點120的結(jié)構(gòu)一般性地示于圖3A中。圖3A的節(jié)點120可應用于每個容錯網(wǎng)絡結(jié)構(gòu),即多網(wǎng)絡系統(tǒng)和單容錯網(wǎng)絡。圖3A描述了節(jié)點120,它包括在與通訊API(應用程序接口)層330聯(lián)系的一個應用層325。應用層325和通訊API層330一般涉及所示的OSI模型層5-7。節(jié)點120還包括一個與通訊API層330聯(lián)系的傳輸/網(wǎng)絡協(xié)議層335。傳輸/網(wǎng)絡協(xié)議層一般涉及OSI模型層3和4。NIC交換機240在它的上端聯(lián)系傳輸/網(wǎng)絡協(xié)議層335,在它的低端聯(lián)系NIC驅(qū)動器350A和NIC驅(qū)動器350B以及容錯管理器355。NIC驅(qū)動器350A啟動網(wǎng)絡接口卡170A和NIC驅(qū)動器350B啟動網(wǎng)絡接口卡170B。NIC交換機340,容錯管理器355,NIC驅(qū)動器350A和350B,網(wǎng)絡接口卡170A和170B一般涉及OSI模型層2。網(wǎng)絡接口卡170A連接至活動信道,網(wǎng)絡接口卡170B連接至備用信道。
容錯管理器355作為一個單獨對象與每個節(jié)點在一起。然而,一個節(jié)點的容錯管理器通過活動和備用信道與連接網(wǎng)絡的其它節(jié)點的其它容錯管理器通訊,具有分布式故障檢測和恢復能力。容錯管理器355有容錯管理器配置工具360,用來編程和監(jiān)視它們的行為。而且,容錯管理器355和NIC交換機340可以合并為一個單個軟件對象。
圖3B描述有一個處理器310和一個機器可讀介質(zhì)320的節(jié)點120。機器可讀介質(zhì)320有保存其中的指令,它使得處理器310完成這里公開的一個或多個方法。盡管處理器310和機器可讀介質(zhì)320描述為包括在節(jié)點120之中,但沒有需要它們應該包括其中。處理器310或機器可讀介質(zhì)320可以聯(lián)系節(jié)點120,但物理上與節(jié)點120分開。
圖4描述了節(jié)點120的一個更具體的實施例,它包含在微軟Windows NT平臺上實現(xiàn)的容錯管理器。參考圖4,該實施例的節(jié)點120包括與WinSock2層430聯(lián)系的應用層325。WinSock2層430與傳輸/網(wǎng)絡協(xié)議層335聯(lián)系。傳輸/網(wǎng)絡協(xié)議層335包含一個TCP/UDP(傳輸控制協(xié)議/用戶自尋址協(xié)議)層434,一個IP(互連網(wǎng)協(xié)議)層436和NDIS(物理數(shù)據(jù)接口規(guī)格)協(xié)議層438。TCP和UDP是OSI模型的傳輸層的通信協(xié)議。TCP用在數(shù)據(jù)分發(fā)保證所需的地方,同時UDP運行時不需保證數(shù)據(jù)分發(fā)。NDIS協(xié)議層438提供與網(wǎng)絡設備接口規(guī)格(NDIS)480的通信。
NDIS480在它的的上端和下端與NIC交換機340聯(lián)系。NDIS480的該部分稱為中間驅(qū)動器,NDIS480也與NIC驅(qū)動器350A和350B聯(lián)系。NDIS480的該部分稱為微型端口驅(qū)動器。NDIS480一般提供在傳輸/網(wǎng)絡協(xié)議層335和物理層即網(wǎng)絡總線110A和110B之間通信。
NIC交換機340還包括一個微型端口層442,一個協(xié)議層444和虛擬驅(qū)動446A和446B。微型端口層442提供在NIC交換機340的上端與NDIS480的通信。協(xié)議層444提供在NIC340的低端與NDIS480的通信。
NIC驅(qū)動器350A和350B還分別包括一個微型端口層452A和452B。微型端口層452A在NIC驅(qū)動器350A的上端提供與NDIS480的通信。微型端口層452B在NIC驅(qū)動器350B的低端提供與NDIS480的通信。
容錯管理器355與NIC交換機340聯(lián)系。容錯管理器355有一個窗口驅(qū)動模型(WDM)456,用來與容錯管理器配置工具360通信。窗口驅(qū)動模型456使得通過各種Windows平臺的容錯管理器355有較易的可攜帶性。
圖4中的各種元件還能描述為表1中所示的軟件對象。單個的軟件對象經(jīng)過API調(diào)用通信。與每個對象有關的調(diào)用在表1中列出。
表1軟件對象和API調(diào)用


故障檢測容錯管理器節(jié)點355檢查分布的故障檢測和故障恢復。下面將詳細描述與本發(fā)明的容錯網(wǎng)絡關聯(lián)的二個故障檢測模式。其它的故障檢測模式對閱讀本說明書的本領域的技術人員來說是顯然的。一般地,任何故障檢測模式是足夠的,如果它能夠檢測到至少一個網(wǎng)絡元件的故障并報告該故障。例如,一個以令牌為基礎的網(wǎng)絡協(xié)議中,一個網(wǎng)絡故障能有一個故障來表示在一個分配好的時間內(nèi)接收該令牌。該故障檢測模式不必要區(qū)分網(wǎng)絡故障的類別,只要它認識到存在一個故障。本領域的技術人員將看到下面的描述可以外推至包含不止一個備用信道的容錯網(wǎng)絡。
在一個實施例中,容錯管理器355的故障檢測模式使用消息對。在該實施例中,每個節(jié)點發(fā)送一對消息。該消息對的一個消息通過活動信道發(fā)送。該消息對的其它消息通過備用信道發(fā)送。該消息對每隔Tp周期發(fā)送一次。在這里,這些消息稱為“I_AM_ALIVE”消息。
一旦接收到一個“I_AM_ALIVE”消息,每個接收節(jié)點將有一個時間Tskew來接收該消息對的剩下的“I_AM_ALIVE”消息。用戶挑選Tskew設置一個可接收的中斷周期。一個中斷周期是在檢測到故障之前網(wǎng)絡故障使網(wǎng)絡通信不能的最長時間。中斷持續(xù)時間一般由Tp和Tskew的函數(shù)來定義,這樣中斷周期等于(MaxLoss+1)*Tp+Tskew,其中MaxLoss等于用戶設置的最大可容許的“I_AM_ALIVE”消息丟失。很明顯用戶控制可接收的中斷周期,同時通過操縱MaxLoss,Tp和Tskew平衡帶寬使用。
如果第二個“I_AM_ALIVE”消息在時間Tskew內(nèi)沒有收到,在MaxLoss等于0的情況下,接收節(jié)點將聲明一個故障并向容錯管理器355報告故障。在另一個實施例中,接收節(jié)點將不報告該故障,除非失敗的消息對的數(shù)目超過某些非零MaxLoss。在另外一個實施例中,接收節(jié)點將在二個失敗消息對即MaxLoss等于1之后報告該故障。在前面二個實施例中,如果消息對在超過最大可容許的故障之前成功完成,失敗消息的計數(shù)器被復位,這樣下一個消息對故障不會導致報告網(wǎng)絡故障。
圖5描述了這些“I_AM_ALIVE”消息的時間表。標記為節(jié)點i的的發(fā)送節(jié)點發(fā)送“I_AM_ALIVE”消息對至標記為節(jié)點j的接收節(jié)點。該消息經(jīng)過用實線表示的活動信道發(fā)送和用虛線表示的備用信道。在從其它網(wǎng)絡接收第一個消息之后從一個網(wǎng)絡接收第二個“I_AM_ALIVE”消息的絕對時間差值,與在圖5中示出的Tskew比較,接收的次序并不重要。以一個不同于發(fā)送次序的次序接收“I_AM_ALIVE”消息而沒有表示一個故障是可接收的。
為了管理消息對故障檢測模式,每個絕對為在網(wǎng)絡上的每個節(jié)點維護一個消息對表。一旦接收到一個消息對消息,接收節(jié)點檢查看看消息對是否已經(jīng)為發(fā)送節(jié)點接收。如果是的話,接收節(jié)點清除該表中的發(fā)送者條目的計數(shù)器。如果消息對的剩余消息沒有接收到,而且失敗的消息對超出MaxLoss,接收節(jié)點將發(fā)送節(jié)點的條目放在Tskew隊列中作為一個計時器事件。該Tskew隊列有助于單個計時器的使用。該計時器事件在Tskew隊列中系列化。當為一個條目設置一個計時器時,指向該條目的指針和超時值加到Tskew計時器隊列的尾部。該Tskew計時器檢查隊列中的條目以決定是否應該產(chǎn)生一個超時事件。圖6A示出了消息對表610,Tskew隊列612和計時器中斷614的相互作用。如同所示,消息對表610包括發(fā)送者ID域,來自主網(wǎng)絡的“I_AM_ALIVE”消息的計數(shù)器(標為活動計數(shù)),來自二級網(wǎng)絡的“I_AM_ALIVE”消息的計數(shù)器(標為備用計數(shù)),和一個等待標記表示該條目是否在一個MaxLoss還沒有被超過的暫時狀態(tài)。計時器事件616有二個域。第一個域標記為Ptr,是一個指向生成計數(shù)器事件的消息對表條目的指針,用線618表示。第二個域標記為Timeout,表示當前時間,即計時器條目生成的時間加上Tskew。如果在Timeout之前沒有收到消息對,Tskew計時器將生成一個關于檢查用線620表示的隊列的超時事件。
圖6B和6C描述了剛剛描述的故障檢測模式的狀態(tài)機器圖。圖6B和6C假設一個MaxLoss,因此表示第二消息對丟失故障。該符號是用形式(XYZ),其中X是從活動信道接收的消息數(shù)目,Y是從備用信道接收的消息數(shù)目,Z表示遭遇故障的信道。Z在描述的實施例中能有三種可能值,如果沒有故障被檢測出為0,如果活動信道表示一個故障為A,如果備用信道表示一個故障為B。圍住(XYZ)的實線表示一個穩(wěn)定狀態(tài),虛線表示一個暫時狀態(tài)。如圖6B所示,(200)表示在備用信道上的一個故障,(020)表示活動信道上的一個故障。在出現(xiàn)這二種故障的情況下,該節(jié)點將向網(wǎng)絡容錯管理器報告故障并依照表示有故障的信道進入恢復模式。
圖6C描述備用信道上故障之后的狀態(tài)機器圖。在該階段有三種可能方案,要么狀態(tài)變?yōu)?000)表示返回一個穩(wěn)定的無故障條件,該狀態(tài)繼續(xù)表示備用信道上的一個故障,要么該狀態(tài)表示活動信道上的一個故障?;顒有诺郎系墓收现蟮南鄳臓顟B(tài)機器圖對本領域的一般技術人員將是顯然的。
容錯管理器355可用的第二種故障檢測模式是鏈接完整性脈沖檢測。鏈接完整性脈沖由IEEE802.3標準定義為是一個100毫秒的脈沖,它由所有的兼容設備傳輸。該脈沖用來證實網(wǎng)絡電纜傳輸?shù)耐暾浴f溄油暾悦}沖故障將向容錯管理器355提示一個故障報告。
容錯管理器355是可配置的,通過它的容錯管理器配置工具360來有選擇地使用一個或多個故障檢測模式。在只有一個集線器或交換機的簡單網(wǎng)絡中,有需要專門依靠鏈接完整性脈沖檢測作為故障檢測模式,從而減少生成,發(fā)送和監(jiān)視“I_AM_ALIVE”消息的需要。然而,應該注意到,一個故障檢測模式可以能夠檢測另一個故障檢測模式不能檢測的故障類型。例如,鏈接完整性脈沖可能不能檢測消息對故障檢測模式能發(fā)現(xiàn)的部分總線故障。
地址管理一個NIC交換機處理多個網(wǎng)絡地址。NIC交換機340使用一個MAC地址表來解決狀態(tài)的地址問題。為了解釋這個概念,我們將參考圖7。圖7描述了連接網(wǎng)絡700的二個節(jié)點120i和120j。網(wǎng)絡700可以或是一個多網(wǎng)絡系統(tǒng)或是一個單容錯網(wǎng)絡。參考節(jié)點120i,網(wǎng)絡接口卡170Ai與網(wǎng)絡地址ACTIVE.a有關,網(wǎng)絡接口卡170Bi與網(wǎng)絡地址STANDBY.b有關。參考節(jié)點120j,網(wǎng)絡接口卡170Aj與網(wǎng)絡地址ACTIVE.c有關,網(wǎng)絡接口卡170Bj與網(wǎng)絡地址STANDBY.d有關?,F(xiàn)在參考表2,如果節(jié)點120I希望發(fā)送一個數(shù)據(jù)包至節(jié)點120j并定址為ACTIVE.c,NIC交換機340I使用MAC地址表。如果主網(wǎng)絡是活動的,NIC交換機340i將數(shù)據(jù)包直接指向網(wǎng)絡總線110A上的地址ACTIVE.c。如果二級網(wǎng)絡是活動的,NIC交換機340i將數(shù)據(jù)包直接指向網(wǎng)絡總線110B上的地址STANDBY.d。在接收節(jié)點120j上,NIC交換機120j將收到一個二個地址ACTIVE.c和STANDBY.d的有效數(shù)據(jù)包。
表2MAC地址映射表

MAC地址映射表是使用一個容錯網(wǎng)絡地址解析協(xié)議(FTNARP)自動產(chǎn)生的。當一個網(wǎng)絡節(jié)點初始化,它通過容錯網(wǎng)絡使用一個AnnounceAddr() API調(diào)用廣播它的MAC地址。每個接收節(jié)點將向它的MAC地址映射表使用一個UpdateAddr() API調(diào)用增加這種FTNARP信息。每個接收節(jié)點還將回答源節(jié)點它自己的MAC地址,如果發(fā)送節(jié)點的信息在接收節(jié)點的MAC地址映射表中不先前存在。于是源節(jié)點將產(chǎn)生它的MAC地址映射表作為這些回答地址的結(jié)果。
本發(fā)明可用于帶有路由器的容錯網(wǎng)絡。這樣的容錯網(wǎng)絡的一個例子在圖8中描述。圖8中的容錯網(wǎng)絡包括連接主網(wǎng)絡總線110A和二級網(wǎng)絡總線110B的二個節(jié)點120i和120j。網(wǎng)絡總線110A和110B分布包括插在節(jié)點120i和120j之間的路由器800A和800B。
在包括路由器的本實施例中,一個IP切換功能在NIC交換機中實現(xiàn)。NIC交換機包括一個類似MAC地址映射表的IP地址映射表。然而該IP地址映射表只包括減少存儲器使用的活動目標映射。
使用IP地址映射表,NIC交換機交換在發(fā)送節(jié)點上的每個幀中的IP目標地址,并交換回接收節(jié)點上的IP地址。一旦經(jīng)過包括節(jié)點的目標缺省地址的備用網(wǎng)絡接收一個FTNARP包,那個接收節(jié)點發(fā)送回一個FTNARP回答包。為了優(yōu)化內(nèi)核存儲器使用,F(xiàn)TNARP表能包括只有類似IP地址映射表的活動目標映射條目。在這種情況下,當節(jié)點從源節(jié)點接收到一個FTNARP包時,該接收節(jié)點用一個FTNARP回答響應主網(wǎng)絡和二級網(wǎng)絡。對主網(wǎng)絡的回答,在這種情況下假設是活動的,發(fā)送至IP層來更新地址映射表。對二級網(wǎng)絡的回答保留在FTNARP表中。
故障恢復信道交換模式信道交換恢復模式最好參照圖1B的多網(wǎng)絡系統(tǒng)的情況和圖2單容錯網(wǎng)絡的情況進行描述。在這種故障恢復模式,所有節(jié)點都將指示向備用信道交換數(shù)據(jù)傳輸。
參考圖1B,如果任何節(jié)點檢測到并報告一個故障,所有節(jié)點將被指示開始使用備用網(wǎng)絡。在這種情況下,在節(jié)點120i和120x之間的數(shù)據(jù)流量在故障恢復前將通過網(wǎng)絡接口卡170Ai,主網(wǎng)絡總線110A和網(wǎng)絡接口卡170Ax。在故障恢復之后,在節(jié)點120i和120x之間的數(shù)據(jù)流量將通過網(wǎng)絡接口卡170Bi,二級網(wǎng)絡總線110B和網(wǎng)絡接口卡170Bx。
參考圖2,如果任何節(jié)點120檢測到并報告一個故障,所有節(jié)點將被指示開始使用備用網(wǎng)絡。然而,在容錯網(wǎng)絡200的情況下沒有物理上的備用網(wǎng)絡。在這種配置中,邏輯活動網(wǎng)絡和邏輯備用網(wǎng)絡通過使用第一個MAC多點傳送組來將所有活動信道地址組合成一個邏輯活動網(wǎng)絡,第二個MAC多點傳送組將所有備用信道地址組合成一個邏輯備用網(wǎng)絡。如果管理器節(jié)點250檢測到一個網(wǎng)絡故障的話,管理器節(jié)點250的網(wǎng)絡接口卡170A和170B鏈接在一起來關閉網(wǎng)絡總線110的環(huán),有助于邏輯備用網(wǎng)絡上的通信。
故障恢復設備交換模式另一種故障恢復模式是設備交換模式。在這種故障恢復模式中,只有檢測到一個故障的那些節(jié)點將被指示向備用信道交換數(shù)據(jù)傳輸。所有節(jié)點或在故障恢復前或在故障恢復后從信道接收有效數(shù)據(jù)包。再參考圖1B(在多網(wǎng)絡系統(tǒng)的情況下),如果節(jié)點120i檢測到并報告一個網(wǎng)絡故障。它將被指示開始使用備用信道。在這種情況下,從節(jié)點120i至節(jié)點120x的數(shù)據(jù)流量在故障恢復前將通過網(wǎng)絡接口卡170Ai,主網(wǎng)絡總線110A和網(wǎng)絡接口卡170Ax。在故障恢復之后,來自節(jié)點120i的數(shù)據(jù)流量將被指向備用信道。相應地,故障后從節(jié)點120i至120x之間的數(shù)據(jù)流量將通過網(wǎng)絡接口卡170Bi,二級網(wǎng)絡總線110B和網(wǎng)絡接口卡170Bx。如果節(jié)點120x還沒有檢測到該故障,它將繼續(xù)使用它的活動信道發(fā)送數(shù)據(jù)。而且,節(jié)點120x將或者通過網(wǎng)絡接口卡170Aj或者通過網(wǎng)絡接口卡170Bj接收有效數(shù)據(jù)包。該設備交換恢復模式在單容錯網(wǎng)絡的情況下類似工作。
示例性實現(xiàn)圖9描述了一個消息中斷流程的流程圖。如圖9中所示,在910,一個節(jié)點從另一個節(jié)點接收一個容錯管理器消息(FTMM)。然后在912,容錯管理器檢查該節(jié)點的活動信道ID是否與該消息指示的活動信道ID一樣。如果節(jié)點的活動LAN ID不同,在914,該節(jié)點運行Swap_Channel()來修改該節(jié)點的活動LAN ID。然后在916,容錯管理器獲得該消息對表的轉(zhuǎn)鎖。該轉(zhuǎn)鎖是保護共享資源的資源機制。在918,該容錯管理器檢查發(fā)送節(jié)點的一個條目是否存在于該消息對表之中。如果是的話,在920該條目通過UpdateState()更新。如果不是的話,在922向該表增加一個條目。該轉(zhuǎn)鎖在924被釋放,處理重復。
圖10A描述了ProcessMsgPair()流程的消息對表操作的一個實施例的流程圖。如圖10所示,在1002從活動信道上的一個發(fā)送節(jié)點接收到一個“I_AM_ALIVE“消息。在1004,接收節(jié)點的消息對表中的發(fā)送節(jié)點的計數(shù)器增加。在1006,如果從備用信道上的發(fā)送節(jié)點接收的消息數(shù)目大于0,在1008,兩個計數(shù)器被清空和如果在1012等待,在1014 Tskew被復位。如果在1006從備用信道上發(fā)送節(jié)點接收的消息數(shù)不大于9,在1010,來自活動信道上的發(fā)送節(jié)點消息數(shù)目與MaxLoss比較。在1010,如果MaxLoss被超過,在1016生成一個超時,它等于當前時間加Tskew。在1018,該超時條目以及它的指針增加到Tskew隊列中,在1020復位Tskew,處理重復。如果在1010,MaxLoss沒有被超過,不生成一個超時并且沒有條目放在該隊列中。
圖10B描述了10A流程圖的一個變化。在該實施例中,在1036一旦清除計數(shù)器,在1040檢查該隊列條目看看它是否在Tskew隊列中。如果是的話,在1044從該隊列中將它解除。而且,在1048,Tskew不被復位而不管它是否在等待。
圖10C描述ProcessMsgPair()流程的操作。圖10A描述了ProcessMsgPair()流程的消息對表操作的一個實施例的流程圖。如圖10C所示,在1060從活動信道上的一個發(fā)送節(jié)點接收到一個“I_AM_ALIVE“消息。在1062,接收節(jié)點的消息對表中的發(fā)送節(jié)點的計數(shù)器增加。在1064,如果從備用信道上的發(fā)送節(jié)點接收的消息數(shù)目大于0,在1066,MsgFromA計數(shù)器和MsgFromB計數(shù)器計數(shù)器被清空,在1072,Tskew中斷計時器復位。在1064,如果從備用信道上的發(fā)送節(jié)點接收的消息數(shù)目大于0,在1068,來自活動信道上的發(fā)送節(jié)點消息數(shù)目與MaxLoss比較。在1068,如果MaxLoss被超過,在1016生成一個中斷計時器,它等于當前時間加Tskew。如果在1068,MaxLoss沒有被超過,不生成一個中斷計時器。在這二種情況下,在1074,處理重復接收下一個“I_AM_ALIVE“消息。
圖11A描述了Tskew計時器操作的一個實施例的流程圖。開始于1102,在1104,該計時器等待一個將要設置的計時器事件。在1106隊列中的最老的條目被解除。在1108,如果來自活動信道消息的計數(shù)器和來自備用信道消息的計數(shù)器都等于0,將控制傳動回1106。如果該條件不滿足,在1110該等待標志設為TRUE。在1112,計時器等待復位或超時。如果在1114出現(xiàn)復位,控制返回1106。如果在1114出現(xiàn)超時,在1116Tskew隊列被清空。然后在1118計時器決定哪個信道表示該故障。如果在1118備用信道表示一個故障,在1122該消息計數(shù)器被清空并且控制返回至1104。如果在1118活動信道表示一個故障,在1120調(diào)用SwapChannel()來將通信交換給二級網(wǎng)絡。
圖11B描述了Tskew計時器操作的一個實施例的流程圖。開始于1130,在1132,該計時器等待一個將要設置的計時器事件。在1134,隊列中的最老的條目被解除。在1134該等待標志設為TRUE。在1138,計時器等待復位或超時。如果在1140出現(xiàn)復位,控制返回1134。如果在1140出現(xiàn)超時,在1142,Tskew隊列被清空。然后在1144計時器決定哪個信道表示該故障。如果在1144備用信道表示一個故障,在1144該消息計數(shù)器被清空并且控制返回至1132。如果在1144主網(wǎng)絡表示一個故障,在1146調(diào)用SwapChannel()來將通信交換給二級網(wǎng)絡。
圖12A描述了Tskew計時器中斷流程的一個實施例的流程圖。如所示,在1202一個節(jié)點i檢測到一個過期的Tskew。然后在1204,決定哪個信道表示一個故障。如果在1204備用信道表示一個故障,在1206向容錯管理器報告一個警報,但對活動信道沒有任何改變。如果在1204活動信道表示該故障,在12086向容錯管理器報告一個警報并且在1210調(diào)用SwapChannel()來將通信從活動信道交換為備用信道。
圖12B描述了Tskew計時器中斷流程的另一個實施例的流程圖。如所示,在1220一個節(jié)點i檢測到一個過期的Tskew。然后在1222,決定哪個信道表示一個故障。如果在1222備用信道表示一個故障,在1230向容錯管理器報告一個警報,然后執(zhí)行調(diào)用IndicateStandbyFailure()。如果在1222活動信道表示該故障,在12086向容錯管理器報告一個警報并且在1226調(diào)用SwapChannel()來將通信從活動信道交換為備用信道。在1228,該處理重復。
圖13描述了SwapChannel()流程的一個實施例的流程圖。在1302初始化之后,一個節(jié)點撥動它的適配器為交換信道。在1306,該容錯管理器活動信道ID消息設為活動信道ID。在1308,該節(jié)點檢查是誰啟動了該交換。如果該節(jié)點被另一個節(jié)點指示交換信道,該處理完成并準備重復。如果該節(jié)點啟動該交換,在1310生成容錯管理器SWAP_CHANNEL消息并在1312由多點傳送發(fā)送通過活動網(wǎng)絡。
圖14描述了與設備交換故障恢復模式有關的消息中斷流程的一個實施例的流程圖。如所示,在1402,一個節(jié)點接收一個包。于是在1404該節(jié)點決定它是否為一個容錯管理器消息或數(shù)據(jù)。如果是數(shù)據(jù)的話,在1406,該包向上傳遞給應用層。如果是一個容錯管理器消息,在1404該節(jié)點還決定它是否是一個DEVICE_SWAP消息或一個I_AM_ALIVE消息。如果是一個DEVICE_SWAP消息,在1408,更新NIC交換機的MAC地址映射表以及活動信道標志。如果是一個I_AM_ALIVE消息,在1410該節(jié)點檢查該消息對表看看是否已經(jīng)收到一對I_AM_ALIVE消息。如果是的話,在1414,該消息對表被清空并且Tskew被復位。如果已經(jīng)收到一對I_AM_ALIVE消息,在1412,該消息對表被更新并且Tskew計時器被復位。
圖15描述了與設備交換故障恢復模式有關的Tskew計時器中斷的一個實施例的流程圖。在1502,如果發(fā)送節(jié)點i的Tskew已經(jīng)過時,在1504,接收節(jié)點檢查該故障是否在活動信道上或在備用信道上。在1504,如果故障在備用信道上,在1510,接收節(jié)點向容錯管理器消息發(fā)出一個警報,表示備用信道的故障。在1504,如果故障在活動信道上,在1506,NIC交換機的MAC地址映射表被更新。如在方框1520所示,該更新涉及設置節(jié)點i的活動信道標志從A到B,表示將來的通信應當直接指向節(jié)點i的STANDBY地址。在1508,生成容錯管理器消息DEVICE_SWAP消息并發(fā)送至發(fā)送節(jié)點。然后在1510接收節(jié)點向容錯管理器消息發(fā)出一個警報表示活動信道的一個故障。
圖16描述了ProcessMsg()流程的一個實施例的流程圖。在1602接收到一個容錯管理器消息。在1604,如果該消息是一個I_AM_ALIVE消息,在1610執(zhí)行調(diào)用ProcessMsgPair(),并且在1612處理重復。如果該消息是一個SWAP_CHANNEL消息,該節(jié)點決定該節(jié)點的活動信道ID是否與該消息的活動信道ID一樣。如果是的話,不采取任何行動并且在1612處理重復。如果該節(jié)點的活動信道ID不同于該消息,在1608該節(jié)點進入一個故障恢復模式,如果該節(jié)點使用一個信道交換故障恢復模式,交換信道,如果該節(jié)點使用一個設備交換故障恢復模式,不采取任何行動??刂茝?608返回至1612,處理重復。
圖17描述消息對發(fā)送操作的一個實施例流程圖。在1702,該處理開始于Tp計時器的過時。一旦該計時器過時,在1704該計時器復位。在1706生成一個I_AM_ALIVE消息并且在1708作為容錯管理器消息在每個信道上多點傳送。然后在1710該節(jié)點睡眠,等待Tp計時器再次過時,在1702重復處理。
圖18描述了節(jié)點啟動流程的流程圖。該過程開始于1802,在1804,數(shù)據(jù)結(jié)構(gòu),Tp計時器和MaxLoss初始化。對于單容錯網(wǎng)絡的情況,在1806為每個連接著的信道注冊一個容錯多點傳送組地址。對于多網(wǎng)絡系統(tǒng)的情況,為所有連接著的信道注冊一個容錯多點傳送組地址。對于這二種情況,在1808確認活動信道,在1810該節(jié)點進入故障檢測狀態(tài)。
圖19描述了IndicateStandbyFailure()流程的流程圖。該處理開始于1902。在1904生成容錯管理器STANDBY_LAN_FAILURE消息,以響應備用信道故障的檢測。備用信道上的故障檢測鏡象描述活動信道上的故障檢測的處理。然后在1906在活動信道上多點傳送STANDBY_LAN_FAILURE消息向每個節(jié)點的容錯管理器表示對于活動信道的故障恢復備用信道是不可用的。在1908該處理重復。
結(jié)論公開了容錯網(wǎng)絡的實現(xiàn)方法。該方法提供給網(wǎng)絡容錯管理器用于檢測網(wǎng)絡故障和操作一個節(jié)點來與一個活動信道通信。該方法特別適合于以太網(wǎng)LAN。
在一個實施例中,該網(wǎng)絡容錯管理器通過使用消息對監(jiān)視網(wǎng)絡狀態(tài),鏈結(jié)完整性脈沖或二種故障檢測模式的結(jié)合。故障檢測模式的選擇在另一個實施例中是可配置的。該網(wǎng)絡容錯管理器作為中間件執(zhí)行,從而促進COTS設備的使用,現(xiàn)有網(wǎng)絡結(jié)構(gòu)的執(zhí)行和傳統(tǒng)傳輸/網(wǎng)絡協(xié)議如TCP/IP或其他協(xié)議的使用。網(wǎng)絡容錯管理器在每個節(jié)點上并與其他節(jié)點的其他網(wǎng)絡容錯管理器通信。
在一個實施例中,網(wǎng)絡容錯管理器將每個網(wǎng)絡節(jié)點的通信從經(jīng)歷故障的信道切換成備用信道。在另一個實施例中,該網(wǎng)絡容錯管理器將檢測一個故障的節(jié)點的通信從已有故障的信道切換到備用信道。
雖然本發(fā)明結(jié)合各種實施例描述,但不意味著限制本發(fā)明于一種這樣的實施例。許多其他的實施例對于閱讀以上描述的本領域的技術人員是很顯然的。
權利要求
1.一種容錯通信網(wǎng)絡,包括至少二個節(jié)點,其中至少二個節(jié)點中的每個連接用于數(shù)據(jù)傳輸?shù)亩鄠€信道;和與至少二個節(jié)點中的每個相關的網(wǎng)絡容錯管理器,其中與一個節(jié)點相關的網(wǎng)絡容錯管理器指示那個節(jié)點有選擇地在連接那個節(jié)點的多個信道中之一上傳送數(shù)據(jù)包,其中網(wǎng)絡容錯管理器在位于網(wǎng)絡物理層之上和在網(wǎng)絡傳輸層之下的一個邏輯層,而且其中每個網(wǎng)絡容錯管理器與其它網(wǎng)絡容錯管理器通信。
2.權利要求1的容錯通信網(wǎng)絡,其中該網(wǎng)絡容錯管理器還指示至少二個節(jié)點中的每一個在多個信道中的同樣一個上傳輸數(shù)據(jù)包。
3.權利要求1的容錯通信網(wǎng)絡,其中至少二個節(jié)點中的每個包括以一對一關系連接多個信道中的每個的一個網(wǎng)絡接口卡;和以一對多關系連接網(wǎng)絡接口卡中的每個的一個網(wǎng)絡接口卡交換機;其中網(wǎng)絡接口卡交換機指示數(shù)據(jù)包至網(wǎng)絡接口卡之一,如同網(wǎng)絡容錯管理器指示一樣。
4.權利要求1的容錯通信網(wǎng)絡,其中多個信道使用網(wǎng)絡資源,其中使用多個信道中的第一信道的網(wǎng)絡資源與使用多個信道中的第二信道的網(wǎng)絡資源共享。
5.一種數(shù)據(jù)通信的容錯網(wǎng)絡,包括第一網(wǎng)絡;第二網(wǎng)絡;和至少二個節(jié)點,其中至少二個節(jié)點中的每個連接第一網(wǎng)絡和第二網(wǎng)絡,其中至少二個節(jié)點中的每個有一個網(wǎng)絡容錯管理器,而且其中每個網(wǎng)絡容錯管理器與其它網(wǎng)絡容錯管理器通信;其中每個網(wǎng)絡容錯管理器指示它的相應節(jié)點有選擇地在從由第一網(wǎng)絡和第二網(wǎng)絡組成的組中選擇出的一個網(wǎng)絡上傳輸數(shù)據(jù)包,還有其中每個網(wǎng)絡容錯管理器響應從其它網(wǎng)絡容錯管理器接收到的消息,還有其中每個網(wǎng)絡容錯管理器在位于網(wǎng)絡物理層之上和在網(wǎng)絡傳輸層之下的一個邏輯層。
6.權利要求5中的容錯網(wǎng)絡,其中第一網(wǎng)絡和第二網(wǎng)絡都是單個物理網(wǎng)絡中的邏輯網(wǎng)絡。
7.一種用于通信網(wǎng)絡中的節(jié)點,包括第一網(wǎng)絡接口;第二網(wǎng)絡接口;一個網(wǎng)絡容錯管理器,其中網(wǎng)絡容錯管理器在位于網(wǎng)絡物理層之上和在網(wǎng)絡傳輸層之下的一個邏輯層;和與網(wǎng)絡容錯管理器通信的網(wǎng)絡接口卡交換機,其中網(wǎng)絡接口卡交換機響應網(wǎng)絡容錯管理器有選擇地指示該節(jié)點和網(wǎng)絡之一之間的數(shù)據(jù)流量。
8.權利要求7中的該節(jié)點,其中網(wǎng)絡容錯管理器和網(wǎng)絡接口卡交換機合并為一個單個軟件對象。
9.一種用于容錯通信網(wǎng)絡的故障恢復方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從第一個節(jié)點初始數(shù)據(jù)通信,其中數(shù)據(jù)通信有在活動網(wǎng)絡上的第一個節(jié)點通過第一個網(wǎng)絡接口傳輸;第一個節(jié)點檢測一個故障,其中該故障是從由活動網(wǎng)絡上的一個故障和備用網(wǎng)絡上的一個故障組成的組中選擇出來;當該故障位于活動網(wǎng)絡上時,指示第一個節(jié)點通過第二網(wǎng)絡接口將數(shù)據(jù)流量交換給備用網(wǎng)絡;和當該故障位于備用網(wǎng)絡之上時,報告該故障。
10.權利要求9中的故障恢復方法,其中活動網(wǎng)絡和備用網(wǎng)絡都是單個物理網(wǎng)絡中的邏輯網(wǎng)絡。
11.一種機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求9的方法的指令。
12.一種用于容錯通信網(wǎng)絡的故障恢復方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從第一個節(jié)點初始數(shù)據(jù)通信,其中數(shù)據(jù)通信有在活動網(wǎng)絡上的第一個節(jié)點通過第一個網(wǎng)絡接口傳輸;第一個節(jié)點檢測一個故障,其中該故障發(fā)生在活動網(wǎng)絡上;指示第一個節(jié)點通過第二網(wǎng)絡接口將數(shù)據(jù)流量交換給備用網(wǎng)絡;和指示多個節(jié)點中的每個剩下節(jié)點將數(shù)據(jù)流量交換給備用網(wǎng)絡。
13.權利要求12中的故障恢復,其中活動網(wǎng)絡和備用網(wǎng)絡都是單個物理網(wǎng)絡中的邏輯網(wǎng)絡。
14.一種機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求12的方法的指令。
15.一種用于容錯通信網(wǎng)絡的故障檢測方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從第一個節(jié)點傳輸多個消息對,其中每個消息對的第一個消息在活動網(wǎng)絡上傳輸,每個消息對的第二個消息在備用網(wǎng)絡上傳輸;在第二個節(jié)點上監(jiān)視接收多個消息對,其中監(jiān)視接收包括確定在接收每個消息對的第一個和第二個消息之間的絕對時間差值;比較每個消息對的絕對時間差值與預定時間,其中絕對時間差值大于預定時間表示接收失?。蝗绻B續(xù)故障數(shù)目超過預定最大值時聲明一個故障。
16.權利要求15中的故障檢測方法,其中該故障是從由活動網(wǎng)絡上的一個故障和備用網(wǎng)絡上的一個故障組成的組中選擇出來;
17.權利要求15中的故障檢測方法,其中活動網(wǎng)絡和備用網(wǎng)絡都是單個物理網(wǎng)絡中的邏輯網(wǎng)絡。
18.權利要求15中的故障檢測方法,其中接收消息對的第一個消息出現(xiàn)在接收消息對的第二個消息之前。
19.權利要求15中的故障檢測方法,其中傳輸多個消息對包括以有規(guī)則的時間間隔傳輸多個消息對。
20.權利要求15中的故障檢測方法,其中如果連續(xù)接收故障數(shù)目超過預定最大值時聲明一個故障包括如果連續(xù)接收故障數(shù)目超過1時聲明一個故障。
21.一種機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求15的方法的指令。
22.一種用于容錯通信網(wǎng)絡的故障恢復方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從活動網(wǎng)絡上的第一個節(jié)點傳輸消息對的第一個消息;從備用網(wǎng)絡上的第一個節(jié)點傳輸消息對的第二個消息;由活動網(wǎng)絡上的第二個節(jié)點接收第一個消息;等待一個預定時間來接收備用網(wǎng)絡的第二個節(jié)點上的第二個消息;和如果第二個消息在預定時間內(nèi)沒有到達備用網(wǎng)絡上的第二個節(jié)點上時,聲明一個故障。
23.權利要求22中的故障檢測方法,其中傳輸?shù)谝粋€消息發(fā)出在傳輸?shù)诙€消息之前。
24.一種機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求22的方法的指令。
25.一種用于容錯通信網(wǎng)絡的故障檢測方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從活動網(wǎng)絡上的第一個節(jié)點傳輸消息對的第一個消息;從備用網(wǎng)絡上的第一個節(jié)點傳輸消息對的第二個消息;由第二個節(jié)點接收一個消息,其中該消息從由第一個消息和第二個消息組成的組中選擇;等待一個預定時間由第二個節(jié)點接收該消息對中剩下的一個消息;和如果剩下的消息在預定時間內(nèi)沒有到達的第二個節(jié)點上時,聲明一個故障。
26.權利要求25中的故障檢測方法,其中傳輸?shù)谝粋€消息發(fā)出在傳輸?shù)诙€消息之前。
27.一種機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求25的方法的指令。
28.一種用于容錯通信網(wǎng)絡的故障檢測方法,該容錯通信網(wǎng)絡有一個活動網(wǎng)絡和一個備用網(wǎng)絡并有連接至活動和備用網(wǎng)絡的多個節(jié)點,該方法包括從活動網(wǎng)絡上的第一個節(jié)點傳輸?shù)谝粋€消息對的第一個消息;從備用網(wǎng)絡上的第一個節(jié)點傳輸?shù)谝粋€消息對的第二個消息;由第二個節(jié)點接收一個消息,其中該消息從由第一個消息對的第一個消息和第一個消息對的第二個消息組成的組中選擇;等待第一個預定時間由第二個節(jié)點接收第一個消息對中剩下的一個消息;從活動網(wǎng)絡上的第一個節(jié)點傳輸?shù)诙€消息對的第一個消息;從備用網(wǎng)絡上的第一個節(jié)點傳輸?shù)诙€消息對的第二個消息;由第二個節(jié)點接收一個消息,其中該消息從由第二個消息對的第一個消息和第二個消息對的第二個消息組成的組中選擇;等待第二個預定時間由第二個節(jié)點接收第二個消息對中剩下的一個消息;如果第一個消息對中剩下的消息在第一個預定時間內(nèi)沒有到達的第二個節(jié)點上,而且第二個消息對中剩下的消息在第二個預定時間內(nèi)沒有到達的第二個節(jié)點上時,聲明一個故障,其中第一個消息對中剩下的消息和第二個消息對中剩下的消息都是從由活動網(wǎng)絡和備用網(wǎng)絡組成的組中選擇出來的一個網(wǎng)絡中傳輸?shù)摹?br> 29.機器可讀介質(zhì),其中存儲使得處理器實現(xiàn)權利要求28的方法的指令。
30.一種用于容錯通信網(wǎng)絡的一個節(jié)點,包括第一個網(wǎng)絡接口;第二個網(wǎng)絡接口;一個處理器;和連接該處理器的一個機器可讀介質(zhì),其中該機器可讀介質(zhì)存儲使得處理器實現(xiàn)一個方法的指令,該方法包括從該節(jié)點初始數(shù)據(jù)通信,其中該數(shù)據(jù)通信是由該節(jié)點通過第一個網(wǎng)絡接口傳輸;由該節(jié)點檢測一個故障,其中該故障出現(xiàn)在與第一個網(wǎng)絡接口連接的第一個網(wǎng)絡上;和指示該節(jié)點通過第二個網(wǎng)絡接口交換數(shù)據(jù)通訊至第二個網(wǎng)絡。
31.權利要求20的節(jié)點,其中機器可讀介質(zhì)還存儲使得處理器報告故障的指令。
全文摘要
實現(xiàn)容錯網(wǎng)絡的方法和設備提供網(wǎng)絡容錯管理器檢測故障并操作一個節(jié)點與一個活動信道通信的一個節(jié)點。故障檢測結(jié)合一個或多個方法,包括消息對和鏈接脈沖檢測。故障恢復包括切換所有的數(shù)據(jù)通訊至備用信道或切換哪些檢測到一個故障的節(jié)點。節(jié)點間的通信提供分布式檢測,同時檢測節(jié)點向他們的網(wǎng)絡容錯管理器報告故障并且網(wǎng)絡容錯管理器向所有節(jié)點多點傳送故障恢復。該網(wǎng)絡容錯管理器是中間件,與每個節(jié)點一起位于網(wǎng)絡物理層之上和在網(wǎng)絡傳輸層之下的一個邏輯層。該方法特別適合于以太網(wǎng)LAN并能夠使用市場上可購買的網(wǎng)絡元件。
文檔編號H04L29/14GK1342362SQ99815545
公開日2002年3月27日 申請日期1999年10月7日 優(yōu)先權日1998年11月10日
發(fā)明者J·黃, L·李, S·宋 申請人:霍尼韋爾有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1