欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

路由器和路由協(xié)議冗余的制作方法

文檔序號:7671633閱讀:329來源:國知局
專利名稱:路由器和路由協(xié)議冗余的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)和網(wǎng)絡(luò)設(shè)備領(lǐng)域,更具體些,本發(fā)明涉及網(wǎng)絡(luò)路由器和路由協(xié)議。特別地,本發(fā)明涉及路由器和路由協(xié)議冗余。
背景技術(shù)
網(wǎng)絡(luò)是允許用戶訪問資源和數(shù)據(jù)的互連設(shè)備的集合。通常類型的網(wǎng)絡(luò)設(shè)備包括服務(wù)器、路由器、網(wǎng)橋、開關(guān)、網(wǎng)關(guān)和集線器。眾所周知的網(wǎng)絡(luò)是互聯(lián)網(wǎng)。互聯(lián)網(wǎng)是運(yùn)行互聯(lián)網(wǎng)協(xié)議(IP)來傳輸數(shù)據(jù)(例如,包)的互聯(lián)網(wǎng)絡(luò)的全球系統(tǒng)。因?yàn)榘梢栽谠竭^互聯(lián)網(wǎng)的若干網(wǎng)絡(luò)邊界到達(dá)目的地,IP包括“3”層服務(wù),后者提供路由和轉(zhuǎn)發(fā)功能以便利用最優(yōu)路徑到達(dá)目的地。
提供IP 3層服務(wù)的常用網(wǎng)絡(luò)設(shè)備是路由器。路由器通過根據(jù)網(wǎng)絡(luò)當(dāng)前視圖確定最優(yōu)路徑來路由包,并利用最優(yōu)路徑越過網(wǎng)絡(luò)邊界向目的地轉(zhuǎn)發(fā)包。根據(jù)網(wǎng)絡(luò)視圖,路由器產(chǎn)生并維護(hù)路由器已知的可用路由的路由表。路由器使用路由表產(chǎn)生轉(zhuǎn)發(fā)信息表(FIB)。FIB是路由器向目的地轉(zhuǎn)發(fā)包所用的路由表。
路由器使用路由協(xié)議與其它路由器交換信息,以便維護(hù)一致的網(wǎng)絡(luò)視圖(即一致的FIB)。為正確轉(zhuǎn)發(fā)包,每個路由器必須與網(wǎng)絡(luò)上其它路由器具有一致的FIB。也就是,具有不一致的轉(zhuǎn)發(fā)信息表(FIB)的路由器不能以可預(yù)測的方式在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)包。這樣會發(fā)生路由環(huán)路或包的不正確路由。
因此,網(wǎng)絡(luò)上會發(fā)生的關(guān)鍵問題是路由器失敗。路由器可以因任意個原因而失敗,如配置不當(dāng)、黑客攻擊、硬件失敗和軟件失敗。這種失敗是不可預(yù)測的。不幸的是,路由器失敗會導(dǎo)致網(wǎng)絡(luò)拓?fù)涓淖儭L貏e地,拓?fù)鋾蚰承╂溌坊蚵酚善飨Ф淖?。而且,路由協(xié)議信息會因?yàn)椴荒艿竭_(dá)某些節(jié)點(diǎn)或某些信息不能傳播到整個網(wǎng)絡(luò)而丟失。此外,因?yàn)槟承┑刂凡豢蛇_(dá),包可能不能到達(dá)目的地。
這樣路由失敗會導(dǎo)致若干問題,如服務(wù)中斷、服務(wù)降級(次最優(yōu)路由)、服務(wù)因路由表收斂時間過大而中斷。失敗的路由器會導(dǎo)致其它路由器采用使服務(wù)降級的非最優(yōu)路徑轉(zhuǎn)發(fā)包,因?yàn)榘竭_(dá)目的地需要更多時間。失敗的路由器會使網(wǎng)絡(luò)上他的對等路由器和其它通過這些對等路由器的路由器更新他們的路由表(“收斂”),進(jìn)行這種收斂會導(dǎo)致服務(wù)中斷或降級。
例如,如果路由器失敗并且對等節(jié)點(diǎn)或鄰路由器的路由協(xié)議觀察到失敗,路由協(xié)議會將失敗路由的消息廣播到整個網(wǎng)絡(luò),以便路由表相應(yīng)地更新。結(jié)果,在網(wǎng)絡(luò)繼續(xù)完全服務(wù)前,在工作路由器中會有一個服務(wù)中斷或降級來更新路由表,以便它們彼此具有一致的FIB。網(wǎng)絡(luò)的重新配置會在整個網(wǎng)絡(luò)恢復(fù)前占用幾秒、幾分或幾小時。對于關(guān)鍵任務(wù)支持服務(wù),這樣的行為是不可接受的。
為增加系統(tǒng)的可用性,處理路由器失敗的一種方法是硬件冗余。這種類型的冗余通常稱為2層冗余。2層冗余系統(tǒng)可包括冗余線卡、端口或控制器卡。如果線卡、端口或控制器卡失敗,冗余線卡、端口或控制器卡可繼續(xù)運(yùn)行。然而,2層冗余的缺點(diǎn)是它不提供實(shí)時路由協(xié)議冗余。例如,由路由協(xié)議實(shí)時產(chǎn)生的若干軟件狀態(tài)不在冗余硬件中維護(hù),導(dǎo)致協(xié)議會話被丟棄。因此,在2層冗余系統(tǒng)中,協(xié)議會話丟棄導(dǎo)致網(wǎng)絡(luò)拓?fù)涓淖儚亩鴮?dǎo)致服務(wù)中斷或服務(wù)降級。
處理路由器失敗的另一方法是設(shè)置備份路由器。這種方案通常稱為虛擬路由器冗余協(xié)議(VRRP)。在VRRP方案中,如果對等路由器認(rèn)出主路由器失敗,它會開始與備份路由器通訊。VRRP的一個缺點(diǎn)是切換到備份路由器會占用很長時間(“毛刺時間”)。VRRP的另一個缺點(diǎn)是失敗路由器的對等會話被拆除或斷開,不能由備份路由器繼續(xù),導(dǎo)致服務(wù)失敗。
VRRP的另一個缺點(diǎn)是或者所有的路由會話斷開,或者為使路由繼續(xù),備份路由器具有與相同的鄰居的獨(dú)立的對等會話,結(jié)果主路由器導(dǎo)致嚴(yán)重的開銷。任何情況下,當(dāng)主路由器失敗時,因?yàn)橹髀酚善鞯膶Φ葧挶粊G棄,都涉及收斂時間。

發(fā)明內(nèi)容
為減少網(wǎng)絡(luò)設(shè)備的服務(wù)中斷或降級從而提高由于網(wǎng)絡(luò)設(shè)備的軟件和硬件失敗的網(wǎng)絡(luò)上的服務(wù)可用性,公開了一種路由器和路由協(xié)議冗余。一個實(shí)施例中,諸如路由器的網(wǎng)絡(luò)設(shè)備包括具有工作控制器和備用控制器系統(tǒng)。路由協(xié)議狀態(tài)的變化由工作控制器系統(tǒng)接收或產(chǎn)生。接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化復(fù)制到備用控制器系統(tǒng)。通過復(fù)制路由協(xié)議狀態(tài)變化,如果工作控制器系統(tǒng)失敗,備用控制器系統(tǒng)可以維持網(wǎng)絡(luò)設(shè)備的路由協(xié)議會話。而且,實(shí)時維護(hù)路由協(xié)議狀態(tài)以處理路由協(xié)議產(chǎn)生的動態(tài)變化。
本發(fā)明的其他特性和優(yōu)點(diǎn)可以從下文的附圖和詳細(xì)說明中得來。


本發(fā)明通過例子來說明,且不局限于附圖,附圖中相似的標(biāo)記數(shù)字表示相似的元件,其中圖1表示可以實(shí)施本發(fā)明的典型網(wǎng)絡(luò)。
圖2表示根據(jù)一個實(shí)施例可以被圖1所示的節(jié)點(diǎn)利用的體系層次模型。
圖3表示根據(jù)一個實(shí)施例的冗余節(jié)點(diǎn)的基本操作的流程圖。
圖4A表示路由協(xié)議信息從工作卡復(fù)制到備用卡的圖示。
圖4B表示根據(jù)一個實(shí)施例的復(fù)制路由協(xié)議狀態(tài)變化信息的操作流程圖。
圖5表示根據(jù)一個實(shí)施例圖3中快速切換到備用控制器系統(tǒng)的繼續(xù)運(yùn)行的詳細(xì)操作流程圖。
圖6A為表示根據(jù)一個實(shí)施例欺騙對等節(jié)點(diǎn)防止觀察到失敗和切換的圖示。
圖6B為表示根據(jù)另一個實(shí)施例欺騙對等節(jié)點(diǎn)防止觀察到失敗和切換的圖示。
圖7為表示根據(jù)一個實(shí)施例向?qū)Φ裙?jié)點(diǎn)發(fā)送提交的操作流程圖。
圖8表示根據(jù)一個實(shí)施例具有工作控制器系統(tǒng)和備份控制器系統(tǒng)的網(wǎng)絡(luò)設(shè)備。
圖9表示根據(jù)一個實(shí)施例的網(wǎng)絡(luò)設(shè)備的冗余平臺。
圖10A表示根據(jù)一個實(shí)施例的啟動順序的操作流程圖。
圖10B表示根據(jù)另一個實(shí)施例的啟動順序的操作流程圖。
圖11A和11B表示根據(jù)一個實(shí)施例進(jìn)行無縫切換到備用卡的工作卡的操作流程圖。
圖12A和12B表示根據(jù)一個實(shí)施例進(jìn)行無縫切換的備用卡的操作流程圖。
圖13表示根據(jù)一個實(shí)施例進(jìn)行非無縫切換的備用卡的操作流程圖。
圖14表示根據(jù)一個實(shí)施例向備用卡更新持久信息的操作流程圖。
圖15表示根據(jù)一個實(shí)施例向備用卡更新非持久信息的操作流程圖。
圖16表示根據(jù)一個實(shí)施例執(zhí)行錯誤處理的操作流程圖。
圖17為表示根據(jù)一個實(shí)施例網(wǎng)絡(luò)設(shè)備內(nèi)部的路由協(xié)議交互的圖示。
圖18為表示根據(jù)一個實(shí)施例工作卡和備用卡間的路由協(xié)議交互的圖示。
圖19表示根據(jù)一個實(shí)施例路由協(xié)議冗余的體系。
圖20表示BGP、TCP和IP間交互的示例圖。
圖21A為表示根據(jù)一個實(shí)施例復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化的操作流程圖。
圖21B為表示根據(jù)一個實(shí)施例復(fù)制接收的或產(chǎn)生的TCP狀態(tài)變化的操作流程圖。
圖22表示工作卡上的工作TCP和備用卡上的備用TCP間的一個對話的實(shí)施例,用于表示發(fā)送到對等節(jié)點(diǎn)的BGP消息的鎖步要求。
圖23表示工作卡上的工作TCP和備用卡上的備用TCP間的一個對話的實(shí)施例,用于表示從對等節(jié)點(diǎn)接收的BGP消息的鎖步要求。
圖24為表示根據(jù)一個實(shí)施例發(fā)送到對等節(jié)點(diǎn)的獨(dú)立BGP消息的δ更新的BGP體系。
圖25為表示根據(jù)一個實(shí)施例發(fā)送到對等節(jié)點(diǎn)的獨(dú)立BGP消息的δ更新的BGP體系。
圖26為表示根據(jù)一個實(shí)施例從對等節(jié)點(diǎn)接收的獨(dú)立BGP消息的δ更新的BGP體系。
圖27為表示根據(jù)一個實(shí)施例提交BGP消息的流程圖。
圖28為表示根據(jù)一個實(shí)施例對BGP協(xié)議冗余進(jìn)行批量更新的操作流程圖。
圖29為表示根據(jù)一個實(shí)施例對IS-IS協(xié)議冗余進(jìn)行批量更新的操作流程圖。
圖30為表示根據(jù)一個實(shí)施例對接收或發(fā)送的IS-IS消息進(jìn)行δ更新的操作流程圖。
圖31為表示根據(jù)一個實(shí)施例對OSPF進(jìn)行批量更新的操作流程圖。
圖32為表示根據(jù)一個實(shí)施例對接收或發(fā)送的OSPF消息進(jìn)行δ更新的操作流程圖。
具體實(shí)施例方式
由于網(wǎng)絡(luò)設(shè)備的軟件和硬件失敗的原因,為減少網(wǎng)絡(luò)設(shè)備的服務(wù)中斷或降級從而提高網(wǎng)絡(luò)上的服務(wù)可用性,描述了一種路由器和路由協(xié)議冗余。一個實(shí)施例中,諸如路由器的網(wǎng)絡(luò)設(shè)備包括具有工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺。路由協(xié)議狀態(tài)的變化由工作控制器系統(tǒng)接收或產(chǎn)生。接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化被復(fù)制到備用控制器系統(tǒng)。通過復(fù)制路由協(xié)議狀態(tài)變化,如果工作控制器系統(tǒng)失敗,備用控制器系統(tǒng)可以維持網(wǎng)絡(luò)設(shè)備的路由協(xié)議會話。而且,實(shí)時維護(hù)路由協(xié)議狀態(tài)以處理路由協(xié)議產(chǎn)生的動態(tài)變化。
其中所描述的冗余技術(shù)允許失敗的網(wǎng)絡(luò)設(shè)備在短時間內(nèi)恢復(fù)服務(wù),以免服務(wù)中斷。冗余技術(shù)也允許備份或備用控制器系統(tǒng)使失敗的網(wǎng)絡(luò)服務(wù)設(shè)備恢復(fù)失敗前的工作控制器系統(tǒng)的工作狀態(tài)。冗余技術(shù)還防止網(wǎng)絡(luò)設(shè)備的對等節(jié)點(diǎn)觀察到網(wǎng)絡(luò)設(shè)備的失敗。冗余技術(shù)還通過實(shí)時維護(hù)協(xié)議會話防止在從工作控制器系統(tǒng)向備用控制器系統(tǒng)切換時丟失路由協(xié)議會話。冗余技術(shù)還在備用控制器系統(tǒng)中維護(hù)一致的網(wǎng)絡(luò)視圖。
在下面的描述中,描述了關(guān)于網(wǎng)絡(luò)路由器和路由協(xié)議的冗余技術(shù)。然而,這里描述的冗余技術(shù)不用于限制某種類型的網(wǎng)絡(luò)設(shè)備,可以用其它類型的網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn),他們會有硬件和軟件失敗或進(jìn)行路由協(xié)議功能,例如,網(wǎng)絡(luò)開關(guān)、網(wǎng)絡(luò)優(yōu)化開關(guān)、網(wǎng)橋、集線器或網(wǎng)關(guān)。
而且,在下面的描述中,路由器冗余是指工作控制器系統(tǒng)具有備份控制器系統(tǒng)(即備用控制器系統(tǒng))的路由器。當(dāng)工作控制器系統(tǒng)失敗時備用控制器系統(tǒng)可繼續(xù)工作路由器的操作。此外,路由協(xié)議冗余是指在備用控制器系統(tǒng)中維護(hù)運(yùn)行于工作控制器系統(tǒng)的協(xié)議會話,以及在備用控制器系統(tǒng)中維護(hù)與工作控制器系統(tǒng)一致的路由和轉(zhuǎn)發(fā)信息。
路由器和路由協(xié)議冗余概述具有路由器冗余的典型網(wǎng)絡(luò)圖1表示可在其中實(shí)施本發(fā)明的典型網(wǎng)絡(luò)100。參考圖1,典型網(wǎng)絡(luò)系統(tǒng)包括與多個對等節(jié)點(diǎn)102A和102B相連的具有冗余平臺900的節(jié)點(diǎn)104(“冗余節(jié)點(diǎn)104”)。為說明目的,顯示了3個節(jié)點(diǎn),然而,網(wǎng)絡(luò)100可包括任意數(shù)目的節(jié)點(diǎn)。對等節(jié)點(diǎn)102A和102B是與冗余節(jié)點(diǎn)104有“會話”或“邏輯連接”的節(jié)點(diǎn)。
在一個實(shí)施例中,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104代表諸如執(zhí)行IP3層服務(wù)的網(wǎng)絡(luò)路由器等的網(wǎng)絡(luò)設(shè)備??商娲?,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可以是其它類型的網(wǎng)絡(luò)設(shè)備,例如可進(jìn)行IP 3層服務(wù)或更高層服務(wù)直到應(yīng)用層服務(wù)的開關(guān)、網(wǎng)橋、集線器或網(wǎng)關(guān)。在其它實(shí)施例中,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可進(jìn)行多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104代表用于在通常稱為自主系統(tǒng)(AS)的同一管理機(jī)構(gòu)和控制下向一組特定的網(wǎng)絡(luò)轉(zhuǎn)發(fā)信息(即,包)的網(wǎng)絡(luò)路由器。這樣,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可代表運(yùn)行內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)的“內(nèi)部路由器”在AS中交換信息。
如果作為IGP,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可運(yùn)行諸如中間系統(tǒng)—中間系統(tǒng)協(xié)議(IS-IS)、開放最短路徑優(yōu)先協(xié)議(OSPF)和路由信息協(xié)議(RIP)。IS-IS協(xié)議和OSPF協(xié)議是鏈路狀態(tài)協(xié)議。鏈路狀態(tài)協(xié)議使用鏈路狀態(tài)包維護(hù)一致的網(wǎng)絡(luò)視圖。RIP協(xié)議是基于使用最短路徑算法的距離矢量的簡單協(xié)議。
可替代地,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可代表用于在AS間轉(zhuǎn)發(fā)信息的網(wǎng)絡(luò)路由器,在AS中路由器被稱為“外部路由器”并運(yùn)行外部網(wǎng)關(guān)協(xié)議(EGP)。如果作為EGP,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可運(yùn)行諸如邊界網(wǎng)關(guān)協(xié)議(BGP)的路由協(xié)議。BGP協(xié)議通過諸如傳輸控制協(xié)議(TCP)的可靠傳輸協(xié)議交換連接信息,不具有錯誤控制能力。然而,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可代表內(nèi)部路由器或外部路由器和網(wǎng)絡(luò)100中代表的任意數(shù)目的路由器的任意組合。
這樣,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可維護(hù)一致的路由和路由協(xié)議狀態(tài)信息。如果路由更新,在對等節(jié)點(diǎn)上必須更新路由,以維護(hù)一致的網(wǎng)絡(luò)視圖。在一個實(shí)施例中,節(jié)點(diǎn)102A、102B和冗余節(jié)點(diǎn)104可通過發(fā)送問候包確定鄰居。如果建立的對等節(jié)點(diǎn)在一定時間內(nèi)未響應(yīng)問候包,對等節(jié)點(diǎn)會被認(rèn)為不合作或失敗。
這樣,冗余節(jié)點(diǎn)104是具有冗余平臺的特種節(jié)點(diǎn),該冗余平臺具有工作控制器系統(tǒng)(工作卡910)和備用控制器系統(tǒng)(備用卡950),可防止節(jié)點(diǎn)失敗被對等節(jié)點(diǎn)102A和102B觀察到的。而且,如果工作控制器系統(tǒng)失敗,備用控制器系統(tǒng)會與對等節(jié)點(diǎn)繼續(xù)協(xié)議會話以便對等節(jié)點(diǎn)觀察不到工作控制器系統(tǒng)失敗。例如,如果節(jié)點(diǎn)102A向冗余節(jié)點(diǎn)104發(fā)送一個問候包,問候包因某種原因丟失,發(fā)生切換,節(jié)點(diǎn)102A重發(fā)問候包,備用控制器系統(tǒng)會繼續(xù)運(yùn)行,在超時前應(yīng)答確認(rèn)重發(fā)的問候包。這樣,節(jié)點(diǎn)102A觀察不到向備用系統(tǒng)的切換。
在一個實(shí)施例中,節(jié)點(diǎn)104代表具有圖9所示的冗余平臺900的路由器。冗余平臺900包括工作卡910和備用卡950,在工作卡910失敗時繼續(xù)運(yùn)行。工作卡910和備用卡950包括硬件和其中運(yùn)行的軟件模塊。在一個實(shí)施例中,工作卡910和備用卡950均可運(yùn)行潛在不同或相同版本的軟件。如下面的詳細(xì)描述,冗余平臺900對節(jié)點(diǎn)104提供路由器和路由協(xié)議冗余的支持,防止對等節(jié)點(diǎn)觀察到失敗并維護(hù)冗余節(jié)點(diǎn)104和對等節(jié)點(diǎn)的路由協(xié)議會話。
典型體系層次模型圖2表示根據(jù)一個實(shí)施例,可以被圖1所示的節(jié)點(diǎn)利用的體系層次模型200。在一個實(shí)施例中,工作卡910和備用卡950采用體系層次模型200運(yùn)行。體系層次模型200可基于網(wǎng)絡(luò)通信的標(biāo)準(zhǔn)7層參考模型。為解釋目的,體系層次模型200代表IP路由器可運(yùn)行于其中的不同層的一個實(shí)施例。
參考圖2,體系層次模型200包括物理層202、鏈路層204、IP層206、傳輸控制協(xié)議(TCP)層208、用戶數(shù)據(jù)報協(xié)議(UDP)層208、互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)218、路由協(xié)議層220,其中路由協(xié)議層220包括邊界網(wǎng)關(guān)協(xié)議(BGP)層226、路由互聯(lián)網(wǎng)協(xié)議(RIP)層222、開放最短路徑優(yōu)先(OSPF)協(xié)議層224、中間系統(tǒng)—中間系統(tǒng)(IS-IS)協(xié)議層214、套接字層210、應(yīng)用層212。路由協(xié)議220可維護(hù)路由表,來產(chǎn)生轉(zhuǎn)發(fā)信息表(FIB)216。FIB 216被IP層209和鏈路層216使用。上述層向網(wǎng)絡(luò)中的節(jié)點(diǎn)提供服務(wù)。
物理層202提供物理鏈路節(jié)點(diǎn)間移動數(shù)據(jù)的服務(wù)。鏈路層204提供處理物理鏈路上傳輸?shù)臄?shù)據(jù)的服務(wù)。IP層209(“IP 3層”)提供物理和鏈路層之上的路由和轉(zhuǎn)發(fā)服務(wù)。TCP 208層通過誤差檢驗(yàn)和保證所有數(shù)據(jù)到達(dá)來提供保證完全數(shù)據(jù)傳輸?shù)姆?wù)。TCP層208在IP 3層上運(yùn)行。這樣,網(wǎng)絡(luò)中的節(jié)點(diǎn)可用IP 3層服務(wù)上的TCP服務(wù)傳輸數(shù)據(jù)。
ICMP層218運(yùn)行在頂層,是IP層206的組成部分。也就是,IP 3層服務(wù)本質(zhì)上是不可靠的,數(shù)據(jù)包可能丟失。這樣,ICMP層218為IP 3層服務(wù)提供消息控制和錯誤報告。UDP層209對TCP層208提供的服務(wù)提供替代服務(wù)。特別地,UDP層運(yùn)行在IP 3層服務(wù)層之上,為傳輸數(shù)據(jù)報提供無連接傳輸服務(wù)。也就是,UDP層209不提供端到端錯誤檢測。套接字層210在應(yīng)用層212或網(wǎng)絡(luò)上運(yùn)行節(jié)點(diǎn)的路由協(xié)議間提供終端點(diǎn)雙向通信。應(yīng)用層212包括運(yùn)行在節(jié)點(diǎn)上的應(yīng)用。應(yīng)用層212可利用下層與其他節(jié)點(diǎn)上運(yùn)行的應(yīng)用通信。
路由協(xié)議220確定最優(yōu)路徑(“路由”)、轉(zhuǎn)發(fā)包和保證整個網(wǎng)絡(luò)對路由的更新一致的服務(wù)。通過分析所有路由器的路由更新,路由器可建立網(wǎng)絡(luò)的詳細(xì)視圖。在路由協(xié)議220中,多個路由協(xié)議可運(yùn)行。例如,BGP協(xié)議226、RIP協(xié)議222、OSPF協(xié)議224和IS-IS協(xié)議220都可運(yùn)行在路由協(xié)議層220。路由協(xié)議220可在IP層206提供的3層服務(wù)中利用FIB 216傳輸數(shù)據(jù)(例如,包)。
BGP協(xié)議226不是可靠的路由協(xié)議。這樣,為了消息或包的可靠傳輸,BGP 226運(yùn)行在TCP 208之上。特別地,BGP 226不重發(fā)消息或包,而倚賴TCP 208處理丟失的消息或包。RIP 222利用UDP 209進(jìn)行消息或包的傳輸。OSPF 224和IS-IS 214在各自的路由協(xié)議之間具有可靠的數(shù)據(jù)傳輸機(jī)制。OSPF 224運(yùn)行在IP層206之上,而IS-IS直接運(yùn)行在鏈路層204之上。
正如下面更詳細(xì)的解釋,運(yùn)行在冗余節(jié)點(diǎn)104上的路由協(xié)議可與冗余平臺900協(xié)同操作,以得到路由器和路由協(xié)議冗余。冗余平臺900提供實(shí)時路由協(xié)議冗余的必要支持。也就是,路由協(xié)議是動態(tài)的,其中對路由的更新根據(jù)路由協(xié)議定期或不定期發(fā)生。為具有完全的冗余,需要實(shí)時維護(hù)這些更新。
例如,運(yùn)行在冗余節(jié)點(diǎn)104的工作卡910的RIP 222、OSPF 224、BGP226和IS-IS214的路由協(xié)議會話狀態(tài)可利用冗余平臺900在備用卡950上實(shí)時維護(hù)。如果工作卡910失敗,備用卡950可繼續(xù)同一路由協(xié)議會話狀態(tài)。而且,F(xiàn)IB 216也在備用卡950之維護(hù),以便當(dāng)備用卡950接管冗余節(jié)點(diǎn)104的控制時具有最新的網(wǎng)絡(luò)視圖。
基本冗余操作圖3表示根據(jù)一個實(shí)施例冗余節(jié)點(diǎn)104的基本操作300的流程圖。以下操作300可由圖1所示的具有工作卡910和備用卡950的冗余節(jié)點(diǎn)104實(shí)現(xiàn)。為解釋目的,冗余節(jié)點(diǎn)104是可執(zhí)行IP 3層或MPLS服務(wù)的網(wǎng)絡(luò)路由器104,操作300自操作302開始。
在操作302,冗余節(jié)點(diǎn)104在備用卡950中維護(hù)工作卡910的當(dāng)前狀態(tài)。特別地,冗余節(jié)點(diǎn)104利用冗余平臺900把工作卡910中的當(dāng)前配置信息、全局信息、路由表信息、轉(zhuǎn)發(fā)表信息、協(xié)議會話信息或數(shù)據(jù)庫信息復(fù)制或拷貝到備用卡950。
在操作304,工作卡910檢測到失敗。例如,工作卡910可在冗余節(jié)點(diǎn)104檢測到硬件失敗或軟件失敗,該失敗使得冗余節(jié)點(diǎn)104從工作卡910切換到備用卡950運(yùn)行。
在操作306,備用卡950會繼續(xù)工作卡910失敗前的當(dāng)前狀態(tài)的運(yùn)行。備用卡950會繼續(xù)運(yùn)行以便不被對等節(jié)點(diǎn)102A或102B觀察到失敗。如圖4到圖7的更詳細(xì)說明,冗余節(jié)點(diǎn)104通過在備用卡950中實(shí)時維護(hù)工作卡910的路由協(xié)議會話狀態(tài),以及向備用卡950快速切換以便不丟失協(xié)議會話,來防止失敗被對等節(jié)點(diǎn)觀察到。這樣,網(wǎng)絡(luò)拓?fù)渥兓槐貜V播到整個網(wǎng)絡(luò)而減少了收斂時間。
維護(hù)協(xié)議會話和路由信息圖4A表示路由協(xié)議信息從工作卡910復(fù)制到備用卡950的圖示400。如圖9所示,冗余平臺900提供在備用卡950中實(shí)時維護(hù)路由協(xié)議信息協(xié)議的支持。參考圖4A,圖示表示與冗余節(jié)點(diǎn)104通信的對等節(jié)點(diǎn)102A。冗余節(jié)點(diǎn)104包括具有與對等節(jié)點(diǎn)102A通信的工作卡910的冗余平臺900。冗余節(jié)點(diǎn)104還包括當(dāng)工作卡910失敗時繼續(xù)運(yùn)行的備用卡950。
在一個實(shí)施例中,對等節(jié)點(diǎn)102A包括協(xié)議信息415,它包括持久數(shù)據(jù)411、會話數(shù)據(jù)412和用于產(chǎn)生FIB 432的路由表413。協(xié)議信息415必須與工作卡910中的協(xié)議信息405A一致。也就是,對等節(jié)點(diǎn)102A的持久數(shù)據(jù)411、會話數(shù)據(jù)412和路由表413必須與持久數(shù)據(jù)401A、會話數(shù)據(jù)402A和路由表403A一致,以便備用卡950可用同一信息復(fù)制來保證冗余。而且,如果路由表413和403A不一致,對等節(jié)點(diǎn)102A的FIB 432就與工作卡910中的FIB 422A不一致。這樣,對等節(jié)點(diǎn)102A會考慮冗余節(jié)點(diǎn)104具有與自己不同的網(wǎng)絡(luò)視圖,對等節(jié)點(diǎn)102A會拆除和冗余節(jié)點(diǎn)104的路由協(xié)議會話。
為了具有完全冗余,工作卡910所接收或所作的協(xié)議信息405A的變化必須復(fù)制到備用卡950的協(xié)議信息405B。特別地,工作卡910所接收或所作的持久數(shù)據(jù)401A、會話數(shù)據(jù)402A和路由表403A的變化必須復(fù)制到備用卡950的持久數(shù)據(jù)401B、會話數(shù)據(jù)402B和路由表403B。如果未維護(hù)變化,冗余則會斷掉。
協(xié)議信息可與路由協(xié)議相關(guān),如BGP、RIP、OSPF和IS-IS路由協(xié)議。持久數(shù)據(jù)可包括比實(shí)際更持久的每個路由協(xié)議的配置信息。會話狀態(tài)信息包括運(yùn)行在節(jié)點(diǎn)上的每個路由協(xié)議的路由協(xié)議狀態(tài)變化。會話狀態(tài)信息本質(zhì)上是動態(tài)的,可以定期或不定期變化。例如,對于每個路由協(xié)議,路由協(xié)議狀態(tài)變化數(shù)據(jù)可包括與節(jié)點(diǎn)間通信的規(guī)則相關(guān)的信息、從對等節(jié)點(diǎn)接收的每個路由狀態(tài)、發(fā)送到對等節(jié)點(diǎn)的每個路由狀態(tài)、超時參數(shù)、被每個對等節(jié)點(diǎn)刪除的歷史路由,等等。對于每個路由協(xié)議,路由表信息包括一個節(jié)點(diǎn)已知的路由。路由表信息用于產(chǎn)生FIB表,后者用于轉(zhuǎn)發(fā)包。
因?yàn)閭溆每?50具有運(yùn)行在工作卡910上的每個路由協(xié)議所需的持久信息,當(dāng)工作卡910發(fā)生失敗時,備用卡950利用與工作卡910一致的FIB繼續(xù)工作卡910的路由協(xié)議會話。這樣,備用卡950可利用與工作卡910相同的狀態(tài)繼續(xù)同一協(xié)議會話。在這種情況下,對等節(jié)點(diǎn)102A與備用卡950通信,相信自己仍與工作卡910通信,從而避免服務(wù)中斷。
圖4B表示根據(jù)一個實(shí)施例復(fù)制路由協(xié)議狀態(tài)變化信息的操作450的流程圖。以下操作450可由圖1所示的具有工作卡910和備用卡950的冗余節(jié)點(diǎn)104實(shí)現(xiàn)。為解釋目的,冗余節(jié)點(diǎn)104是可執(zhí)行IP 3層或MPLS服務(wù)的網(wǎng)絡(luò)路由器104,操作450自操作452開始。
在操作452,路由協(xié)議狀態(tài)變化信息由工作卡910接收或產(chǎn)生。例如,工作卡910可產(chǎn)生持久數(shù)據(jù)401A、會話數(shù)據(jù)402A和路由表403A的變化??商娲?,工作卡910可從對等節(jié)點(diǎn)102A接收持久數(shù)據(jù)401A、會話數(shù)據(jù)402A和路由表403A的變化。
在操作454,工作卡910中所接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化復(fù)制到備用卡950。例如,圖9所示的冗余平臺900對工作卡910中的持久數(shù)據(jù)401A、會話數(shù)據(jù)402A和路由表403A復(fù)制到備用卡950中的持久數(shù)據(jù)401B、會話數(shù)據(jù)402B和路由表403B提供支持。這樣的復(fù)制操作實(shí)時進(jìn)行。這樣,如果工作卡950失敗,工作卡950利用工作卡910中的同一信息繼續(xù)運(yùn)行。
快速切換/失敗欺騙圖5至圖7表示具有冗余平臺900的節(jié)點(diǎn)如何防止對等節(jié)點(diǎn)觀察到失敗和切換。通過在備用控制器系統(tǒng)(備用卡950)中維護(hù)與網(wǎng)絡(luò)其它部分一致的持久數(shù)據(jù)、會話數(shù)據(jù)和路由表數(shù)據(jù),可發(fā)生無縫的、平滑和快速的切換。切換很快(例如,在幾毫秒內(nèi)),對等節(jié)點(diǎn)觀察不到冗余節(jié)點(diǎn)104執(zhí)行切換有任何滯后。
圖5表示根據(jù)一個實(shí)施例快速切換到備用控制器系統(tǒng)的繼續(xù)運(yùn)行的圖3的詳細(xì)運(yùn)行流程圖。為說明目的,操作306從操作502開始。
參考圖5,在操作502,冗余節(jié)點(diǎn)104從工作卡910切換到備用卡950。切換可在幾毫秒內(nèi)進(jìn)行。進(jìn)行切換的時間(也就是“毛刺”)很少,對等節(jié)點(diǎn)102A觀察不到發(fā)生了切換。在操作504,備用卡350與對等節(jié)點(diǎn)102A繼續(xù)運(yùn)行,而沒有中斷協(xié)議會話。也就是,毛刺很小,以至于對等節(jié)點(diǎn)102A只知道冗余節(jié)點(diǎn)104有一個毛刺。
下面是說明快速切換的詳細(xì)描述。因?yàn)镮P本身是不可靠的,包可能丟失。如果工作卡910從對等節(jié)點(diǎn)102A接收到包并發(fā)生失敗,以至于工作卡910不能應(yīng)答確認(rèn)包的接收,對等節(jié)點(diǎn)102A可能重發(fā)包。在這種情況下,即使有切換,備用卡950可能仍會從對等節(jié)點(diǎn)102A接收到重發(fā)的包。這樣,對等節(jié)點(diǎn)102A會觀察到常見事件(即,重發(fā)包和接收重發(fā)包的應(yīng)答確認(rèn)),即使一個包被丟棄也不會相信在冗余節(jié)點(diǎn)104中發(fā)生了失敗或切換。
因?yàn)榍袚Q進(jìn)行得很快,備用卡950可繼續(xù)冗余節(jié)點(diǎn)104的運(yùn)行而不拆除路由協(xié)議會話。例如,每個路由協(xié)議包括超時時間,其中如果一定數(shù)目的包在一定時間內(nèi)未被應(yīng)答確認(rèn),它會拆除會話。結(jié)果,即使一些包在切換中丟失,對具有冗余平臺900的冗余節(jié)點(diǎn)104來說毛刺很短。也就是,備用卡950可繼續(xù)工作卡910的運(yùn)行,而不拆除會話或使冗余節(jié)點(diǎn)104服務(wù)失敗。
圖6A為表示根據(jù)一個實(shí)施例欺騙對等節(jié)點(diǎn)防止觀察到失敗并切換的圖示600。因?yàn)槁酚蓞f(xié)議的實(shí)時特征,從冗余節(jié)點(diǎn)104到對等節(jié)點(diǎn)102A要求被工作卡910提交的事物也要被備用卡950提交。例如,如果工作卡910提交了路由更新,該路由更新也必須被備用卡950提交。如果由工作卡910提交的事務(wù)沒有被備用卡950提交且發(fā)生了切換,對等節(jié)點(diǎn)103A會拆除與冗余節(jié)點(diǎn)104的會話,因?yàn)閭溆每?50沒有與對等節(jié)點(diǎn)102A一致的網(wǎng)絡(luò)視圖。具體地,備用卡950不提交該更新。
因此,為防止對等節(jié)點(diǎn)102A拆除與冗余節(jié)點(diǎn)104的會話,到備用卡950的切換必須很快進(jìn)行且工作卡910所提交的事務(wù)必須被備用卡950提交。具有冗余平臺900的冗余節(jié)點(diǎn)104可進(jìn)行快速切換并在備用卡950中提交事務(wù),以防止對等節(jié)點(diǎn)102A拆除協(xié)議會話。
參考圖6,圖示表示工作卡910從對等節(jié)點(diǎn)接收到消息(消息A)。例如,消息可以通知冗余節(jié)點(diǎn)104節(jié)點(diǎn)102B失敗,到102B的路由必須相應(yīng)更新。節(jié)點(diǎn)102A需要得到確認(rèn)節(jié)點(diǎn)104已接收到更新并在進(jìn)行必要的變化(即提交消息)。如果節(jié)點(diǎn)104不提交消息,冗余節(jié)點(diǎn)104會有與對等節(jié)點(diǎn)102A不一致的網(wǎng)絡(luò)視圖。這樣,如果對等節(jié)點(diǎn)102A相信冗余節(jié)點(diǎn)104具有不一致的網(wǎng)絡(luò)視圖,冗余節(jié)點(diǎn)102A會拆除與冗余節(jié)點(diǎn)104的會話,導(dǎo)致服務(wù)中斷。
現(xiàn)在,如果工作卡910正在處理消息并在失敗點(diǎn)1或2失敗(冗余節(jié)點(diǎn)104在這些點(diǎn)不提交消息),并且發(fā)生向備用卡950的切換,對等節(jié)點(diǎn)102A不拆除與節(jié)點(diǎn)104的會話,因?yàn)樗梢灾匕l(fā)消息(直到一定次數(shù)的嘗試),備用卡950可接收到重發(fā)的消息并通過提交路由更新相應(yīng)地響應(yīng)對等節(jié)點(diǎn)102A失敗。只要切換足夠快,備用卡950在達(dá)到最大嘗試次數(shù)前繼續(xù)運(yùn)行,備用卡950就可繼續(xù)冗余節(jié)點(diǎn)104的運(yùn)行,其中失敗和切換不被對等節(jié)點(diǎn)102A觀察到。
然而,如果失敗發(fā)生在工作卡910的提交點(diǎn),備用卡950也必須提交消息。也就是,如果工作卡910提交了消息而備用卡950沒有提交消息,冗余中斷,工作卡910和備用卡950中具有導(dǎo)致服務(wù)失敗的不一致消息。例如,提交的事務(wù)與路由更新有關(guān)且備用卡950沒有提交更新,它就有與對等節(jié)點(diǎn)102A不一致的網(wǎng)絡(luò)視圖。這樣,備用卡950必須提交工作卡910提交的消息。
在圖6A的例子中,為保證由工作卡910提交的消息被備用卡950提交,如果備用卡950沒有提交消息,工作卡910不會提交消息。如圖6A所示,在接收MSG A后,工作卡910向備用卡950發(fā)送消息MSG A。備用卡950向工作卡910發(fā)送MSG A的應(yīng)答確認(rèn)(例如“接收到MSG A并提交MSG A”)。在工作卡910從備用卡950接收到應(yīng)答確認(rèn)后,工作卡910會提交消息,并向遠(yuǎn)程對等節(jié)點(diǎn)發(fā)送提交確認(rèn)(“應(yīng)答確認(rèn)MSG A已提交”)。之后工作卡910通過上層發(fā)送MSG A。
圖6B表示根據(jù)另一個實(shí)施例欺騙對等節(jié)點(diǎn)觀察不到失敗和切換的圖示650。在圖6B的例子中,工作卡910可以直接向上層發(fā)送MSG A,但在接收到備用卡950已提交MSG A的應(yīng)答確認(rèn)之前,不會提交MSG A。在該點(diǎn),工作卡910向遠(yuǎn)程對等節(jié)點(diǎn)發(fā)送“提交確認(rèn)”。如圖6B所示,其中的MSG A會比圖6A中的MSG A更快地傳遞到工作卡910的上層。
冗余平臺900利用與工作卡910中提交事務(wù)相關(guān)的信息對更新備用卡950提供支持。如下所述,提交的消息或事務(wù)可以要求小更新或大更新。對于單個事務(wù),備用卡950要求小或“δ”更新。為重現(xiàn)事務(wù)歷史,備用卡950要求大或“批量”更新。這樣,工作卡910提交的所有事務(wù)可在備用卡950中維護(hù)。
圖7表示根據(jù)一個實(shí)施例向?qū)Φ裙?jié)點(diǎn)發(fā)送提交的操作700的流程圖。參考圖7,在操作702,從對等節(jié)點(diǎn)接收到消息。例如,工作卡910可從對等節(jié)點(diǎn)102A接收到路由狀態(tài)變化需要進(jìn)行更新的消息。
在操作704,與消息有關(guān)的信息被發(fā)送到備用卡950。在操作706,備用卡950處理消息并通過改變路由狀態(tài)提交消息。通過提交消息,備用卡950向工作卡910發(fā)送應(yīng)答確認(rèn)。這樣工作卡910從備用卡950接收到應(yīng)答確認(rèn)。
在操作708,在從備用卡950接收到應(yīng)答確認(rèn)后,工作卡910提交消息。在該點(diǎn),備用卡910也會改變路由狀態(tài)。
在操作710,在提交了消息后,工作卡910會發(fā)送“提交”到對等節(jié)點(diǎn),通知對等節(jié)點(diǎn)已更新路由,這樣不只在工作卡910中還在備用卡950中維護(hù)一致的網(wǎng)絡(luò)視圖。
路由器冗余路由器冗余硬件圖8表示根據(jù)一個實(shí)施例具有工作控制器系統(tǒng)和冗余備份控制器系統(tǒng)的網(wǎng)絡(luò)設(shè)備104。參考圖8,網(wǎng)絡(luò)設(shè)備104包括多個端口814。端口814可以支持具有不同數(shù)據(jù)傳輸速率的電信號或光信號。放大圖810表示網(wǎng)絡(luò)設(shè)備104的基本內(nèi)部組件,包括線卡812A、工作卡910、備用卡950、線卡812和使卡相互耦合的底板814。也包括其它類型的元件,如系統(tǒng)控制器卡。在一個實(shí)施例中,網(wǎng)絡(luò)設(shè)備104是提供IP 3層服務(wù)的網(wǎng)絡(luò)路由器。在其它實(shí)施例中,網(wǎng)絡(luò)設(shè)備104可提供上層級別的服務(wù)直至應(yīng)用層服務(wù)。網(wǎng)絡(luò)設(shè)備104也提供多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
對冗余的路由器104,工作卡910和備用卡950具有相同的硬件和軟件元件或模塊。工作卡910和備用卡950可包括高速網(wǎng)絡(luò)處理器、控制諸如靜態(tài)隨機(jī)存取存儲(SRAM)設(shè)備、動態(tài)隨機(jī)存取存儲(DRAM)設(shè)備或其它存儲設(shè)備的標(biāo)準(zhǔn)存儲控制器。這些存儲設(shè)備可用于存儲協(xié)議消息、全局消息或關(guān)于卡的配置消息。內(nèi)存設(shè)備也存儲指令、軟件模塊和控制卡的操作系統(tǒng)。
在一個實(shí)施例中,底板814是無源的,允許線卡812A、工作卡910、備用卡950和線卡812B間的通信。在其它實(shí)施例中,底板814可支持>2的線卡冗余,以便工作卡910和備用卡950可控制一個以上的線卡。工作卡910包括檢測工作卡910或線卡812A失敗以及向備用卡950傳輸操作的硬件和/或軟件。備用卡950也包括當(dāng)失敗時繼續(xù)工作卡910操作的硬件和/或軟件。
如更詳細(xì)的關(guān)于冗余平臺900的說明,工作卡910和備用卡950包括備用卡950中維護(hù)一致信息的數(shù)據(jù)轉(zhuǎn)發(fā)和檢索子系統(tǒng)。工作卡910可通過底板814在通信鏈路上與備用卡950通信。例如,通信鏈路可以是外設(shè)控制接口(PCI)鏈路或以太網(wǎng)鏈路。
路由器104可提供下述類型的硬件或路由器冗余(a)卡組冗余;(b)系統(tǒng)卡冗余;(c)端口冗余;或(d)線卡冗余??ńM冗余是指備用卡950和線卡812B作為工作卡910和線卡812A的冗余組。在一個實(shí)施例中,線卡812A和工作卡910可插入路由器104的插槽0和1,備用卡950和線卡812B可插入插槽2和3。這樣,線卡812A或工作卡910的失敗可導(dǎo)致到線卡812B和備用卡950的切換。
系統(tǒng)卡冗余是指備用卡950作為工作卡950的冗余系統(tǒng)卡。在一個實(shí)施例中,系統(tǒng)卡冗余是路由器104的缺省配置,獨(dú)立于端口冗余,在有或無端口冗余的情況下都能工作。端口冗余是指具有冗余端口814。例如,“Y”類電纜冗余可實(shí)現(xiàn)端口814冗余。在一個實(shí)施例中,端口冗余只用于單個的線卡。線卡冗余是指工作線卡具有冗余線卡。例如,線卡812A可以有冗余線卡,線卡812B也可以有冗余線卡。
卡狀態(tài)工作卡910和備用卡950必須知道兩個重要狀態(tài)“工作狀態(tài)”和“備用狀態(tài)”。根據(jù)卡的運(yùn)行狀態(tài),每個卡會執(zhí)行不同類型的操作。例如,運(yùn)行在工作狀態(tài)的卡會向運(yùn)行在備用狀態(tài)的卡更新配置、狀態(tài)和獲知的信息。運(yùn)行在備用狀態(tài)的卡會從工作卡接收信息,并相應(yīng)地更新其存儲子系統(tǒng)。如同下面更詳細(xì)的描述,對備用卡950有兩種更新大(“批量”)更新或小或增量(“δ”)更新。
如果所有的診斷和自測都能從對等節(jié)點(diǎn)接收數(shù)據(jù)流或向?qū)Φ裙?jié)點(diǎn)發(fā)送數(shù)據(jù)流且具有支配權(quán),工作卡910被認(rèn)為處于“工作狀態(tài)”。這樣可以為管理和預(yù)防目的訪問工作卡。在一個實(shí)施例中,卡是否工作由全局標(biāo)志來確定。而且,用戶可根據(jù)路由器104上的發(fā)光二極管(LED)指示器(如綠指示器)確定哪個卡是工作的。如果通過了所有的診斷和自測,能夠變成工作卡而不具有支配權(quán),備用卡950被認(rèn)為處于“備用狀態(tài)”。在一個實(shí)施例中,為管理目的可訪問備用卡,但不用于預(yù)防目的。在一個實(shí)施例中,確定卡是否處于備用也由全局標(biāo)志來進(jìn)行,用戶可根據(jù)路由器104上的LED指示器(如黃指示器)確定哪個卡是備用的。
如果工作卡910或備用卡950不能運(yùn)行,卡進(jìn)入“失敗”狀態(tài)。失敗狀態(tài)也可由LED指示器(如紅指示器)確定。如果工作狀態(tài)的配置在冗余卡中被鏡像,卡被定義為“冗余的”。為維護(hù)冗余,工作卡和備用卡之間的通信一直存在。特別是,當(dāng)工作卡910失敗時,冗余卡950應(yīng)能成為工作的。
冗余平臺基本要求圖9表示節(jié)點(diǎn)104的冗余平臺900的一個實(shí)施例。為使節(jié)點(diǎn)104防止對等節(jié)點(diǎn)觀察到節(jié)點(diǎn)的失敗,要求冗余平臺900(a)維護(hù)節(jié)點(diǎn)104與對等節(jié)點(diǎn)的連接(即,與對等節(jié)點(diǎn)102A和102B的會話)不丟失;(b)在工作卡910和備用卡950中維護(hù)一致的信息。這樣,如果備用卡950繼續(xù)失敗的工作卡910的運(yùn)行,備用卡950象工作卡一樣運(yùn)行。
典型體系參考圖9,冗余平臺900表示硬件和軟件元件或模塊相結(jié)合的典型平臺體系。冗余平臺包括工作卡910和具有冗余存儲子系統(tǒng)或軟件模塊的備用卡950。例如,存儲子系統(tǒng)包括存儲數(shù)據(jù)結(jié)構(gòu)和非持久數(shù)據(jù)的隨機(jī)存取存儲器(RAM)和存儲持久數(shù)據(jù)的閃存(flash disk)。而且,軟件模塊包括軟件冗余管理器、應(yīng)用任務(wù)、冗余控制管理器和數(shù)據(jù)存儲。
工作卡910包括與應(yīng)用任務(wù)916通信的軟件冗余管理器(SRM)918。應(yīng)用任務(wù)916可發(fā)送RAM數(shù)據(jù)結(jié)構(gòu)912和非持久數(shù)據(jù)的信息變化。非持久數(shù)據(jù)914存儲諸如路由信息和狀態(tài)的更新后變化的信息。應(yīng)用任務(wù)916可向數(shù)據(jù)存儲922發(fā)送更新,數(shù)據(jù)存儲922中RAM數(shù)據(jù)結(jié)構(gòu)912和非持久數(shù)據(jù)的變化可永久地冗余地存儲在閃存924中。冗余控制管理器(RCM)920可與應(yīng)用任務(wù)920和數(shù)據(jù)存儲922通信。RCM 920向備用卡950中對等的RCM 960發(fā)送更新信息。備用卡950包括對等應(yīng)用任務(wù)956,用于鏡像應(yīng)用任務(wù)916的操作。對等應(yīng)用任務(wù)956與SRM 958通信并發(fā)送工作卡910中的RAM數(shù)據(jù)結(jié)構(gòu)952和非持久數(shù)據(jù)954的變化。RCM 960也發(fā)送數(shù)據(jù)存儲962的變化來更新閃存964,以維護(hù)與閃存924的一致。
RAM數(shù)據(jù)結(jié)構(gòu)912可存儲工作卡910和對等節(jié)點(diǎn)的路由協(xié)議會話的狀態(tài)。備用卡950中RAM數(shù)據(jù)結(jié)構(gòu)952維護(hù)與工作卡910中RAM數(shù)據(jù)結(jié)構(gòu)912相一致的信息。非持久數(shù)據(jù)914表示存儲在RAM中的信息。特別是,非持久數(shù)據(jù)可以是暫時存儲在緩沖器中的包。FIB信息可包括非持久數(shù)據(jù),它可以定期或不定期更新。持久數(shù)據(jù)是利用數(shù)據(jù)存儲永久存儲在閃存中的數(shù)據(jù)。例如,持久數(shù)據(jù)可以是不經(jīng)常變化的路由協(xié)議配置數(shù)據(jù)。
工作卡910中的SRM 918負(fù)責(zé)檢測軟件失敗,把失敗通知其對等SRM 958,并切換到備用卡950運(yùn)行。特別地,工作卡910中的SRM 916確定工作卡910是降級還是失敗。如果SRM 916檢測到工作卡910的降級或失敗,SRM 916促使向備用卡950切換并與備用卡950上的其它任務(wù)協(xié)作。
為使節(jié)點(diǎn)104正常運(yùn)行,其它模塊必須處于“就緒”狀態(tài)。特別地,RCM 960、對等應(yīng)用任務(wù)956和數(shù)據(jù)存儲962必須處于“就緒”狀態(tài)。就緒狀態(tài)是可發(fā)生無縫切換的狀態(tài)。這是工作卡910中的RAM數(shù)據(jù)結(jié)構(gòu)912、持久數(shù)據(jù)914、閃存924與備用卡950中的RAM數(shù)據(jù)結(jié)構(gòu)952、持久數(shù)據(jù)954、閃存964一致的時候。
工作卡910的RCM 920與備用卡950中的RCM 960進(jìn)行通信,以在每一時刻用備用卡950“鏡像”工作卡912中的信息,并使工作卡910中的過程與備用卡950同步。RCM 920負(fù)責(zé)數(shù)據(jù)選擇移動到備用卡950。特別地,RCM 920負(fù)責(zé)稱為“δ”更新的小的單個事務(wù)的更新,和稱為“批量”更新的大的事務(wù)更新。
卡間通信物理層支持工作卡910和備用卡950之間的卡間通信。例如,以太網(wǎng)鏈路可用于支持工作卡910和備用卡950之間的卡間通信。工作卡910的RCM 920利用這樣一條鏈路與備用卡950的RCM 960進(jìn)行通信。
RCM 920和960是運(yùn)行于卡間通信之上的軟件模塊。冗余控制管理器(RCM)確定各個卡的角色和支配權(quán)。RCM也可用硬件邏輯通信來確定角色和支配權(quán)。RCM支持更新備用卡950與工作卡910的信息一致的傳輸。例如,RCM在工作卡910和備用卡950間控制大的“批量”更新和小的增量“δ”更新。批量更新通常在插入一個新的冗余卡時進(jìn)行。δ更新被認(rèn)為是備用更新,在工作卡910中發(fā)生單個變化時進(jìn)行。在一個實(shí)施例中,備用卡950的RCM 960在后臺操作幾個事務(wù),以提高更新過程的效率。
下層平臺900支持卡間通信,所以會發(fā)生工作卡910和備用卡950間信息的復(fù)制,即批量更新和δ更新??ㄩg通信可使工作卡910和備用卡950間消息的應(yīng)答確認(rèn)和維護(hù)工作卡910和備用卡950間信息的一致變的容易。
支配權(quán)當(dāng)有冗余系統(tǒng)(即節(jié)點(diǎn)或路由器104插入的備用卡)時出現(xiàn)支配權(quán)的確定。在單個的卡配置中,如只有工作卡910,工作卡910自動獲得路由器104的支配權(quán)。在一個實(shí)施例中,工作卡910自動確定路由器104中是否有備用卡950。如果沒有冗余卡,工作卡910享有支配權(quán)。然而,如果工作卡910確定有冗余卡,就進(jìn)行決定工作卡910和備用卡950的支配權(quán)的確定。可用軟件和/或硬件確定。例如,工作卡910和備用卡950中都有仲裁邏輯或支配權(quán)邏輯,用任一種技術(shù)確定支配權(quán)。例如,仲裁邏輯可根據(jù)卡的插槽ID確定支配權(quán)。例如,插入插槽1的卡可確定為“工作卡”,插入插槽2的卡可確定為“備用卡”??商娲?,仲裁邏輯可檢查卡上的ID號,看它是否與路由器的ID號匹配。如果匹配,卡變成“工作卡”。很明顯,可用各種技術(shù)確定支配權(quán)。
啟動順序在單個的控制器卡配置中,支配權(quán)屬于控制器卡。然而,在冗余系統(tǒng)中,啟動時進(jìn)行哪個卡是“工作”的確定。圖10A表示根據(jù)一個實(shí)施例的啟動順序的操作1000的流程圖。
參考圖10A,在操作1002,確定冗余系統(tǒng)中哪個卡是作為工作的還是備用的。在一個實(shí)施例中,如果其中一個卡在啟動順序前是工作的,它被賦予支配權(quán)變成工作的。在另一個實(shí)施例中,利用插槽ID確定哪個卡是作為工作的還是備用的。
在操作1004,確定是工作的卡要求支配權(quán)。同樣的過程可在另一卡中發(fā)生,即兩個卡同時運(yùn)行,每個卡運(yùn)行一個過程來獲得支配權(quán)。在兩個卡變成工作的之前且都就緒成為工作卡的情況下,可用任意數(shù)目的支配權(quán)或電子算法或技術(shù)來爭奪。
在操作1004,仲裁邏輯將支配權(quán)賦給卡910和950中的一個。為說明目的,工作卡910的仲裁邏輯將支配權(quán)賦給工作卡910,備用卡950的仲裁邏輯將支配權(quán)賦給備用卡950。
假定工作卡910執(zhí)行工作操作,備用卡950執(zhí)行備用操作。備用卡950需要更新以鏡像啟動順序過程中的工作卡910。也就是,工作卡910啟動,SRM 918讀取在工作狀態(tài)啟動運(yùn)行的工作卡910中的配置和狀態(tài)信息。備用卡950的SRM958也讀取配置和狀態(tài)信息,并運(yùn)行于備用狀態(tài),通知SRM 918已就緒,處于備用狀態(tài)。圖10B表示根據(jù)另一個實(shí)施例的啟動順序的操作1010的流程圖。
參考圖10B,在操作1012,工作卡910將RAM數(shù)據(jù)結(jié)構(gòu)912、閃存924和非持久數(shù)據(jù)914上存儲的所有內(nèi)容用應(yīng)用任務(wù)916、SRM 918和RCM 920批量拷貝到備用卡950的對等元件中。例如,運(yùn)行在工作卡910的路由協(xié)議應(yīng)用開始將RAM數(shù)據(jù)結(jié)構(gòu)912的所有持久信息拷貝到備用卡950的對等元件952。在一個實(shí)施例中,只拷貝必要的數(shù)據(jù),如狀態(tài)數(shù)據(jù)、連接數(shù)據(jù)、私有路由數(shù)據(jù)庫等。而且,如計(jì)數(shù)器信息的非必要數(shù)據(jù)不必拷貝。
在操作1014,工作卡910對來自對等節(jié)點(diǎn)的新路由信息產(chǎn)生的任何新信息和數(shù)據(jù)進(jìn)行增量拷貝。新信息必須拷貝到備用卡950上,而不管批量拷貝操作是否完成。在一個實(shí)施例中,可用標(biāo)記和掃描技術(shù)確定哪些信息是新產(chǎn)生的。在另一個實(shí)施例中,不允許并發(fā)的增量和批量拷貝。這樣,冗余平臺900可包括批量拷貝操作后進(jìn)行增量更新的任何隊(duì)列。為保證有效一致的路由協(xié)議信息,在閃存924發(fā)生任何變化前,數(shù)據(jù)存儲922將閃存924冗余拷貝到備用卡950中的數(shù)據(jù)存儲962和閃存964。
在操作1016,工作卡910和備用卡950都實(shí)現(xiàn)一致性驗(yàn)證。例如,每個路由器協(xié)議需要實(shí)現(xiàn)一致的信息從工作卡910拷貝或復(fù)制到備用卡950的驗(yàn)證。一旦驗(yàn)證了一致性,路由協(xié)議可在備用卡950中聲明自己是冗余的,如果路由協(xié)議聲明自己是冗余的,路由器104就被聲明是冗余的。
無縫切換(graceful switchover)無縫切換是指由用戶或軟件發(fā)出的控制方式下的切換。例如,用戶可在命令行發(fā)出從節(jié)點(diǎn)104的工作卡910切換到備用卡950運(yùn)行的命令。在無縫切換中,SRM 918知道支配權(quán)切換到備用卡950。因此,SRM 918以更可控的方式準(zhǔn)備切換,工作卡910可平滑放棄路由器104的控制給備用卡950。SRM 918維護(hù)工作卡910處于“工作狀態(tài)”運(yùn)行所需的所有關(guān)鍵功能的位圖。為無縫和快速切換,任務(wù)通過應(yīng)用任務(wù)916向備用卡950中的SRM 918發(fā)送其狀態(tài)。
圖11A和11B表示根據(jù)一個實(shí)施例工作卡910無縫切換到備用卡950的操作1100的流程圖。在下面的運(yùn)行中,工作卡910的SRM 918和RCM920可用于促進(jìn)快速平滑切換。
參考圖11A和11B,在操作1102,通過校驗(yàn)備用卡950是否插入路由器104或校驗(yàn)備用卡950是否在線,工作卡910驗(yàn)證切換沒有被阻塞。為更新目的或其它原因,備用卡950可置于“離線”模式,實(shí)際上消除了冗余功能。卡間通信機(jī)制可用于驗(yàn)證備用卡950是在線還是離線。例如,SRM 918可請求備用卡950的狀態(tài)。狀態(tài)可與卡狀態(tài)、卡類型、硬件、軟件與數(shù)據(jù)庫校驗(yàn)和相關(guān)。這樣,如果返回狀態(tài)是“離線”,工作卡910會拒絕切換。
在操作1104,工作卡910驗(yàn)證備用卡950是否沒有離線。
在操作1106,SRM 918通知路由器104的控制臺或應(yīng)用層切換正在進(jìn)行。
在操作1108,工作卡910阻塞到閃存924的所有新更新。例如,SRM918和數(shù)據(jù)存儲922可阻塞所有到RAM數(shù)據(jù)結(jié)構(gòu)912、非持久數(shù)據(jù)914和閃存924的更新。在一個實(shí)施例中,SRM 918會向應(yīng)用任務(wù)916發(fā)送禁止閃存924中所有任務(wù)進(jìn)行更新如路由表的變化的消息。阻塞也阻塞所有到備用卡950的切換必須的新更新。在另一個實(shí)施例中,應(yīng)用任務(wù)916可確定對切換不致命的RAM數(shù)據(jù)結(jié)構(gòu)912、非持久數(shù)據(jù)914和閃存924的某種數(shù)據(jù)變化是否應(yīng)被阻塞。
在操作1110,為完成數(shù)據(jù)更新,SRM 918和RCM 920將工作卡910中的RAM數(shù)據(jù)結(jié)構(gòu)912、持久數(shù)據(jù)914和閃存924的信息復(fù)制到備用卡950的對等元件。
在操作1112,SRM 918驗(yàn)證備用卡950的配置信息是否與工作卡910相同。例如,SRM 958可與工作卡910交換備用卡950的數(shù)據(jù)庫信息的校驗(yàn)和。在一個實(shí)施例中,如果校驗(yàn)和不匹配,SRM 958將重新復(fù)制工作卡918的數(shù)據(jù)庫,然后再進(jìn)行驗(yàn)證過程。如果第二次校驗(yàn)和仍不匹配,則不發(fā)生切換。
在操作1114,在完成復(fù)制后SRM 918通知備用卡950準(zhǔn)備變成工作的。工作卡910通知備用卡950準(zhǔn)備變成“工作”的。在一個實(shí)施例中,工作卡910向備用卡950發(fā)送消息以準(zhǔn)備變成工作的。這樣工作卡910可以等待應(yīng)答確認(rèn)(即“就緒”或“未就緒”)。如果備用卡950響應(yīng)“未就緒”,切換放棄。
在操作1116,SRM 918有選擇地通知應(yīng)用任務(wù)916某種運(yùn)行的任務(wù)要變成備用。例如,SRM 918會發(fā)送消息選擇任務(wù)組,對此消息的應(yīng)答確認(rèn)是必須的。該消息通知任務(wù)工作卡910正被帶入備用狀態(tài)。
在操作1118,工作卡910放棄路由器104的支配權(quán)。例如,SRM 918會呼叫I/O驅(qū)動器不聲明“主動”狀態(tài),放棄支配權(quán)。之后工作卡910的硬件向備用卡950給出立即控制或支配權(quán)。這樣,該動作將所有到路由器104的數(shù)據(jù)轉(zhuǎn)發(fā)到備用卡950。
在操作1120,SRM 918通知應(yīng)用任務(wù)916其余任務(wù)進(jìn)入備用。也就是,一些任務(wù)的功能隨卡狀態(tài)變化而變化。這樣的變化可擴(kuò)散到所有任務(wù)。
在操作1122,SRM 918查詢?nèi)蝿?wù)狀態(tài),等待任務(wù)變成備用。該操作主要是工作狀態(tài)的任務(wù)要求的,可執(zhí)行只有工作卡910能作的任務(wù),如響應(yīng)管理站或在上行線/訪問端口傳輸數(shù)據(jù),響應(yīng)線警報等。通過這種查詢/握手程序,保證所有的關(guān)鍵任務(wù)進(jìn)入備用。
在操作1124,工作卡910與工作(備用卡950)建立通信,以同步持久和非持久信息數(shù)據(jù)庫。一旦數(shù)據(jù)庫同步,工作卡910的狀態(tài)進(jìn)入備用狀態(tài)就緒。
在操作1126,SRM 918消除對應(yīng)用任務(wù)916和數(shù)據(jù)存儲922的阻塞。
在操作1128,工作卡910設(shè)置為備用狀態(tài)。
上述操作涉及工作卡910的事件。下面分別描述關(guān)于圖12A和12B的備用卡950的事件。
圖12A和12B表示根據(jù)一個實(shí)施例備用卡950無縫切換的操作1200的流程圖。在下面的運(yùn)行中,備用卡950中的SRM 958和RCM 960可用于促進(jìn)快速平滑的切換。參考圖12A和12B,在操作1202,SRM 958通過SRM 918向工作卡910提供卡狀態(tài)信息和自測信息。
在操作1204,RCM 960從工作卡910更新備用卡950中的對等數(shù)據(jù)庫。
在操作1206,SRM 958通過SRM 918向工作卡910提供數(shù)據(jù)庫校驗(yàn)和。
在操作1208,SRM 958通知對等應(yīng)用任務(wù)956某些任務(wù)變成工作就緒狀態(tài)。
在操作1210,備用卡950在工作卡910放棄支配權(quán)時刻獲得路由器104的支配權(quán)。
在操作1212,SRM 958通知對等應(yīng)用任務(wù)956其余任務(wù)為工作狀態(tài)。SRM 958也更新備用卡950中的狀態(tài)信息即它具有支配權(quán)。
在操作1214,對等應(yīng)用任務(wù)956查詢?nèi)蝿?wù)狀態(tài)等待他們處于工作狀態(tài)。在一個實(shí)施中,如有必要,一些任務(wù)會重啟。
在操作1216中,SRM 918阻塞向備用卡950的RAM數(shù)據(jù)結(jié)構(gòu)952、非持久數(shù)據(jù)和閃存956的新的網(wǎng)絡(luò)更新。
在操作1218中,備用卡910變?yōu)楣ぷ鳡顟B(tài)。
在操作1220中,SRM 958通知運(yùn)行在備用卡950上的控制臺或應(yīng)用層切換。
在操作1222中,SRM 958等待其它卡(備用卡950)處于備用狀態(tài)。
在操作1224中,SRM 958和/或RCM 960驗(yàn)證備用卡950中的數(shù)據(jù)庫中的數(shù)據(jù)與工作卡910的數(shù)據(jù)庫一致。
在操作1226中,SRM 958消除備用卡950的數(shù)據(jù)庫阻塞預(yù)防。
非無縫切換非無縫切換是指沒有警告的由工作卡910中的失敗啟動的切換。例如,工作卡910可因如下解釋更詳細(xì)的硬件和軟件原因失敗。非無縫切換與無縫切換非常類似,只是切換沒有準(zhǔn)備。也就是,對冗余系統(tǒng)切換可隨時發(fā)生,數(shù)據(jù)庫更新可能被懸掛或者,例如數(shù)據(jù)庫處于路由表或FIB更新中。而且,可能丟失一些信息。在一個實(shí)施例中,為恢復(fù)丟失的信息,可實(shí)施恢復(fù)機(jī)制。
圖13表示根據(jù)一個實(shí)施例的備用卡950進(jìn)行非無縫切換的操作1300的流程圖。下述操作1300涉及備用卡950。在一個實(shí)施例中,為進(jìn)行非無縫切換,工作卡910進(jìn)行圖11所示的操作1100。
參考圖13,在操作1302,SRM 958確定其它卡(工作卡910)不擁有路由器104的支配權(quán)。
在操作1304,SRM 958通知對等應(yīng)用任務(wù)956所有任務(wù)要進(jìn)入“工作”,備用卡910被更新為“工作”。
在操作1306,SRM 958查詢?nèi)蝿?wù)狀態(tài)等待它們變?yōu)椤肮ぷ鳌薄?br> 在操作1308,工作卡910變?yōu)椤安还ぷ鳌被颉皞溆谩薄?br> 在操作1310,備用卡950通知控制臺或應(yīng)用層備用卡950擁有路由器104的支配權(quán)并發(fā)生切換。
備用卡冗余同步工作卡910和備用卡950冗余工作有兩個需要同步的主要元件。第一個,存儲在閃存924中的“持久信息”必須同步。持久信息包括,例如,配置信息和與更新相關(guān)的文件、日志、統(tǒng)計(jì)等。第二個,存儲在RAM(如RAM數(shù)據(jù)結(jié)構(gòu)912和非持久數(shù)據(jù)914)中的“非持久信息”必須同步。非持久信息包括,例如,路由表、會話連接等。運(yùn)行在路由器104的每個任務(wù)都有冗余設(shè)計(jì)部分。也就是,每個任務(wù)集中在“持久信息復(fù)制”和“非持久信息復(fù)制”。工作卡910和備用卡950中的數(shù)據(jù)庫軟件模塊輔助持久和非持久復(fù)制或更新。
持久更新圖14表示根據(jù)一個實(shí)施例的向備用卡950更新一致信息的操作1400的流程圖。操作1400涉及調(diào)用工作卡910的數(shù)據(jù)存儲922在閃存924上存儲配置信息的任何任務(wù)。為在閃存964上拷貝相同的信息,數(shù)據(jù)存儲922在更新了本地閃存924后向備用卡950中的對等數(shù)據(jù)存儲962發(fā)送消息。而且,數(shù)據(jù)存儲962的消息可發(fā)送到對等應(yīng)用任務(wù)956,用新配置消息更新RAM數(shù)據(jù)結(jié)構(gòu)952和非持久數(shù)據(jù)954。在一個實(shí)施例中,對所有事務(wù)都有肯定或否定的應(yīng)答確認(rèn)。
參考圖14,在操作1402,應(yīng)用任務(wù)916向數(shù)據(jù)存儲922發(fā)送消息,以保存閃存924中的配置信息。例如,消息可包括更新的記錄標(biāo)識??商娲?,對一個事務(wù)可有多個記錄更新。
在操作1404,數(shù)據(jù)存儲924用配置信息更新閃存924。在更新了本地閃存924后,數(shù)據(jù)存儲924向應(yīng)用任務(wù)916發(fā)送閃存924已更新的應(yīng)答確認(rèn)。然后數(shù)據(jù)存儲924通過RCM 920和960向備用卡950中的對等數(shù)據(jù)存儲962發(fā)送同一消息。
在操作1406,備用卡950的數(shù)據(jù)存儲962用工作卡910的閃存924的同一更新來更新閃存964。數(shù)據(jù)存儲962向?qū)Φ葢?yīng)用任務(wù)956發(fā)送與由工作卡910的數(shù)據(jù)存儲922發(fā)送到應(yīng)用任務(wù)916的同一組消息。
在操作1408,對等應(yīng)用任務(wù)956解釋消息,并相應(yīng)地更新RAM數(shù)據(jù)結(jié)構(gòu)952和非持久數(shù)據(jù)954。
非持久更新圖15表示向備用卡950更新非持久信息的操作1500的流程圖。操作1500涉及應(yīng)用任務(wù)916,后者向工作卡910的RAM數(shù)據(jù)結(jié)構(gòu)和非持久數(shù)據(jù)914傳輸配置變化,向備用卡950的對等應(yīng)用任務(wù)956傳輸消息以更新RAM數(shù)據(jù)結(jié)構(gòu)和非持久數(shù)據(jù)954。在一個實(shí)施例中,否定或肯定的應(yīng)答確認(rèn)可用于所有事務(wù)。
參考圖15,在操作1502,應(yīng)用任務(wù)916更新RAM數(shù)據(jù)結(jié)構(gòu)952或非持久數(shù)據(jù)954,并向RCM 920發(fā)送消息以傳輸消息到備用卡950。
在操作1504,RCM 920通過RCM 960向?qū)Φ葢?yīng)用任務(wù)956傳輸消息。RCM 920向?qū)Φ葢?yīng)用任務(wù)956發(fā)送與應(yīng)用任務(wù)916在工作卡910中傳輸?shù)南嗤囊唤M消息。
在操作1506,對等應(yīng)用任務(wù)956相應(yīng)更新RAM數(shù)據(jù)結(jié)構(gòu)952和非持久數(shù)據(jù)954。對等應(yīng)用任務(wù)956可向工作卡910的應(yīng)用任務(wù)916發(fā)送已作變化的應(yīng)答確認(rèn)。
在操作1508,工作卡910的SRM 918在接收確認(rèn)后解鎖阻塞過程,后者可用于防止RAM數(shù)據(jù)結(jié)構(gòu)912、非持久數(shù)據(jù)914和閃存924的變化。
上述更新操作可進(jìn)行備用卡950的兩種類型的更新,稱為“批量更新”和“δ(小)更新”。
批量更新批量更新是指當(dāng)備用卡950先插入路由器104和工作卡910運(yùn)行于工作模式時對備用卡950的更新。新插入的卡可以是新卡或備用卡或另一個路由器的卡。運(yùn)行于工作卡910和備用卡950的SRM在確定備用狀態(tài)或工作狀態(tài)時確定其有效性和狀態(tài)。為說明目的,插入的備用卡950獲得備用狀態(tài)。如果插入的卡在功能上能成為備用,備用卡950必須與工作卡910同步。
在該點(diǎn)上,在工作卡910和備用卡950間發(fā)生大的更新“批量更新”,會有一個大的路由表運(yùn)行于其中。特別地,更新被稱為“批量”,因?yàn)楣ぷ骺?10的所有信息必須拷貝到備用卡950,其中可包括數(shù)百萬條路由記錄。
在批量更新的開始,SRM 918阻塞工作卡910的配置的所有改變,例如,命令行改變或會話設(shè)置改變。在一個實(shí)施例中,網(wǎng)絡(luò)路由更新可成隊(duì)列因?yàn)榧词乖谂扛缕陂g也必須知道網(wǎng)絡(luò)的拓?fù)涓淖儭?br> 工作卡910的數(shù)據(jù)存儲922會保證存儲持久數(shù)據(jù)的數(shù)據(jù)庫(即在閃存924中存儲的信息)在備用卡950的存儲器或閃存964中鏡像。例如,路由表、連接信息等在工作卡910和備用卡950中鏡像。RCM 920把備用卡950的存在通知工作卡910的模塊。在一個實(shí)施例中,對運(yùn)行在工作卡910的不同類型路由協(xié)議的每個應(yīng)用,更新可以不同。
δ更新在工作卡910上發(fā)生兩種類型的變化。第一種,需要向備用卡950復(fù)制或更新的變化。例如,需要在備用卡950中更新配置變化、路由表更新、節(jié)點(diǎn)名稱變化等。第二種,不需要向備用卡950更新的變化。例如,計(jì)數(shù)器更新或非關(guān)鍵警報不需要向備用卡950中更新。而且,這種變化可以復(fù)制到備用卡950。
δ更新可利用上述的關(guān)于持久更新和非持久更新的操作進(jìn)行。在一個實(shí)施例中,即使δ更新失敗且備用卡950繼續(xù)運(yùn)行,缺乏δ更新不一定使備用卡950失敗,因?yàn)閷Φ裙?jié)點(diǎn)會重發(fā)消息。只要消息未提交,如果工作卡910失敗,備用卡950就不是必須要求δ更新繼續(xù)運(yùn)行。也就是,如果工作卡910提交了消息或變化,必須在δ更新中向備用卡950提交,以維護(hù)與對等節(jié)點(diǎn)一致。
錯誤處理工作卡910包括軟件和硬件錯誤處理能力。例如,SRM 918可處理軟件錯誤,錯誤邏輯可處理工作卡910的硬件錯誤。圖16表示根據(jù)一個實(shí)施例執(zhí)行錯誤處理的操作1600的流程圖。
參考圖16,在操作1602,工作卡910檢測到錯誤,如軟件或硬件錯誤。工作卡910檢測錯誤是否需要切換。如果錯誤需要切換,工作卡910和備用卡950可進(jìn)行如上所述的非無縫切換。
在操作1604,向備用卡950發(fā)生硬件切換。進(jìn)行物理切換需要一定的時間,為幾毫秒級。
在操作1606,備用卡950繼續(xù)路由器104的運(yùn)行。備用卡950必須很快繼續(xù)運(yùn)行,因?yàn)楹吐酚善?04的協(xié)議會話會超時。因?yàn)閷ぷ骺?10的相關(guān)信息變化的非持久和持久信息的δ更新,備用卡950可無縫快速地繼續(xù)運(yùn)行。
軟件/硬件失敗軟件失敗是最關(guān)鍵類型的失敗。也就是,軟件錯誤與幾個軟件狀態(tài)和變量有關(guān),需要冗余系統(tǒng)的一致性。而且,軟件錯誤很難檢測。通常類型的軟件失敗包括分段故障、存儲器破壞、存儲器耗盡、應(yīng)用強(qiáng)迫的切換和無限循環(huán)。
如果有無效訪問存儲器,會發(fā)生分段故障。如果有對存儲器的錯誤訪問,硬件或軟件可檢測出錯誤訪問,產(chǎn)生SRM錯誤引起切換。特別地,對存儲器的錯誤訪問會導(dǎo)致存儲錯誤信息。如果使用了過多的存儲器空間會發(fā)生存儲器耗盡錯誤。在一個實(shí)施例中,如果使用的存儲器空間達(dá)到警戒線會給出警報,如果使用的存儲器空間超過一定閾值會發(fā)生切換。
當(dāng)用戶通過命令行指令強(qiáng)制切換時,軟件中發(fā)生應(yīng)用強(qiáng)制切換。例如,插入其中的新卡處于工作狀態(tài)。無限循環(huán)也能導(dǎo)致處理器不去處理其他指令。在一個實(shí)施例中,可使用看門狗定時器來確定指令是否是導(dǎo)致軟件出錯的無限循環(huán)??商娲?,可用低優(yōu)先任務(wù)來確定處理器是否陷入無限處理其他任務(wù)當(dāng)中。也就是說,如果低優(yōu)先任務(wù)一直得不到處理時間,可以確定存在無限循環(huán)。
因?yàn)閭溆每?50中的冗余硬件,硬件失敗沒有軟件失敗那樣嚴(yán)重。普通類型的硬件失敗為開機(jī)或啟動順序中的ASIC診斷失敗、總線失敗、存儲失敗、或卡失敗。這些硬件失敗也會導(dǎo)致工作卡放棄支配權(quán)而切換到備用卡950。
路由協(xié)議冗余路由協(xié)議冗余基本要求為獲得路由協(xié)議層冗余,必須在備用卡950上提供在工作卡910上運(yùn)行的每個路由協(xié)議所需的所有相關(guān)信息。在工作卡910上和備用卡950上運(yùn)行的每個路由協(xié)議模塊負(fù)責(zé)維護(hù)工作卡910和備用卡950的協(xié)議信息的鏡像拷貝。這樣,如果工作卡910失敗,備用卡950可繼續(xù)工作卡910上的所有路由協(xié)議會話。備用卡950是在所有路由協(xié)議會話狀態(tài)超時前繼續(xù)運(yùn)行,從而防止對等節(jié)點(diǎn)檢測到失敗。
典型路由協(xié)議交互圖17為表示根據(jù)一個實(shí)施例在一個節(jié)點(diǎn)內(nèi)部的路由協(xié)議交互的圖示1700。參考圖17,每個路由協(xié)議BGP 1726、OSPF 1724和IS-IS 1714都分別與其各自的數(shù)據(jù)庫1731、1732和1733聯(lián)結(jié)。這些數(shù)據(jù)庫能包括專用路由協(xié)議路由或信息。而且,每個路由協(xié)議的數(shù)據(jù)庫1731、1732和1733可在路由協(xié)議BGP 1726、OSPF 1724和IS-IS 1714中存儲狀態(tài)機(jī)和統(tǒng)計(jì)操作的數(shù)據(jù)結(jié)構(gòu)。
所有路由的集合存儲在IP路由表1702中。根據(jù)IP路由表1702中的路由可產(chǎn)生轉(zhuǎn)發(fā)表(FIB)1702。FIB 1716可包括路由器104轉(zhuǎn)發(fā)包的轉(zhuǎn)發(fā)信息。在一個實(shí)施例中,三重內(nèi)容可尋址存儲器(TCAM)1706能存儲FIB 1716中的路由。在其他實(shí)施例中,可用處理器和存儲系統(tǒng)的任意組合來存儲和維護(hù)FIB 1716。
如果工作卡910失敗,上面的路由協(xié)議交互以相同方式在備用卡950上運(yùn)行。這樣,工作卡910的BGP 1726、OSPF 1724和IS-IS的數(shù)據(jù)庫1731、1732和1733中的信息復(fù)制到備用卡950的相同元件。而且,IP路由表1702和FIB 1716也復(fù)制到備用卡950的相同元件。這樣,備用卡950的TCAM 1706會使用路由器104的一致的轉(zhuǎn)發(fā)信息來切換和轉(zhuǎn)發(fā)包。
圖18為表示根據(jù)另一個實(shí)施例工作控制點(diǎn)與備用控制點(diǎn)間的路由協(xié)議交互的圖示1800。參考圖18,路由協(xié)議BGP 1726、OSPF 1724和IS-IS1714的數(shù)據(jù)庫1731、1732、和1733中的路由信息拷貝分別在備用控制點(diǎn)的對等數(shù)據(jù)庫中得到維護(hù)。
在一個實(shí)施例中,為避免工作卡910與備用卡950間的連接過載,工作卡910只將靜態(tài)路由1820A復(fù)制或拷貝到備用控制點(diǎn)中的對等靜態(tài)路由1820B。靜態(tài)路由為固有路由。備用卡950以與工作卡910相同的方式運(yùn)行,只是無權(quán)訪問路由器104與網(wǎng)絡(luò)100進(jìn)行通信的端口。特別地,備用卡950中的規(guī)則碼路徑只重新分配并提供他的IP路由表1716。
在工作控制點(diǎn)失敗時,路由器104會切換到備用控制點(diǎn)運(yùn)行。路由器104將繼續(xù)無縫路由通信,因?yàn)閭溆每刂泣c(diǎn)已經(jīng)從每個路由協(xié)議的私有數(shù)據(jù)存儲生成了有效的轉(zhuǎn)發(fā)表。同樣,與路由器104通信的對等節(jié)點(diǎn)可與路由器104維護(hù)路由協(xié)議會話。而且,路由器104可防止對等節(jié)點(diǎn)觀察到失敗,并防止對等節(jié)點(diǎn)觀察到切換。
路由協(xié)議冗余的典型體系圖19表示路由協(xié)議冗余的典型體系1900。典型體系1900包括工作卡910和備用卡950的路由協(xié)議數(shù)據(jù)庫和模塊,用來支持路由協(xié)議冗余。工作卡910和備用卡950的每個模塊具有二種類型的冗余數(shù)據(jù)庫,即冗余數(shù)據(jù)庫(RDBs)和持久數(shù)據(jù)庫(PDBs)。
工作卡910包括訪問IGP RDB 1942A和IGP RDB 1924A的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)模塊1992A。IGP模塊包括OSPF、RIP和IS-IS路由協(xié)議的模塊。工作卡910還包括訪問BGP RDB 1927A和BGP PDB 1731A的BGP模塊1726A,訪問TCP RDB 1933A和TCP PDB 1926A的TCP模塊1932A,和訪問IP RDB 1931A和IP PDB 1928A的IP模塊1930A。
備用卡950包括訪問對等PDB和RDB的工作卡910的對等模塊。特別地,備用卡950包括訪問IGP RDB 1942B和IGP RDB 1924B的IGP模塊1992B。備用卡950還包括訪問BGP RDB 1927B和BGP PDB 1731B的BGP模塊1726B,訪問TCP RDB 1933B和TCP PDB 1926B的TCP模塊1932B,和訪問IP RDB 1931B和IP PDB 1928B的IP模塊1930B。
持久數(shù)據(jù)(PDB)和非持久數(shù)據(jù)(RDB)的冗余處理不同。持久數(shù)據(jù)冗余由每個工作卡910和備用卡950的內(nèi)部數(shù)據(jù)存儲模塊處理。如果工作卡910的數(shù)據(jù)存儲模塊將數(shù)據(jù)存儲到閃存中,則相同數(shù)據(jù)被存儲到備用卡950中及其閃存中。此外,將該變化通知給備用卡950中的對等數(shù)據(jù)存儲模塊,并且改變的數(shù)據(jù)作為通知的一部分被傳輸。每個模塊也負(fù)責(zé)其自身的非持久數(shù)據(jù)的冗余。例如,若OSPF從BGP接收到更新,OSPF不會將其發(fā)送給備用卡950。在這種情況下,BGP將更新發(fā)送給備用卡950中的對等BGP。
工作卡910和備用卡950執(zhí)行同樣的路由重新分配。工作卡910上和備用卡950上的每個路由協(xié)議模塊負(fù)責(zé)將其最佳路由分別發(fā)送給路由表管理器(RTM)1940A和1940B。若工作卡910上的RTM 1940A設(shè)計(jì)成向其他協(xié)議重新分配路由,則RTM 1940A也會在備用卡950上執(zhí)行相同操作。在一個實(shí)施例中,RTM重新分配設(shè)置被認(rèn)為是配置信息,并作為持久數(shù)據(jù)被冗余。
轉(zhuǎn)發(fā)信息表(FIB)1716A和1716B被同樣地分別建立在工作卡910和備用卡950上。FIB 1716A和1716B基于最佳路由,為每個協(xié)議配置管理距離。在一個實(shí)施例中,RTM的協(xié)議距離設(shè)置信息被認(rèn)為是配置信息,并作為持久數(shù)據(jù)被冗余。三重內(nèi)容可尋址存儲器(TCAM)1706A和1706B分別在工作卡910和備用卡950上執(zhí)行相同操作。TCAM 1706A和1706B能根據(jù)來自不同模塊的持久數(shù)據(jù)和來自RTM 1940A和1940B的動態(tài)FIB數(shù)據(jù)進(jìn)行編程。備用卡950(若在備用狀態(tài)下工作)沒有與路由器104連接的物理線。這樣,備用卡950作為接口管理器,來處理與工作卡910同步的接口狀態(tài)。也就是說,備用卡950向其模塊及工作卡910中的對等模塊提供信息。
邊界網(wǎng)關(guān)協(xié)議(BGP)冗余基本BGP冗余要求BGP是一種在互聯(lián)網(wǎng)使用最為廣泛的路由協(xié)議。BGP是一種由不同自主系統(tǒng)(AS)的路由器所用的外部網(wǎng)關(guān)協(xié)議。BGP路由器在網(wǎng)絡(luò)邊界之間路由包。這樣,BGP路由或轉(zhuǎn)發(fā)表可以很大,可存儲百萬條路由。然而,BGP也提出了不同于其它路由協(xié)議的挑戰(zhàn)。BGP使用TCP來進(jìn)行連接和可靠的數(shù)據(jù)傳輸。結(jié)果,如果BGP失去與對等節(jié)點(diǎn)的TCP連接,對等節(jié)點(diǎn)會作出反應(yīng),立即失去從鄰對等節(jié)點(diǎn)獲取的所有路由。由于這個原因,為獲得BGP路由協(xié)議冗余,還必須將TCP進(jìn)行冗余,以避免由BGP獲取的路由不可訪問。
在下面的實(shí)施例中,如圖9中所示的冗余平臺900對BGP和TCP協(xié)議冗余提供支持。冗余平臺900允許備用卡950在足夠短的時間里重新獲取BGP路由和轉(zhuǎn)發(fā)信息而不避免服務(wù)中斷。而且,冗余平臺900也對為獲得BGP和TCP協(xié)議冗余而進(jìn)行的下述操作提供支持。
TCP層冗余要求為獲得BGP路由協(xié)議冗余,TCP層冗余是冗余的另外一層。下面的實(shí)施例說明冗余節(jié)點(diǎn)104的BGP與TCP間的典型交互。
圖20為BGP、TCP和IP間交互的典型視圖2000。為說明目的,視圖2000涉及處于“工作模式”的工作卡910。參考圖20,視圖2000表示BGP 1726A向TCP 1932A發(fā)送三個消息。消息1的長度為19字節(jié),消息2的長度為70字節(jié),消息3的長度為26字節(jié),共計(jì)115字節(jié)。
TCP 1932A為字節(jié)流協(xié)議。TCP 1932A將來自BGP 1726A的三個消息作為字節(jié)流。例如,TCP 1932A將來自BGP 1726的115字節(jié)作為二個消息發(fā)送給IP 1930A。消息1為85字節(jié),消息2為30字節(jié)。這樣,IP 1930A能從TCP 1932A接收二個消息。IP 1930A能在發(fā)送緩沖區(qū)2002內(nèi)暫存該二個消息。
由于TCP 1932A將消息作為連續(xù)的字節(jié)流,TCP1932A能在消息中存儲序列號,以便指定消息在字節(jié)流中的位置。例如,TCP 1932A能存儲下一個發(fā)送號碼(NS)和下一個接收號碼(NR),以確定消息的順序。NS號碼為標(biāo)識消息或包的標(biāo)識符。NR號碼為一標(biāo)識符,用來標(biāo)識從遠(yuǎn)程對等節(jié)點(diǎn)所接收的字節(jié)流中的下一消息或包。參考圖20,去往IP 1930A的消息1可具有隨機(jī)產(chǎn)生的NS號碼=1000。若對等接點(diǎn)接收到NS號碼=1000的消息1,則對等節(jié)點(diǎn)就知道下一消息(即消息2)的NS=1085。如果不是這樣,對等節(jié)點(diǎn)就會知道該消息與消息1的次序顛倒,并確定有錯誤發(fā)生。
TCP 1932A可以使用的另一個參數(shù)為窗口大小。窗口大小是TCP 1932A在收到對等節(jié)點(diǎn)的應(yīng)答前所能發(fā)送的最大字節(jié)數(shù)。窗口大小參數(shù)能在對等節(jié)點(diǎn)之間協(xié)商。例如,窗口大小可以是8K或16K。在一個實(shí)施例中,來自或經(jīng)過BGP 1726A、TCP 1932A、IP 1930A和發(fā)送緩沖區(qū)2002的傳輸數(shù)據(jù)被復(fù)制或拷貝到備用卡950中,直到消息被接收對等節(jié)點(diǎn)應(yīng)答確認(rèn)。
圖21A為根據(jù)一個實(shí)施例對接收的或產(chǎn)生的BGP的狀態(tài)變化進(jìn)行復(fù)制的操作2100的流程圖。下面的操作2100能通過冗余節(jié)點(diǎn)104執(zhí)行,該冗余節(jié)點(diǎn)104具有上述的工作卡910和備用卡950。為說明目的,操作2100從操作2102開始。在操作2102中,工作卡910接收或產(chǎn)生BGP的狀態(tài)變化。例如,對等節(jié)點(diǎn)能向冗余節(jié)點(diǎn)104發(fā)送BGP路由不再作為狀態(tài)變化可用的信息。
在操作2104中,接收的或生成的BGP狀態(tài)變化被從工作卡910復(fù)制到備用卡950。例如,冗余平臺900能執(zhí)行上述的將BGP的狀態(tài)變化“δ更新”至備用卡950中。
圖21B為根據(jù)一個實(shí)施例對接收的或產(chǎn)生的TCP狀態(tài)變化進(jìn)行復(fù)制的操作2150的流程圖。為說明目的,操作2150從操作2152開始。在操作2152中,工作卡910接收或產(chǎn)生TCP的狀態(tài)變化。例如,對等節(jié)點(diǎn)能向冗余節(jié)點(diǎn)104發(fā)送TCP路由不再作為狀態(tài)變化而可用的信息。
在操作2104中,接收的或生成的TCP狀態(tài)變化被從工作卡910復(fù)制到備用卡950。例如,冗余平臺900能執(zhí)行上述的將TCP的狀態(tài)變化“δ更新”至備用卡950中。
上面的操作2100和2500允許BGP和TCP的狀態(tài)變化的BGP和TCP冗余。在其他實(shí)施例中,也可實(shí)施上述操作2100和2500來選擇性地提供BGP和TCP消息的冗余。也就是說,能在備用卡950中產(chǎn)生一些或所有的BGP和TCP消息冗余。
發(fā)送BGP消息的TCP鎖步在一個實(shí)施例中,TCP層冗余要求就是BGP和TCP的“鎖步”要求。鎖步要求需要對于每個由工作卡910發(fā)送或接收的消息來說,必須應(yīng)答確認(rèn)在工作卡910能發(fā)送或接收其他消息之前,備用卡950已經(jīng)存儲了該發(fā)送或接收的消息。若發(fā)生了切換,并且備用卡950沒有存儲該消息,冗余將被破壞。
圖22為在工作卡910上運(yùn)行的工作TCP與在備用卡950上運(yùn)行的備用TCP之間的典型對話,顯示被發(fā)送到對等節(jié)點(diǎn)的BGP消息的鎖步要求。參考圖22,對話2200顯示工作BGP 1726A將BGP消息(消息1)發(fā)送給工作TCP 1932A。工作卡910計(jì)劃將消息1發(fā)送給另一路由器或?qū)Φ裙?jié)點(diǎn)。工作TCP 1932A將消息1發(fā)送給備用TCP 1932B,使消息1能在備用卡950中被復(fù)制。備用卡950將消息1已被其復(fù)制的應(yīng)答確認(rèn)信息發(fā)送給工作TCP 1932A。
在一個實(shí)施例中,具有冗余平臺900的冗余節(jié)點(diǎn)104在未收到消息1已被復(fù)制的應(yīng)答確認(rèn)信息之前,不會通過IP 1932A將消息1發(fā)送給對等節(jié)點(diǎn)。而且,冗余節(jié)點(diǎn)104在未收到來自備用TCP 1932B的消息1已被存儲的應(yīng)答確認(rèn)信息之前,不會發(fā)送另一消息(即消息2)。如前所述,若消息1未存儲在備用卡950中,冗余將被破壞,若發(fā)生了轉(zhuǎn)換,則備用卡950無法繼續(xù)工作卡910的當(dāng)前狀態(tài)的操作。
這樣,工作TCP 1932A在接收消息1的應(yīng)答確認(rèn)之后,將“ack”發(fā)送給BGP 1726A,之后,BGP 1726A才能發(fā)出第二消息2。同樣,工作卡910在未收到備用TCP 1932B已經(jīng)在備用卡950中存儲了消息2的應(yīng)答確認(rèn)信息之前,不會通過IP 1932A將消息發(fā)送給對等節(jié)點(diǎn)。通過維護(hù)這種鎖步,能確保備用卡950中具有與工作卡910中的BGP消息相同的消息,該消息被計(jì)劃發(fā)送給對等節(jié)點(diǎn)。
接收BGP消息的TCP鎖步圖23表示在工作卡910上運(yùn)行的工作TCP與在備用卡950上運(yùn)行的備用TCP之間的典型對話,顯示由對等節(jié)點(diǎn)接收的BGP消息的鎖步要求。參考圖23,對話2300顯示工作卡910中的工作TCP 1932A從遠(yuǎn)端節(jié)點(diǎn)102A接收BGP消息(消息A)。在TCP 1932A向遠(yuǎn)端節(jié)點(diǎn)102A發(fā)送和應(yīng)答確認(rèn)信息之前,TCP 1932A必須保證消息A在備用卡950中被復(fù)制。若消息A沒有在備用卡950中被復(fù)制,冗余將被破壞。
這樣,TCP 1932A向其備用TCP 1932B發(fā)送消息A。備用TCP 1932B向備用卡950中的備用BGP 1726B發(fā)送消息A。然后,備用TCP 1932B向工作TCP 1932A發(fā)送消息A已被復(fù)制的應(yīng)答確認(rèn)信息。從備用TCP1932B收到應(yīng)答確認(rèn)信息之后,工作TCP 1932A將消息A發(fā)送給工作BGP1726A,然后,再向遠(yuǎn)端節(jié)點(diǎn)102A發(fā)送消息A的應(yīng)答確認(rèn)信息。
若第二個BGP消息(消息B)被工作TCP 1932A接收,他將執(zhí)行與消息A相同的操作,在備用卡950中復(fù)制消息B,等待消息B被復(fù)制的應(yīng)答確認(rèn)信息。從備用TCP 1932B接收應(yīng)答確認(rèn)信息之后,工作TCP1932A將消息B發(fā)送給工作BGP 1726A,之后,再向遠(yuǎn)端節(jié)點(diǎn)102A發(fā)送消息B的應(yīng)答確認(rèn)信息。在消息A被復(fù)制之前,將不會出現(xiàn)消息B的應(yīng)答確認(rèn)信息。這樣,通過維護(hù)這種鎖步,能確保備用卡950中具有與工作卡910中所接收到的BGP消息相同的消息。
BGP協(xié)議冗余的增量(δ)更新圖24、25顯示發(fā)送到對等節(jié)點(diǎn)的獨(dú)立BGP消息的δ更新的不同實(shí)施方式,實(shí)現(xiàn)如上圖22所示的TCP鎖步要求。圖26顯示由對等節(jié)點(diǎn)所接收的獨(dú)立BGP消息的δ更新的實(shí)施方式,實(shí)現(xiàn)如上圖23所示的TCP鎖步要求。
圖24為顯示根據(jù)一個實(shí)施例發(fā)送到對等節(jié)點(diǎn)的獨(dú)立BGP消息的δ更新的BGP體系2400。BGP體系2400在如圖9中所示的冗余平臺900之上工作。在下面的體系2400中,由工作卡910上運(yùn)行的BGP協(xié)議產(chǎn)生的每個BGP消息在備用卡950中被更新或復(fù)制。BGP消息經(jīng)過多個緩沖級,在每個緩沖級都需要冗余。
參考圖24,利用參考點(diǎn)1~34對體系2400的運(yùn)行進(jìn)行解釋。在參考點(diǎn)1,BGP 1926A發(fā)送存儲在BGP緩沖區(qū)1927A中的消息。在參考點(diǎn)2,消息必須在備用卡950中進(jìn)行鏡像或復(fù)制。這樣,消息被發(fā)送給冗余管理器920,而在參考點(diǎn)3,冗余管理器920通過內(nèi)間連接(例如“電纜”)向其備用卡950中的對等冗余管理器960發(fā)送該消息。此時,冗余管理器960使用該消息來更新BGP緩沖區(qū)1297B,使其具有BGP緩沖區(qū)1927A中所存儲消息的鏡像拷貝。
在參考點(diǎn)5,消息已被更新的應(yīng)答確認(rèn)信息被發(fā)送給冗余管理器960。在參考點(diǎn)6,備用卡950中的冗余管理器960將該應(yīng)答確認(rèn)信息發(fā)送給工作卡910中的冗余管理器920。冗余管理器920再將該應(yīng)答確認(rèn)信息存儲在BGP緩沖區(qū)1297中。然后,消息被發(fā)送到套節(jié)字隊(duì)列2403A。
這里,上述操作針對參考點(diǎn)9~28進(jìn)行執(zhí)行,使消息廣播到工作卡910的套節(jié)字隊(duì)列2403A、套節(jié)字緩沖區(qū)2404A和TCP緩沖區(qū)1933A進(jìn)行傳輸。這樣,廣播到套節(jié)字隊(duì)列2403A、套節(jié)字緩沖區(qū)2404A和TCP緩沖區(qū)1933A的消息被鏡像或復(fù)制到備用卡950中對等的的套節(jié)字隊(duì)列2403B、套節(jié)字緩沖區(qū)2404B和TCP緩沖區(qū)1933B。在消息被存儲在TCP緩沖區(qū)1933A中之后,對于參考點(diǎn)19~34,消息通過IP 1930A、協(xié)議鏈管理器(PCM)隊(duì)列2405A、PCM 2006A、驅(qū)動隊(duì)列2407A和驅(qū)動器2408A輸送出,并通過電纜發(fā)送給對等節(jié)點(diǎn)。套節(jié)字隊(duì)列存儲運(yùn)行在另一節(jié)點(diǎn)的BGP協(xié)議的端點(diǎn)信息。PCM管理分配給每種類型的路由協(xié)議的消息。PCM隊(duì)列為獨(dú)立的路由協(xié)議存儲消息。
圖25為根據(jù)另一個實(shí)施例的典型BGP體系2500,顯示獨(dú)立BGP消息的δ更新,用于數(shù)據(jù)傳輸冗余。典型BGP體系2500減少BGP與TCP/IP之間的緩沖級的數(shù)量。具體地說,BGP能將消息(“包”)直接發(fā)送給TCP/IP所用的緩沖區(qū)。例如,緩沖區(qū)可以是“環(huán)緩沖區(qū)”。BGP能控制向環(huán)緩沖區(qū)的“寫”指針,而TCP/IP能控制向環(huán)緩沖區(qū)的“讀”指針。
參考圖25,體系2500的操作通過參考點(diǎn)1~13來加以解釋。在參考點(diǎn)1,BGP 1926A發(fā)送存儲在發(fā)送數(shù)據(jù)環(huán)2508A中的消息“包”。在參考點(diǎn)2,消息必須在備用卡950中被鏡像或復(fù)制。由此,消息被發(fā)送給冗余管理器920,而在參考點(diǎn)3,冗余管理器920通過卡間連接(例如,“電纜”)向其備用卡950中的對等冗余管理器960發(fā)送該消息。此時,冗余管理器960使用該消息來更新發(fā)送數(shù)據(jù)環(huán)2108B,使其具有發(fā)送數(shù)據(jù)環(huán)2108A中所存儲消息的鏡像拷貝。
在參考點(diǎn)5,將消息已被更新的應(yīng)答確認(rèn)信息發(fā)送給冗余管理器960,在參考點(diǎn)6,備用卡950中的冗余管理器960將應(yīng)答確認(rèn)信息發(fā)送給工作卡910中的冗余管理器920。由此,冗余管理器920將該應(yīng)答確認(rèn)信息存儲在發(fā)送數(shù)據(jù)環(huán)2508A中。之后,消息通過TCP/IP 1930A、PCM隊(duì)列2405A、PCM 2406A、驅(qū)動隊(duì)列2407A和驅(qū)動器2408A輸送出,并通過電纜發(fā)送給對等節(jié)點(diǎn)。
圖26為根據(jù)一個實(shí)施例接收數(shù)據(jù)的典型BGP體系2600。該典型BGP體系2600相似于帶有附加數(shù)據(jù)環(huán)緩沖區(qū)(即接收數(shù)據(jù)換緩沖區(qū)2660A、2660B)的BGP體系2500。具體地說,BGP能夠從數(shù)據(jù)環(huán)緩沖區(qū)接收BGP消息。
參考圖26,將通過參考點(diǎn)1~14來解釋體系2600的操作。在參考點(diǎn)1,備用卡910通過驅(qū)動器2408A從電纜連接接收BGP消息。在參考點(diǎn)2,驅(qū)動器2408A向PCM隊(duì)列2405A發(fā)送消息。在參考點(diǎn)3,PCM隊(duì)列2405A向PCM 2406A發(fā)送消息。在參考點(diǎn)4,PCM 2406A向TCP/IP隊(duì)列2631A發(fā)送消息。在參考點(diǎn)5,TCP/IP隊(duì)列2631A向TCP/IP 1930A發(fā)送消息。在參考點(diǎn)6,TC/IP 1930A向數(shù)據(jù)接收環(huán)緩沖區(qū)2660A發(fā)送消息。
在參考點(diǎn)7,數(shù)據(jù)接收環(huán)緩沖區(qū)2660A向冗余管理器920發(fā)送消息。在參考點(diǎn)8,冗余管理器920向備用卡950中的冗余管理器960發(fā)送消息,用于復(fù)制。在參考點(diǎn)9,冗余管理器960向數(shù)據(jù)接收環(huán)緩沖區(qū)2660B發(fā)送消息。在參考點(diǎn)10,應(yīng)答確認(rèn)消息存儲在發(fā)送數(shù)據(jù)環(huán)緩沖區(qū)2550B中。在參考點(diǎn)11和11a,消息被發(fā)送給BGP 1726B,并且應(yīng)答確認(rèn)信息被發(fā)送給冗余管理器960。在參考點(diǎn)12,應(yīng)答確認(rèn)信息被發(fā)送給冗余管理器920。
在參考點(diǎn)13,冗余管理器920向數(shù)據(jù)接收環(huán)緩沖區(qū)2660A發(fā)送應(yīng)答確認(rèn)信息。在參考點(diǎn)14,來自冗余管理器960的應(yīng)答確認(rèn)信息被存儲在發(fā)送環(huán)緩沖區(qū)2550A中。在參考點(diǎn)15,消息被發(fā)送給BGP 1726A。在上述操作中,由工作卡910所接收的消息在被BGP 1726B接收之前,將不會被發(fā)送給BGP 1726A。而且,上述操作說明從對等節(jié)點(diǎn)或相鄰節(jié)點(diǎn)所接收的BGP消息的增量更新。
圖27為根據(jù)一個實(shí)施例提交BGP消息的操作2700的流程圖。下面的操作2700能通過上述具有工作卡910和備用卡的冗余節(jié)點(diǎn)104來實(shí)現(xiàn)。為說明目的,操作2700涉及圖19并從操作2702開始。
在操作2702中,BGP消息由工作卡910接收。工作卡910將消息向上發(fā)送,經(jīng)過上層到達(dá)應(yīng)用(BGP),即BGP 1726A。工作卡910還將消息發(fā)送給備用卡950中的TCP 1932B。
在操作2704中,工作卡910提交消息。
在操作2706中,備用卡950接收消息,并將消息從TCP 1932B發(fā)送給備用的應(yīng)用(BGP),即BGP 1726B。
在操作2708中,備用卡950提交消息,并將確認(rèn)信息發(fā)送給工作卡950中的TCP 1932A。
在操作2710中,備用卡910從備用卡950接收提交確認(rèn)信息,并將提交確認(rèn)信息轉(zhuǎn)換成系統(tǒng)提交確認(rèn)。
在操作2712中,工作卡910向遠(yuǎn)端對等節(jié)點(diǎn)發(fā)送系統(tǒng)提交確認(rèn)信息。
上述操作2700使用冗余管理器920和960,便于工作卡910與備用卡950之間的消息傳輸。在其他實(shí)施方式中,操作2702~2710可重復(fù)用于其他消息,但每個的系統(tǒng)確認(rèn)信息在備用卡950提交前不會被發(fā)送給對等節(jié)點(diǎn)。上述操作允許BGP消息快速通過工作卡910和備用卡950的上層。
BGP協(xié)議冗余的啟動順序/批量更新圖28為根據(jù)一個實(shí)施例對BGP協(xié)議冗余進(jìn)行批量更新的操作2800的流程圖。為說明目的,操作2800涉及啟動順序,其中工作卡910和備用卡950在路由器104中運(yùn)行。
參考圖28,在操作2802中,BGP和TCP數(shù)據(jù)庫從工作卡910復(fù)制到備用卡950。例如,如圖19所示,工作卡910中的BGP RDB 1927A和BGP PDB 1731A被復(fù)制到備用卡950中的BGP RDB 1927B和BGP PDB1731B。冗余平臺900中所解釋的批量更新操作能用于復(fù)制BGP數(shù)據(jù)庫。而且,,使用與BGP數(shù)據(jù)庫相同的操作,將工作卡910中的TCP RDB1933A和TCP PDB 1926A復(fù)制到備用卡950中的TCP RDB 1933B和TCPPDB 1926B。作為選擇,非易失性存儲器和其他數(shù)據(jù)庫也能被復(fù)制。
在操作2804中,將接收或發(fā)送的多個BGP消息進(jìn)行排隊(duì),使他們在批量更新過程之后能在備用卡950中形成。在操作2806中,使用如圖24至26所示的δ更新操作將接收或發(fā)送的BGP消息δ更新到備用卡950中。
中間系統(tǒng)—中間系統(tǒng)協(xié)議(IS-IS)冗余IS-IS協(xié)議冗余的基本要求IS-IS協(xié)議是一種鏈路狀態(tài)協(xié)議。生成IS-IS協(xié)議包的區(qū)域/域中的路由器將該包擴(kuò)散(flood)到區(qū)域/域內(nèi)的所有路由器。也就是說,由一個IS-IS路由器所生成的包被存儲在區(qū)域或域中的每個IS-IS路由器中。這樣,每個IS-IS路由器都有完全的與其他IS-IS路由器一致的網(wǎng)絡(luò)視圖。這些包被稱為鏈路狀態(tài)包(LSP)。LSP包包括產(chǎn)生包的IS路由器的信息。這樣,每個運(yùn)行IS-IS協(xié)議的路由器包括存儲LSP包的LSP數(shù)據(jù)庫或IS-IS數(shù)據(jù)庫。
為了獲得IS-IS協(xié)議冗余,備用控制器系統(tǒng)必須能維護(hù)或知道工作控制器系統(tǒng)中的配置/全局信息、電路信息、鄰接信息和鏈路狀態(tài)包(LSP)信息。配置信息包括全局信息如工作卡910的全局狀態(tài),即是工作的還是備用的。電路信息包括運(yùn)行電路的狀態(tài)。例如,電路是否使能/禁止。鄰接信息包括工作系統(tǒng)的鄰接節(jié)點(diǎn)上的信息,即誰是它的鄰居。鏈路狀態(tài)信息包括LSP包的信息。冗余平臺900對維護(hù)IS-IS協(xié)議冗余提供支持。
IS-IS協(xié)議冗余的啟動順序/批量更新圖29為根據(jù)一個實(shí)施例對IS-IS協(xié)議冗余進(jìn)行批量更新的操作2900流程圖。為說明目的,操作2900是指啟動順序,其中工作卡910和備用卡950在路由器104中工作。
參考圖29,在操作2902中,IS-IS數(shù)據(jù)庫從工作卡910復(fù)制到備用卡950。例如,如圖19所示,工作卡910中的IGP RDB 1942A、IGPPDB1924A和FIB 1716A被復(fù)制到備用卡950中的IGP RDB 1942B、IGPPDB1924B、和FIB 1716B。IGP數(shù)據(jù)庫可以只對IS-IS數(shù)據(jù)庫信息進(jìn)行選擇性拷貝。冗余平臺900中所解釋的批量更新操作能用于復(fù)制IGP IS-IS數(shù)據(jù)庫。
在操作2904中,接收或發(fā)送的所有IS-IS消息被排隊(duì),使他們能在批量更新操作之后在備用卡950中生成。在操作2906中,使用如圖24~26所示的δ更新操作,將接收或發(fā)送的IS-IS消息δ更新到備用卡950中。
IS-IS協(xié)議冗余的增量(δ)更新圖30為根據(jù)一個實(shí)施例對接收或發(fā)送的獨(dú)立IS-IS消息進(jìn)行增量(δ)更新的操作3000流程圖。為說明目的,操作3000是針對具有工作卡910和備用卡950的路由器。
參考圖30,在操作3002中,接收或生成一個IS-IS消息。例如,IS-IS協(xié)議能生成LSP或者從對等節(jié)點(diǎn)接收LSP。在操作3004中,工作卡910將LSP包發(fā)送給備用卡950,該備用卡950被視為鄰居。這樣,備用卡950復(fù)制該LSP包。
開放最短路徑優(yōu)先協(xié)議(OPSF)冗余
OSPF協(xié)議冗余的基本要求OSPF協(xié)議是一種鏈路狀態(tài)域內(nèi)路由協(xié)議,依賴IP協(xié)議進(jìn)行發(fā)送和接收包。OSPF并不使用TCP或UDP來進(jìn)行可靠地傳輸包。OSPF協(xié)議通過與對等節(jié)點(diǎn)交換網(wǎng)絡(luò)信息,建立與對等節(jié)點(diǎn)鄰居的鄰接。OSPF更新FIB和路由表管理器(RTM)產(chǎn)生的其他協(xié)議。OSPF協(xié)議冗余的基本要求是用對等節(jié)點(diǎn)的RTM來維護(hù)備用卡910上的RTM不間斷的OSPF協(xié)議服務(wù)。相應(yīng)地,對于OSPF協(xié)議冗余來說,必須在備用卡950中維護(hù)所有的協(xié)議狀態(tài)信息、OSPF數(shù)據(jù)庫信息和配置信息。
OSPF協(xié)議冗余的啟動順序/批量更新圖31為根據(jù)一個實(shí)施例對OSPF進(jìn)行批量更新的操作3100的流程圖。為說明目的,操作3100涉及啟動順序,其中工作卡910和備用卡950在路由器104中使用。
參考圖31,在操作3102中,OSPF數(shù)據(jù)庫被從工作卡910復(fù)制給備用卡950。例如,如圖19所示,工作卡910中的IGP RDB 1942A和IGPPDB 1924A和FIB 1716A被復(fù)制給備用卡950中的IGP RDB 1942B和IGPPDB1924B和FIB 1716B。IGP數(shù)據(jù)庫能僅對OSPF數(shù)據(jù)庫信息進(jìn)行選擇性拷貝。冗余平臺900中所解釋的批量更新操作能用于復(fù)制IGP OSPF數(shù)據(jù)庫。
在操作3104中,接收或發(fā)送的OSPF消息被排隊(duì),使他們能在δ更新操作之后在備用卡950中生成。在操作3106中,使用如圖24~26所示的批量更新操作,將接收或發(fā)送的OSPF消息δ更新到備用卡950中。
OSPF協(xié)議冗余的增量(δ)更新圖32為根據(jù)一個實(shí)施例對接收或發(fā)送的獨(dú)立OSPF消息進(jìn)行增量(δ)更新的操作3200流程圖。為說明目的,操作3200涉及具有工作卡910和備用卡950的路由器。參考圖32,在操作3202中,接收或生成一個OSPF消息。在操作3004中,工作卡910使用冗余平臺900中所解釋的批量更新,將接收到或生成的OSPF消息發(fā)送給備用卡950。上述路由協(xié)議冗余技術(shù)和操作實(shí)際上都是典型的,能被應(yīng)用到其他類型的路由協(xié)議,比如作為例子,路由互聯(lián)網(wǎng)協(xié)議(RIP)。例如,冗余平臺900能用于對上述RIP信息執(zhí)行批量、δ、非持久、及持久數(shù)據(jù)更新。
上述路由器和路由協(xié)議冗余操作能作為由處理器執(zhí)行的軟件程序?qū)崿F(xiàn)。給定一個處理器,軟件程序能被保存在存儲設(shè)備上,如永久存儲器。作為選擇,軟件程序可以是存儲在機(jī)器可讀存儲介質(zhì)上的機(jī)器可執(zhí)行指令,如磁盤、CD-ROM、磁帶、數(shù)字視頻或萬能磁盤(DVD),激光磁盤、ROM、閃存或其他類似存儲設(shè)備。指令序列不需要本地存儲,可以從遠(yuǎn)端存儲設(shè)備如網(wǎng)絡(luò)服務(wù)器、CD ROM設(shè)備、軟盤等接收。這些指令可以從存儲設(shè)備拷貝到暫時存儲器中,然后由處理器訪問和執(zhí)行。對于一種實(shí)現(xiàn),這種軟件程序能用C編程語言編寫。但應(yīng)該理解的是,這些程序能用多種不同編程語言實(shí)現(xiàn)。
對于其他可替代的實(shí)施例,路由器和路由協(xié)議冗余操作能在分立硬件或固件中實(shí)現(xiàn)。例如,可以對一個或多個專用集成電路(ASIC)進(jìn)行編程來執(zhí)行上述冗余操作。在另一例子中,冗余操作能在附加電路板上的一個或多個ASIC實(shí)現(xiàn),這些電路板可以插入到具有上述冗余的路由器或節(jié)點(diǎn)中。在另一例子中,可用現(xiàn)場可編程門陣列(FPGA)或靜態(tài)可編程門陣列(SPGA)執(zhí)行所述的冗余操作。在另一例子中,可用硬件和軟件的結(jié)合來執(zhí)行所述的冗余操作。
這樣,對路由器和路由協(xié)議冗余已經(jīng)進(jìn)行了描述。在前面的說明中,已經(jīng)參考各個典型實(shí)施例描述了本發(fā)明。但明顯的是,在不偏離如所附權(quán)利要求所列舉的本發(fā)明的較寬精神和范圍的前提下,可以對其進(jìn)行各種修改和改變。因此,應(yīng)認(rèn)為說明書和附圖僅具有描述性,而不具有限制性。
權(quán)利要求
1.在具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺的網(wǎng)絡(luò)設(shè)備中的一種方法,包括工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議狀態(tài)變化;以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
2.如權(quán)利要求1所述的方法,其中路由協(xié)議狀態(tài)變化包括邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化、路由互聯(lián)網(wǎng)協(xié)議(RIP)狀態(tài)變化、開放最短路徑優(yōu)先協(xié)議(OSPF)狀態(tài)變化、或中間系統(tǒng)—中間系統(tǒng)協(xié)議(IS-IS)狀態(tài)變化。
3.如權(quán)利要求1所述的方法,其中復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化包括把接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化實(shí)時地從工作控制器系統(tǒng)復(fù)制到備用控制器系統(tǒng)。
4.如權(quán)利要求1所述的方法,還包括工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議消息;以及在備用控制器系統(tǒng)中有選擇地復(fù)制接收的或產(chǎn)生的路由協(xié)議消息。
5.如權(quán)利要求4所述的方法,其中路由協(xié)議消息包括BGP消息、RIP消息、OSPF消息或IS-IS消息。
6.如權(quán)利要求1所述的方法,還包括檢測工作控制器系統(tǒng)中的失?。辉趥溆每刂破飨到y(tǒng)中維護(hù)與失敗前的工作控制器系統(tǒng)相同的路由協(xié)議狀態(tài)變化。
7.如權(quán)利要求1所述的方法,還包括進(jìn)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
8.一種網(wǎng)絡(luò)設(shè)備,包括備用控制器系統(tǒng);工作控制器系統(tǒng),用于接收或產(chǎn)生路由協(xié)議狀態(tài)變化和向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
9.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中路由協(xié)議狀態(tài)變化包括邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化、路由互聯(lián)網(wǎng)協(xié)議(RIP)狀態(tài)變化、開放最短路徑優(yōu)先協(xié)議(OSPF)狀態(tài)變化或中間系統(tǒng)—中間系統(tǒng)協(xié)議(IS-IS)狀態(tài)變化。
10.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)實(shí)時地向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
11.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議消息,并向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的路由協(xié)議消息。
12.如權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備,其中路由協(xié)議消息包括BGP消息、RIP消息、OSPF消息或IS-IS消息。
13.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)檢測失敗,備用控制器系統(tǒng)維護(hù)與失敗前的工作控制器系統(tǒng)相同的路由協(xié)議狀態(tài)變化。
14.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)或備用控制器系統(tǒng)執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
15.如權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其中網(wǎng)絡(luò)設(shè)備包括網(wǎng)絡(luò)路由器、開關(guān)、光學(xué)開關(guān)、網(wǎng)橋、集線器或網(wǎng)關(guān)。
16.在具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺的網(wǎng)絡(luò)設(shè)備中的一種方法,包括工作控制器系統(tǒng)接收或產(chǎn)生邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化;以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化。
17.如權(quán)利要求16所述的方法,其中復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化包括把接收的或產(chǎn)生的BGP狀態(tài)變化實(shí)時地從工作控制器系統(tǒng)復(fù)制到備用控制器系統(tǒng)。
18.如權(quán)利要求16所述的方法,還包括工作控制器系統(tǒng)接收或產(chǎn)生BGP消息;以及向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的BGP消息。
19.如權(quán)利要求16所述的方法,還包括檢測工作控制器系統(tǒng)中的失敗;在備用控制器系統(tǒng)中維護(hù)與失敗前的工作控制器系統(tǒng)相同的BGP狀態(tài)變化。
20.如權(quán)利要求16所述的方法,還包括執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
21.在具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺的網(wǎng)絡(luò)設(shè)備中的一種方法,包括工作控制器系統(tǒng)接收或產(chǎn)生傳輸控制協(xié)議(TCP)狀態(tài)變化;以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的TCP狀態(tài)變化。
22.如權(quán)利要求21所述的方法,其中復(fù)制接收的或產(chǎn)生的TCP狀態(tài)變化包括把接收的或產(chǎn)生的TCP狀態(tài)變化實(shí)時地從工作控制器系統(tǒng)復(fù)制到備用控制器系統(tǒng)。
23.如權(quán)利要求21所述的方法,還包括工作控制器系統(tǒng)接收或產(chǎn)生TCP消息;以及向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的TCP消息。
24.如權(quán)利要求21所述的方法,還包括檢測工作控制器系統(tǒng)中的失??;在備用控制器系統(tǒng)中維護(hù)與失敗前的工作控制器系統(tǒng)相同的TCP狀態(tài)變化。
25.如權(quán)利要求21所述的方法,還包括執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
26.一種網(wǎng)絡(luò)設(shè)備,包括備用控制器系統(tǒng);工作控制器系統(tǒng),用于接收或產(chǎn)生邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化或傳輸控制協(xié)議(TCP)狀態(tài)變化,以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化或TCP狀態(tài)變化。
27.如權(quán)利要求26所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)實(shí)時地向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化或TCP狀態(tài)變化。
28.如權(quán)利要求26所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)接收或產(chǎn)生BGP消息或TCP消息,并向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的BGP消息或TCP消息。
29.如權(quán)利要求26所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)檢測失敗,備用控制器系統(tǒng)維護(hù)與失敗前的工作控制器系統(tǒng)相同的BGP狀態(tài)變化或TCP狀態(tài)變化。
30.如權(quán)利要求26所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器系統(tǒng)或備用控制器系統(tǒng)執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
31.如權(quán)利要求26所述的網(wǎng)絡(luò)設(shè)備,其中網(wǎng)絡(luò)設(shè)備包括網(wǎng)絡(luò)路由器、開關(guān)、光學(xué)開關(guān)、網(wǎng)橋、集線器、或網(wǎng)關(guān)。
32.一種提供指令的機(jī)器可讀介質(zhì),當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括在工作控制器系統(tǒng)中接收或產(chǎn)生路由協(xié)議狀態(tài)變化;以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
33.如權(quán)利要求32所述的機(jī)器可讀介質(zhì),還提供指令,當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議消息;以及向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議消息。
34.如權(quán)利要求32所述的機(jī)器可讀介質(zhì),還提供指令,當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括檢測工作控制器系統(tǒng)中的失??;在備用控制器系統(tǒng)中維護(hù)與失敗前的工作控制器系統(tǒng)相同的路由協(xié)議狀態(tài)變化。
35.如權(quán)利要求32所述的機(jī)器可讀介質(zhì),還包括提供指令,當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
36.一種網(wǎng)絡(luò),包括一個或多個對等節(jié)點(diǎn);以及一個冗余節(jié)點(diǎn),用于與對等節(jié)點(diǎn)通信,冗余節(jié)點(diǎn)具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺,工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議狀態(tài)變化并向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
37.如權(quán)利要求36所述的網(wǎng)絡(luò),其中路由協(xié)議狀態(tài)變化包括邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化、路由互聯(lián)網(wǎng)協(xié)議(RIP)狀態(tài)變化、開放最短路徑優(yōu)先協(xié)議(OSPF)狀態(tài)變化或中間系統(tǒng)—中間系統(tǒng)協(xié)議(IS-IS)狀態(tài)變化。
38.如權(quán)利要求36所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)實(shí)時地向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化。
39.如權(quán)利要求36所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)接收或產(chǎn)生路由協(xié)議消息和向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的路由協(xié)議消息。
40.如權(quán)利要求39所述的網(wǎng)絡(luò),其中其中路由協(xié)議消息包括BGP消息、RIP消息、OSPF消息或IS-IS消息。
41.如權(quán)利要求36所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)檢測失敗,備用控制器系統(tǒng)維護(hù)與失敗前的工作控制器系統(tǒng)相同的路由協(xié)議狀態(tài)變化。
42.如權(quán)利要求36所述的網(wǎng)絡(luò),其中冗余節(jié)點(diǎn)執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
43.如權(quán)利要求36所述的網(wǎng)絡(luò),其中冗余節(jié)點(diǎn)包括網(wǎng)絡(luò)路由器、開關(guān)、光學(xué)開關(guān)、網(wǎng)橋、集線器或網(wǎng)關(guān)。
44.一種網(wǎng)絡(luò),包括一個或多個對等節(jié)點(diǎn);以及一個冗余節(jié)點(diǎn),用于與對等節(jié)點(diǎn)通信,冗余節(jié)點(diǎn)具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺,工作控制器系統(tǒng)接收或產(chǎn)生邊界網(wǎng)關(guān)協(xié)議(BGP)狀態(tài)變化或傳輸控制協(xié)議(TCP)狀態(tài)變化,并向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化或TCP狀態(tài)變化。
45.如權(quán)利要求44所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)實(shí)時地向備用控制器系統(tǒng)復(fù)制接收的或產(chǎn)生的BGP狀態(tài)變化或TCP狀態(tài)變化。
46.如權(quán)利要求44所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)接收或產(chǎn)生BGP消息或TCP消息,并向備用控制器系統(tǒng)有選擇地復(fù)制接收的或產(chǎn)生的BGP消息或TCP消息。
47.如權(quán)利要求44所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)檢測失敗,備用控制器系統(tǒng)維護(hù)與失敗前的工作控制器系統(tǒng)相同的BGP狀態(tài)變化或TCP狀態(tài)變化。
48.如權(quán)利要求44所述的網(wǎng)絡(luò),其中工作控制器系統(tǒng)或備用控制器系統(tǒng)執(zhí)行互聯(lián)網(wǎng)協(xié)議(IP)3層服務(wù)或多協(xié)議標(biāo)簽交換(MPLS)服務(wù)。
49.如權(quán)利要求44所述的網(wǎng)絡(luò),其中冗余節(jié)點(diǎn)包括網(wǎng)絡(luò)路由器、開關(guān)、光學(xué)開關(guān)、網(wǎng)橋、集線器或網(wǎng)關(guān)。
50.在具有工作系統(tǒng)和備用系統(tǒng)的網(wǎng)絡(luò)設(shè)備中的一種方法,包括在備用系統(tǒng)中實(shí)時維護(hù)工作控制器系統(tǒng)接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化;檢測工作系統(tǒng)中的失??;以及由備用控制器系統(tǒng)利用維護(hù)的路由協(xié)議狀態(tài)變化繼續(xù)運(yùn)行。
51.如權(quán)利要求50所述的方法,還包括將工作系統(tǒng)的運(yùn)行切換到備用系統(tǒng),以便對等節(jié)點(diǎn)觀察不到切換。
52.如權(quán)利要求51所述的方法,其中由備用控制器系統(tǒng)繼續(xù)運(yùn)行包括由備用控制器系統(tǒng)繼續(xù)運(yùn)行,以便與工作系統(tǒng)的路由協(xié)議會話不被拆除。
53.一種網(wǎng)絡(luò)設(shè)備,包括備用卡;以及工作卡,用于存儲持久數(shù)據(jù)、會話數(shù)據(jù)和路由信息,并向備用卡實(shí)時復(fù)制持久數(shù)據(jù)、會話數(shù)據(jù)和路由信息。
54.如權(quán)利要求53所述的網(wǎng)絡(luò)設(shè)備,其中工作卡產(chǎn)生持久數(shù)據(jù)、會話數(shù)據(jù)和路由信息的變化,并向備用卡復(fù)制這些變化。
55.如權(quán)利要求53所述的網(wǎng)絡(luò)設(shè)備,其中工作卡從對等節(jié)點(diǎn)接收持久數(shù)據(jù)、會話數(shù)據(jù)和路由信息的變化,并向備用卡復(fù)制來自對等節(jié)點(diǎn)的變化。
56.在具有包括工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺的網(wǎng)絡(luò)設(shè)備中的一種方法,包括工作控制器系統(tǒng)從對等節(jié)點(diǎn)接收路由協(xié)議狀態(tài)變化;向備用控制器系統(tǒng)發(fā)送路由協(xié)議狀態(tài)變化;由工作控制器系統(tǒng)從備用控制器系統(tǒng)接收路由協(xié)議狀態(tài)變化的提交確認(rèn);在工作控制器系統(tǒng)中提交路由協(xié)議狀態(tài)變化;由工作控制器系統(tǒng)向?qū)Φ裙?jié)點(diǎn)發(fā)送提交確認(rèn)。
57.如權(quán)利要求56所述的方法,還包括在從備用控制器系統(tǒng)中接收到提交確認(rèn)后,向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
58.如權(quán)利要求56所述的方法,還包括在從對等節(jié)點(diǎn)接收到路由協(xié)議狀態(tài)變化后,向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
59.一種網(wǎng)絡(luò)設(shè)備,包括備用控制器;以及工作控制器,用于從對等節(jié)點(diǎn)接收路由協(xié)議狀態(tài)變化,向備用控制器發(fā)送路由協(xié)議狀態(tài)變化,從備用控制器系統(tǒng)接收路由協(xié)議狀態(tài)變化的提交確認(rèn),在從備用控制器接收到提交確認(rèn)后提交路由協(xié)議狀態(tài)變化,向?qū)Φ裙?jié)點(diǎn)發(fā)送提交確認(rèn)。
60.如權(quán)利要求59所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器在從備用控制器接收到提交確認(rèn)后向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
61.如權(quán)利要求59所述的網(wǎng)絡(luò)設(shè)備,其中工作控制器在從對等節(jié)點(diǎn)接收到路由協(xié)議狀態(tài)變化后向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
62.一種提供指令的機(jī)器可讀介質(zhì),當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括工作控制器系統(tǒng)從對等節(jié)點(diǎn)接收路由協(xié)議狀態(tài)變化;向備用控制器系統(tǒng)發(fā)送路由協(xié)議狀態(tài)變化;由工作控制器系統(tǒng)從備用控制器系統(tǒng)接收路由協(xié)議狀態(tài)變化的提交確認(rèn);在工作控制器系統(tǒng)中提交路由協(xié)議狀態(tài)變化;以及由工作控制器系統(tǒng)向?qū)Φ裙?jié)點(diǎn)發(fā)送提交確認(rèn)。
63.如權(quán)利要求62所述的機(jī)器可讀介質(zhì),還提供指令,當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括在從備用控制器接收到提交確認(rèn)后向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
64.如權(quán)利要求62所述的機(jī)器可讀介質(zhì),還提供指令,當(dāng)指令被處理器執(zhí)行時,可使處理器執(zhí)行操作,該操作包括在從對等節(jié)點(diǎn)接收到路由協(xié)議狀態(tài)變化后向路由協(xié)議發(fā)送路由協(xié)議狀態(tài)變化。
全文摘要
公開了一種路由器和路由協(xié)議冗余,以減少網(wǎng)絡(luò)設(shè)備的服務(wù)中斷或降級,從而提高由于網(wǎng)絡(luò)設(shè)備的軟件和硬件失敗導(dǎo)致的網(wǎng)絡(luò)服務(wù)可用性。諸如路由器的網(wǎng)絡(luò)設(shè)備包括具有工作控制器系統(tǒng)和備用控制器系統(tǒng)的冗余平臺。路由協(xié)議狀態(tài)變化由工作控制器系統(tǒng)接收或產(chǎn)生。接收的或產(chǎn)生的路由協(xié)議狀態(tài)變化復(fù)制到備用控制器系統(tǒng)。通過復(fù)制路由協(xié)議狀態(tài)變化,當(dāng)工作控制器系統(tǒng)發(fā)生失敗時,備用控制器系統(tǒng)可維護(hù)網(wǎng)絡(luò)設(shè)備的路由協(xié)議會話。而且,實(shí)時維護(hù)路由協(xié)議的狀態(tài)以處理路由協(xié)議產(chǎn)生的動態(tài)變化。
文檔編號H04L29/14GK1502191SQ01822029
公開日2004年6月2日 申請日期2001年12月6日 優(yōu)先權(quán)日2000年12月7日
發(fā)明者候馳飛, A·古普塔, M·格蘭迪, A·巴赫穆特斯基, 嫉, 漳綠廝夠, 賬 申請人:諾基亞智能邊緣路由器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
克拉玛依市| 泸州市| 洞头县| 老河口市| 长泰县| 海安县| 安阳县| 长宁区| 张北县| 衡阳市| 永宁县| 阳曲县| 湖州市| 南安市| 囊谦县| 阿坝县| 凤城市| 兴隆县| 易门县| 三门峡市| 无锡市| 肥城市| 鲜城| 肥西县| 南溪县| 静海县| 南安市| 德安县| 建瓯市| 文水县| 静安区| 历史| 灌阳县| 富平县| 贵定县| 通河县| 南陵县| 麻阳| 尼木县| 图们市| 奇台县|