專利名稱:在路由器中的控制故障期間保護多播數(shù)據(jù)轉(zhuǎn)發(fā)的系統(tǒng)和方法
技術領域:
本發(fā)明一般地涉及計算機網(wǎng)絡,更具體而言,涉及由計算機網(wǎng)絡的不停止轉(zhuǎn)發(fā)(non-stop forwarding)中間節(jié)點執(zhí)行的多播路由協(xié)議。
背景技術:
計算機網(wǎng)絡中的數(shù)據(jù)通信涉及通過通信鏈路、網(wǎng)段和子網(wǎng)互連的兩個或更多個實體之間的數(shù)據(jù)交換。這些實體一般是運行在諸如末端節(jié)點和中間節(jié)點之類的硬件計算機平臺上的軟件過程。運行在末端節(jié)點上的通信軟件將數(shù)據(jù)通信與其他末端節(jié)點相關并管理數(shù)據(jù)通信。這些節(jié)點一般通過根據(jù)預定義協(xié)議(如傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP))交換離散幀或數(shù)據(jù)分組來進行通信。
諸如路由器之類的中間節(jié)點可以互連子網(wǎng)以擴展計算機網(wǎng)絡的有效“大小”。路由器運行用于指導末端節(jié)點(如主機)之間的數(shù)據(jù)流量的傳輸?shù)穆酚蓞f(xié)議。一般來說,路由器基于包含在分組中的目的地地址前綴(即,由路由協(xié)議用來進行路由(“下一跳”)判決的目的地地址的一部分)來指導網(wǎng)絡流量。這種目的地地址的示例包括因特網(wǎng)協(xié)議(IP)版本4(IPv4)和版本6(IPv6)地址。前綴隱含了IP地址和掩碼的組合,IP地址和掩碼協(xié)同操作來描述路由器可以到達的網(wǎng)絡的區(qū)域或范圍,而路由隱含了一組路徑屬性和前綴的組合。
單播數(shù)據(jù)傳送(即,單播轉(zhuǎn)發(fā))涉及將數(shù)據(jù)分組從末端節(jié)點(“源”)的單個發(fā)送過程轉(zhuǎn)發(fā)到計算機網(wǎng)絡上的末端節(jié)點(“接收者”)的單個接收過程。通常由源發(fā)出的數(shù)據(jù)分組的目的地可以多于一個,但是少于網(wǎng)絡上的所有接收者。這類多播數(shù)據(jù)傳送(即,多播轉(zhuǎn)發(fā))一般被用于隔離網(wǎng)絡上的接收者群組之間的通信。具體而言,IP多播可用于將數(shù)據(jù)散布到網(wǎng)絡上的一大群接收者。
為了實現(xiàn)IP多播,源通常指定目的地IP地址,該地址是消息的多播群組地址,因此只可以代表分組的接收者。IPv4(或IPv6)地址范圍被劃分為不同的前綴,其中一個前綴被指定由IP多播使用。接收者一般向其通信軟件通知其希望接收到去往多播群組地址的消息;這被稱為“加入多播群組”。這些接收成員隨后“偵聽”多播地址,并且當在接收者處接收到多播消息時,其將消息的拷貝傳遞到屬于該群組的每個過程。
IP多播依賴于(i)群組管理協(xié)議來構建并維護本地多播群組成員資格,以及(ii)多播路由協(xié)議來有效地路由分組。因特網(wǎng)群組成員資格協(xié)議(IGMP)管理主機和其本地多播路由器之間的分組通信,讓其加入或離開群組。即,IGMP被用于將來自主機的群組成員資格消息發(fā)送到其直接連接的(“最后一跳”)路由器,指示主機想要作為接收者加入群組(地址)。注意,IGMP是IPv4群組成員資格協(xié)議;傳統(tǒng)的多播偵聽者發(fā)現(xiàn)(MLD)協(xié)議基本類似于IGMP,并且與IGMP執(zhí)行相同的功能,但是是用于IPv6的。當構建了群組成員資格時,多播分組(由IP頭部的目的地地址字段中的多播群組地址標識)被利用多播路由協(xié)議在路由器之間轉(zhuǎn)發(fā)。
多播路由協(xié)議構造經(jīng)過網(wǎng)絡的分發(fā)樹并指導多播轉(zhuǎn)發(fā)。多播分發(fā)樹定義多播流量將經(jīng)過網(wǎng)絡到達群組成員所采取的路徑。這些路徑是基于源或共享多播分發(fā)樹的。當發(fā)起去往多播群組的群組地址的數(shù)據(jù)流量的任何源(主機)使用相同的分發(fā)樹來轉(zhuǎn)發(fā)數(shù)據(jù)到接收者時,多播分發(fā)樹是共享的。相反地,源分發(fā)樹是針對發(fā)起到多播群組的流量的每個源建立的獨立的、最短路徑樹(SPT)。
交會點(rendezvous point)是被指定為共享多播分發(fā)樹的根的特定路由器。網(wǎng)絡中的每個路由器知道每個多播群組的交會點的身份,這是因為共享多播分發(fā)樹以交會點為根。公告協(xié)議(announcement protocol)一般被用于選擇交會點,并向網(wǎng)絡中的所有路由器公告交會點。然而,一種使用公告協(xié)議來將交會點自動通告到網(wǎng)絡中的所有路由器的替換方案是在所有路由器上手工配置交會點的身份。公告協(xié)議的示例包括可以從CiscoSystem Inc.公司得到的自動RP多播協(xié)議和在Fenner等人2003年2月的“Bootstrap Router(BSR)Mechanism for PIM Sparse Mode”,因特網(wǎng)工程任務組,因特網(wǎng)草案,draft-ietf-pim-sm-bsr-03.txt中描述的自舉路由器(BSR)。使用交會點的多播路由協(xié)議的示例包括協(xié)議無關多播稀疏模式(PIM-SM)和雙向PIM(BIDIR-PIM)協(xié)議。不需要交會點的其他多播協(xié)議包括PIM密集模式(PIM-DM)和PIM源特定多播(PIM-SSM)協(xié)議。
IP多播可部署在計算機網(wǎng)絡上,計算機網(wǎng)絡利用特定交會點來針對落在目的地地址前綴內(nèi)的特定群組建立共享多播分發(fā)樹,或者針對發(fā)起到多播群組的流量的每個源建立獨立的SPT。落在不同前綴內(nèi)的任何群組使用不同的交會點,即不同的群組范圍到交會點地址映射。廣而言之,路由器加入朝向交會點或源的多播群組(分發(fā)樹)。朝向交會點或源的路由器上的接口是入口接口。取決于多播路由協(xié)議,通常在路由器上只有一個入口接口用于接收針對特定路由的多播分組。朝向主機(接收者)的路由器上的一個或多個接口是出口接口。主機(接收者)是分發(fā)樹上的葉子或節(jié)點。分組從源發(fā)送到分發(fā)樹的根(交會點或源自身),從而其被朝向分支轉(zhuǎn)發(fā)并轉(zhuǎn)發(fā)到代表接收者的節(jié)點。在每個節(jié)點上,在朝向樹的根的入口接口上接收到分組,并且將分組轉(zhuǎn)發(fā)出朝向接收者或節(jié)點的出口接口。
具體而言,接收者使用IGMP來將加入多播群組地址的請求傳輸?shù)阶詈笠惶酚善鳌B酚善骼弥T如PIM之類的多播路由協(xié)議將該請求傳輸?shù)狡滏溌飞铣蚪粫c(針對共享樹)或源(針對SPT)的鄰居路由器(鄰居)。自動RP或BSR被用于將群組范圍到交會點地址映射配置分發(fā)到參與網(wǎng)絡拓撲的所有啟用PIM的路由器。這些路由器共同構造共享多播分發(fā)樹,該共享多播分發(fā)樹以該群組地址的交會點或源為根,并且具有將數(shù)據(jù)流量向最后一跳路由器“拉動”的分支(鏈路)。注意,只有單個多播路由器(轉(zhuǎn)發(fā)者)應當經(jīng)由樹的特定鏈路轉(zhuǎn)發(fā)針對某一路由的分組。
路由器的底層結構一般包括被組織為控制平面和數(shù)據(jù)平面的功能性組件。控制平面包括管理路由器的流量轉(zhuǎn)發(fā)特征所需的功能性組件。這些組件包括路由協(xié)議、配置信息和基于除了包含在分組內(nèi)的信息以外的其他信息確定數(shù)據(jù)分組的目的地的其他類似功能。另一方面,數(shù)據(jù)平面包括執(zhí)行分組的轉(zhuǎn)發(fā)操作所需的功能性組件。
對于單個處理器路由器,控制和數(shù)據(jù)平面一般實現(xiàn)在單個處理器上。然而,對于某些高性能路由器,這些平面實現(xiàn)在中間節(jié)點的獨立設備中。例如,控制平面可以實現(xiàn)在監(jiān)管者處理器中,而數(shù)據(jù)平面可以實現(xiàn)在硬件輔助設備(如協(xié)同處理器或轉(zhuǎn)發(fā)處理器)內(nèi)。換句話說,數(shù)據(jù)平面一般實現(xiàn)在與實現(xiàn)控制平面的硬件相分離的硬件中。
就操作在監(jiān)管者處理器上的軟件的質(zhì)量和數(shù)量而言,控制平面通常比數(shù)據(jù)平面更復雜。因此,當運行這種復雜代碼時,故障更有可能發(fā)生在監(jiān)管者處理器中。為了確保路由器的高可用性,希望配置路由器使得如果控制平面出現(xiàn)故障,要求運行在監(jiān)管者處理器上的軟件重啟,則數(shù)據(jù)平面繼續(xù)正確操作。由于路由協(xié)議組件的故障或者對該組件的軟件升級,控制平面軟件的重啟可能是必要的。被配置為使得其數(shù)據(jù)平面能夠在控制平面軟件的重啟期間繼續(xù)分組轉(zhuǎn)發(fā)操作的路由器被稱為能夠進行不停止轉(zhuǎn)發(fā)(NSF)的路由器。
能夠進行NSF的路由器體系結構有用的情形包括路由器的控制平面中的預期故障和非預期故障。例如,控制平面中的故障可以包括非預期或非計劃事件(例如,軟件崩潰或硬件錯誤)以及計劃或預期事件(例如,安排的維護)。關于后者,假定希望更新運行在監(jiān)管者處理器上的軟件或者甚至移去并替換處理器以進行維修。這種升級或移去/替換可能導致一個或多個路由協(xié)議的中斷,但是路由器的NSF本質(zhì)允許繼續(xù)經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)。
NSF路由器體系結構已經(jīng)實現(xiàn)在單播轉(zhuǎn)發(fā)引用中,以增強路由器可用性并避免數(shù)據(jù)連通性被干擾。這些先前的實現(xiàn)方式通常要求修改多播路由協(xié)議以添加對NSF的支持。例如,對已知單播路由協(xié)議的修改允許支持路由器協(xié)議故障的合理重啟。當路由器被重啟時,修改后的協(xié)議允許路由器利用其鄰居獲得信息(經(jīng)由協(xié)議消息交換),而不是使鄰居將路由器“視為”完全停止工作,從而避免了對路由拓撲的任何改變。本發(fā)明一部分針對在不修改現(xiàn)有的多播協(xié)議定義的情況下實現(xiàn)多播NSF路由器體系結構的機制。
控制多播路由器的硬件或軟件(即,控制平面中的組件,而不是經(jīng)過路由器的數(shù)據(jù)分組的路徑中的組件)的故障或停工(outage)可能導致經(jīng)過路由器的多播數(shù)據(jù)分組丟失,而無法追索。結果是網(wǎng)絡中多播連通性的丟失和受影響的路由器的可用性降低。本發(fā)明還針對解決在多播路由器的控制故障期間多播數(shù)據(jù)連通性的丟失和可用性的降低。
多播路由器中的NSF恢復涉及發(fā)生故障的多播組件(如PIM)的高效重啟和基于傳統(tǒng)的PIM協(xié)議消息重新建立狀態(tài),直到所有必要的信息都已被恢復為止。在NSF恢復期間,控制平面一般與數(shù)據(jù)平面斷開連接,這實質(zhì)上“凍結”了運行在路由器的數(shù)據(jù)平面中的多播轉(zhuǎn)發(fā)信息庫(MFIB)的內(nèi)容。即,任何發(fā)生在控制平面中的變化都不被傳輸?shù)綌?shù)據(jù)平面,并且不在用于轉(zhuǎn)發(fā)數(shù)據(jù)流量的當前MFIB中反映出來。從而,網(wǎng)絡狀況的改變在恢復時段的持續(xù)時間內(nèi)不對數(shù)據(jù)平面發(fā)生作用。因此,MFIB利用其轉(zhuǎn)發(fā)表的被凍結內(nèi)容“盲目地”(blindly)經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)流量。
然而,某些網(wǎng)絡狀況改變(如單播轉(zhuǎn)發(fā)的改變,這種情況在MFIB利用其被凍結的(“陳舊的”)轉(zhuǎn)發(fā)信息來轉(zhuǎn)發(fā)數(shù)據(jù)流量的期間出現(xiàn))可能導致路由器的鄰居改變其多播轉(zhuǎn)發(fā)。多播協(xié)議通常取決于單播協(xié)議的全遞歸狀態(tài)。影響單播轉(zhuǎn)發(fā)的網(wǎng)絡拓撲的變化(如反向路徑轉(zhuǎn)發(fā)(RPF)狀態(tài))可能導致鄰居改變其多播轉(zhuǎn)發(fā),并開始在不同路徑(鏈路)上發(fā)送多播數(shù)據(jù)流量。例如,鄰居可能改變其多播轉(zhuǎn)發(fā),以使得經(jīng)由用于特定路由的特定鏈路從路由器接收到的數(shù)據(jù)流量被經(jīng)由該鏈路轉(zhuǎn)發(fā)回路由器從其轉(zhuǎn)發(fā)該流量的同一接口上。這導致鏈路上的多個多播轉(zhuǎn)發(fā)者,這可能導致生成重復的分組和/或形成多播環(huán)路。
多播環(huán)路通常比單播環(huán)路壞得多。在單播轉(zhuǎn)發(fā)的情況下,分組穿過單播環(huán)路,直到路由器將分組的生存時間(TTL)參數(shù)遞減到0為止,此時分組被丟棄。而在多播轉(zhuǎn)發(fā)的情況下,每次分組穿過多播環(huán)路并且“命中”具有多于一個出口接口的路由器時,分組被復制,從而導致分組的爆炸式增長。從而,希望避免重復分組的生成和可能的多播環(huán)路的形成。
發(fā)明內(nèi)容
本發(fā)明通過提供一種多播不停止轉(zhuǎn)發(fā)(NSF)路由器體系結構克服了現(xiàn)有技術的缺點,這種體系結構增強了計算機網(wǎng)絡中多播路由器的高可用性。該路由器體系結構還在路由器的控制平面中的一個或多個故障的NSF恢復期間保護了經(jīng)過數(shù)據(jù)平面的多播數(shù)據(jù)轉(zhuǎn)發(fā)。如這里所述,路由器的各種多播組件協(xié)同操作以提供一種多播NSF體系結構的設檢查點和恢復技術,該技術能夠有效地重啟并恢復控制平面故障,而不會丟失數(shù)據(jù)連通性。這些多播組件示例性地包括控制平面中的協(xié)議無關多播(PIM)多播路由協(xié)議和多播路由信息庫(MRIB),以及數(shù)據(jù)平面中的多播轉(zhuǎn)發(fā)信息庫(MFIB)。
多播NSF路由器中的恢復涉及有效地重啟發(fā)生故障的多播組件(如PIM),并基于傳統(tǒng)的PIM協(xié)議消息重新建立狀態(tài),直到所有必要的信息都已被恢復為止。在該上下文中,狀態(tài)的重新建立是指重新構建恢復PIM路由協(xié)議和其運行在鄰居路由器(鄰居)中的對等路由協(xié)議之間的通信,并在這些協(xié)議間交換多播控制消息以能夠重新構造PIM拓撲表。為此,該新型多播NSF技術在路由器的適當操作期間對選擇性信息進行監(jiān)視和持久存儲(即,設檢查點),以使得該信息隨后可以在NSF恢復期間被取得并用于重新建立PIM拓撲表的內(nèi)容或狀態(tài)。根據(jù)所發(fā)明的技術的一方面,被PIM設檢查點的選擇性信息包括(i)群組范圍到交會點地址映射、(ii)數(shù)據(jù)驅(qū)動的事件和(iii)反向路徑轉(zhuǎn)發(fā)(RPF)信息。
根據(jù)所發(fā)明的技術的另一方面,NSF恢復包括具有關聯(lián)時序的多個階段,NSF恢復在控制平面故障后有效地重啟路由器和構成其的多播組件,以消除分組丟失。廣而言之,MFIB在MFIB凍結階段進入NSF模式,MFIB凍結階段響應于控制平面故障(例如,PIM的故障)以及隨后的MFIB和PIM之間的通信連接斷開,“凍結”其轉(zhuǎn)發(fā)表的內(nèi)容。MFIB的凍結保護了數(shù)據(jù)平面中的“陳舊”路由,從而確保了多播數(shù)據(jù)流沿預先存在的路由繼續(xù)通過路由器。發(fā)生故障的控制平面組件(例如PIM)隨后在過程重啟階段期間的定義的時間段內(nèi),在NSF模式中重啟。在設檢查點的數(shù)據(jù)恢復階段中,PIM在進入?yún)f(xié)議相鄰性重新構建階段之前重放設檢查點的信息的第一部分(例如,群組范圍到交會點地址映射和RPF信息),在協(xié)議相鄰性重新構建階段中,PIM與其對等路由協(xié)議構建控制流量通信(例如,PIM Hello相鄰性)。隨后重新進入設檢查點的數(shù)據(jù)恢復階段,以重放該信息的剩余部分(例如,數(shù)據(jù)驅(qū)動的事件)。在MFIB刷新階段中,MFIB和PIM之間的連接(經(jīng)由MRIB)被重新構建,并且MFIB轉(zhuǎn)發(fā)表的內(nèi)容被更新。其后,進入NSF完成階段,其中MFIB(和PIM)轉(zhuǎn)變到正常模式,從而完成NSF恢復。
本發(fā)明還針對一種用于防止在多播路由器的控制平面中的一個或多個故障的NSF恢復期間,多個多播轉(zhuǎn)發(fā)者經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的技術。多播路由器具有功能性底層結構,該功能性底層結構在運行在控制平面中的多播組件(例如,PIM路由協(xié)議)發(fā)生故障和/或軟件重啟的情況下,允許數(shù)據(jù)流量轉(zhuǎn)發(fā)操作在路由器的整個數(shù)據(jù)平面上繼續(xù)進行。另一多播組件(例如,運行在數(shù)據(jù)平面中的MFIB)被配置為防止由于在NSF恢復期間出現(xiàn)的網(wǎng)絡中的路由變化而出現(xiàn)多個多播轉(zhuǎn)發(fā)者。
在示例性實施例中,MFIB被實現(xiàn)為一個或多個多播轉(zhuǎn)發(fā)表,這些多播轉(zhuǎn)發(fā)表被填充以描述如何經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)分組的內(nèi)容。廣而言之,PIM利用路由信息(即,路由)來填充MFIB轉(zhuǎn)發(fā)表的條目,路由信息指定了應當在其上接受傳入多播分組的入口接口,以及應當經(jīng)由其轉(zhuǎn)發(fā)傳入分組的出口接口列表。響應于從鄰居接收到傳入分組,MFIB對其轉(zhuǎn)發(fā)表執(zhí)行查找,以找到與分組的多播目的地地址相匹配的條目的路由。匹配路由指示路由器分組應當被轉(zhuǎn)發(fā)到哪一個出口接口。
如這里所述,觸發(fā)防止多個多播轉(zhuǎn)發(fā)者的狀況是分組在匹配路由的出口接口上到達路由器。在該出口接口上多播分組的到達是數(shù)據(jù)驅(qū)動的事件,該事件指示MFIB中的匹配路由和也轉(zhuǎn)發(fā)分組到該接口的鄰居之間的轉(zhuǎn)發(fā)沖突,這可能導致重復分組和/或多播環(huán)路。一般來說,數(shù)據(jù)平面向控制平面通知數(shù)據(jù)驅(qū)動的事件(經(jīng)由控制信號),并且控制平面解釋該事件以重新收斂到在正確的轉(zhuǎn)發(fā)狀態(tài)上。然而,控制平面在NSF恢復期間與數(shù)據(jù)平面斷開連接,并且MFIB多播轉(zhuǎn)發(fā)表的內(nèi)容被凍結。這迫使MFIB在NSF恢復期間利用其轉(zhuǎn)發(fā)表的被凍結內(nèi)容經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)流量。
根據(jù)所發(fā)明的技術,在發(fā)現(xiàn)在針對其匹配路由的路由器的出口(即,轉(zhuǎn)發(fā))接口上接收到傳入多播分組后,MFIB暫停針對該路由經(jīng)由該接口轉(zhuǎn)發(fā)多播分組。經(jīng)由出口接口的多播分組轉(zhuǎn)發(fā)可以示例性地通過從MFIB轉(zhuǎn)發(fā)表的路由條目中移去該接口來暫停。具體而言,MFIB被配置為假定路由器將丟失與其鄰居的PIM聲明(assert)協(xié)議協(xié)商過程(如果該過程要發(fā)生的話)。因此,MFIB從其轉(zhuǎn)發(fā)接口列表中移去出口接口,從而暫停經(jīng)由該接口轉(zhuǎn)發(fā)多播分組。實質(zhì)上,由于控制平面已發(fā)生故障并且不能立即與鄰居協(xié)商正確的轉(zhuǎn)發(fā),因此MFIB單方面暫停針對該路由經(jīng)由該出口接口轉(zhuǎn)發(fā)分組,以避免可能生成重復分組和/或形成多播環(huán)路。在NSF和控制平面恢復后,MFIB轉(zhuǎn)發(fā)表被利用完整的轉(zhuǎn)發(fā)(路由)信息加以更新。MFIB隨后可以恢復經(jīng)由該接口轉(zhuǎn)發(fā),這觸發(fā)了針對該路由的PIM聲明協(xié)議協(xié)商過程,解決了路由器之間的轉(zhuǎn)發(fā)沖突。
有利地,本發(fā)明消除了修改傳統(tǒng)多播路由協(xié)議的需要,并且可以實現(xiàn)在網(wǎng)絡中的路由器的任何子集上。即,新型NSF設檢查點和恢復技術確保了在鄰居檢測到致命問題并且使多播相鄰性和路由狀態(tài)超時(從而導致多播連通性的丟失)之前,可以在多播路由協(xié)議拓撲表中重新建立狀態(tài)。另外,多播轉(zhuǎn)發(fā)狀態(tài)不被修改或移去,直到路由器的路由協(xié)議被完全恢復并與鄰居重新同步為止。本發(fā)明區(qū)別于先前的NSF解決方案的不同之處在于,其通過協(xié)調(diào)各種多播組件間的恢復,保護了多播數(shù)據(jù)傳送,而不是單播數(shù)據(jù)傳送。
本發(fā)明的以上和進一步的優(yōu)點可以通過結合附圖參考下面的描述來更好地理解,在附圖中,相似的標號指示相同或功能上類似的元件圖1是可以有利地用于本發(fā)明的計算機網(wǎng)絡的示意性框圖;圖2是可以有利地用于本發(fā)明的路由器的實施例的示意性框圖;圖3是圖2的路由器內(nèi)的傳統(tǒng)協(xié)議棧(如因特網(wǎng)通信協(xié)議棧)的示意性框圖;圖4是圖示了圖2的路由器的功能性不停止轉(zhuǎn)發(fā)(NSF)多播底層結構的示意性框圖;圖5是根據(jù)本發(fā)明的示例性設檢查點布置的示意性框圖;圖6A-6C是圖示了用于實現(xiàn)根據(jù)本發(fā)明的NSF恢復的步驟序列的流程圖;圖7是可以有利地用于本發(fā)明的多播轉(zhuǎn)發(fā)信息庫(MFIB)多播轉(zhuǎn)發(fā)表的示例性實施例的示意性框圖;以及圖8是圖示了用于實現(xiàn)本發(fā)明的防止多個多播轉(zhuǎn)發(fā)者的技術的步驟序列的流程圖。
具體實施例方式
圖1是可以有利地用于本發(fā)明的計算機網(wǎng)絡100的示意性框圖。計算機網(wǎng)絡100包括連接到多個節(jié)點(如末端節(jié)點110和中間網(wǎng)絡節(jié)點200)的通信鏈路、網(wǎng)段和子網(wǎng)的集合。鏈路、網(wǎng)段和子網(wǎng)可包括局域網(wǎng)(LAN)120、諸如因特網(wǎng)170之類的廣域網(wǎng)(WAN)和WAN鏈路130,它們由諸如網(wǎng)絡交換機或路由器之類的中間節(jié)點200互連,以形成計算機節(jié)點的網(wǎng)絡。這些節(jié)點通過根據(jù)預定義的一組協(xié)議(如傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP))交換數(shù)據(jù)分組來進行通信。
圖2是可以有利地用于本發(fā)明的路由器(如多播路由器200)的示意性框圖。路由器200包括多個松散耦合的處理器210,這多個處理器210經(jīng)由諸如縱橫制互連(crossbar interconnection)或高速總線之類的互連裝置250連接到多個入口和出口線路卡(線路卡260)。本領域技術人員將認識到,根據(jù)本發(fā)明也可以使用其他路由器平臺,例如單處理器系統(tǒng)或作為多節(jié)點集群的經(jīng)由通信架構互連的多個獨立節(jié)點。在該上下文中,術語“節(jié)點”指包括處理器和由處理器共享的獨立存儲器的計算機或處理器聯(lián)合體。
處理器210示例性地是路由處理器(RP),其被配置為活動和備用RP對,其中每個處理器具有專用存儲器230。存儲器230可包括可由處理器尋址的存儲單元以存儲與本發(fā)明相關聯(lián)的軟件程序和數(shù)據(jù)結構。處理器210可包括用于執(zhí)行軟件程序并操作數(shù)據(jù)結構的處理元件或邏輯。路由器操作系統(tǒng)232(它的多個部分一般駐留在存儲器230中并由處理器執(zhí)行)通過調(diào)用支持運行在處理器上的軟件過程(下面將描述)的網(wǎng)絡操作等等來在功能上組織路由器。本領域技術人員將清楚,其他處理器和存儲器裝置(包括各種計算機可讀介質(zhì))可用于存儲并執(zhí)行與這里描述的所發(fā)明的體系結構有關的程序指令。
在示例性實施例中,線路卡執(zhí)行數(shù)據(jù)流量的轉(zhuǎn)發(fā),而路由處理器處理數(shù)據(jù)流量轉(zhuǎn)發(fā)的路由和控制。每個路由處理器包括兩個中央處理單元(CPU 220),例如Power-PC 7460芯片,其被配置為對稱微處理(SMP)對。CPU SMP對適合于運行路由器操作系統(tǒng)232的單個拷貝并訪問其存儲器空間230。每個線路卡260包括具有多個端口的接口270,這多個端口耦合到接收轉(zhuǎn)發(fā)處理器(FP Rx 280)和發(fā)送轉(zhuǎn)發(fā)處理器(FP Tx290)。FP Rx 280對在路由器的入口線路卡的入口接口上接收的每個分組進行轉(zhuǎn)發(fā)判決,以確定向何處轉(zhuǎn)發(fā)分組。為此,F(xiàn)P Rx使用下面進一步描述的多播轉(zhuǎn)發(fā)信息庫(MFIB)480。在分組要被轉(zhuǎn)發(fā)到路由器的路由處理器之一的情況下,F(xiàn)P Rx利用內(nèi)部FIB(IFIB)來確定分組應當被轉(zhuǎn)發(fā)到哪一路由處理器。類似地,F(xiàn)P Tx 290對經(jīng)由出口線路卡的一個或多個出口接口發(fā)送自路由器的分組執(zhí)行查找操作(利用MFIB 480)。
路由器200的關鍵功能是確定路由器中分組應當被轉(zhuǎn)發(fā)到的一個或多個接口;為了適應這種“路由”,多個路由器協(xié)同操作以確定通過計算機網(wǎng)絡100的最佳路徑。路由功能優(yōu)選地由每個路由器內(nèi)的傳統(tǒng)協(xié)議棧的網(wǎng)絡層執(zhí)行。圖3是傳統(tǒng)網(wǎng)絡協(xié)議棧,如因特網(wǎng)通信協(xié)議棧300的示意性框圖。因特網(wǎng)協(xié)議棧的體系結構由四層代表,按上升順序是網(wǎng)絡接口層308、網(wǎng)絡層306、傳輸層304和應用層302。
較低的網(wǎng)絡接口層308通常是標準化的,并且實現(xiàn)在硬件和固件中,而較高層一般以軟件形式實現(xiàn)。因特網(wǎng)體系結構的主要網(wǎng)絡層協(xié)議是IP協(xié)議(IP)。IP主要是無連接協(xié)議,其提供了被交換分組(在因特網(wǎng)環(huán)境中通常被稱為“數(shù)據(jù)報”)的網(wǎng)間路由、分段和組裝,并且依賴于傳輸協(xié)議以獲得端到端可靠性和其他服務特性。這種傳輸協(xié)議的示例是TCP協(xié)議,TCP協(xié)議由傳輸層304實現(xiàn),并且向因特網(wǎng)體系結構的上層協(xié)議提供了面向連接的、端到端的可靠性服務。術語TCP/IP常用于表示因特網(wǎng)體系結構。
具體而言,網(wǎng)絡層306涉及分組是如何轉(zhuǎn)發(fā)經(jīng)過網(wǎng)絡的,但是其不直接涉及MFIB是如何計算的。多播路由協(xié)議可用于執(zhí)行經(jīng)過計算機網(wǎng)絡的(用于網(wǎng)絡層的)多播路由??梢杂欣赜糜诒景l(fā)明的多播協(xié)議的示例包括協(xié)議無關多播稀疏模式(PIM-SM)和PIM源特定多播(PIM-SSM)路由協(xié)議,以及因特網(wǎng)群組成員協(xié)議(IGMP)。這些協(xié)議是公知的,并且在Fenner等人2004年2月的Protocol Independent Multicast-Sparse Mode(PIM-SM)Protocol Specification(Revised),因特網(wǎng)工程任務組,因特網(wǎng)草案,draft-ietf-pim-sm-v2-new-09.txt和Cain等人2002年10月的InternetGroup Management Protocol,Version 3,Request for Comments(RFC)3376中有詳細描述,這兩個文件通過引用全文包含于此。
PIM依賴于下層的拓撲收集協(xié)議來利用路由填充路由信息庫(RIB420)的單播路由表425(圖4)。這里所用的路由包括一組路徑屬性和前綴的組合等等。RIB存儲單播轉(zhuǎn)發(fā)和PIM 430所需要的那些單播路由的通用路由狀態(tài)。對于感興趣的單播路由(例如,表現(xiàn)為(S,G)多播路由中的源地址和交會點地址的單播地址),PIM將信息緩存在其PIM拓撲表435中。被緩存的信息包括下一跳地址、下一跳接口、連接標志(指示地址是否是被直接連接的)和度量。
RIB表中的路由可以從單播路由表直接提供,或者由獨立的路由協(xié)議提供,所述路由協(xié)議例如邊界網(wǎng)關協(xié)議版本4(BGP4)和BGP4的多協(xié)議擴展(MBGP)。BGP4是用于執(zhí)行經(jīng)過計算機網(wǎng)絡的域間路由(對于網(wǎng)絡層)的域間路由協(xié)議。路由器200(下文中稱為“鄰居”)經(jīng)由可靠的傳輸層連接(如TCP)在自治系統(tǒng)間交換路由和網(wǎng)絡層可到達性信息(NLRI)。相鄰性是在選定的鄰居之間形成的關系,用于交換路由消息并概括(abstract)網(wǎng)絡拓撲。BGP4路由協(xié)議標準是公知的,并且在Y.Rekhter和T.Li的Request for Comments(RFC)1771(1995)中有所描述,這一文件通過引用包含于此。
BGP4通常只能夠承載用于IPv4的路由信息;因此,MBGP將BGP4擴展到允許承載用于多種網(wǎng)絡層協(xié)議(包括IPv6地址)的路由信息。MBGP擴展BGP4以將這些網(wǎng)絡層協(xié)議與下一跳信息和NLRI(包括用于多播轉(zhuǎn)發(fā)的NLRI)相關聯(lián)。地址族標識符(AFI)和后續(xù)地址族標識符(SAFI)被用于標識NLRI的類型和網(wǎng)絡層協(xié)議。MBGP和AFI/SAFI是公知的,并且在Bates等人的RFC 2858(2000)和J.Reynolds等人的RFC1700(1994)中有所描述,這些文件通過引用包含于此。
圖4是圖示路由器200的功能性底層結構400的示意性框圖。功能性底層結構400優(yōu)選地被劃分為控制平面410和數(shù)據(jù)平面470,其中這種劃分是在軟件組件疊加在硬件元件的情況下指定的,硬件元件例如是路由處理器210和線路卡260。數(shù)據(jù)平面組件/元件被配置為從網(wǎng)絡取得數(shù)據(jù)分組并將這些分組提供到路由器的轉(zhuǎn)發(fā)邏輯(反之亦然)。相反地,控制平面組件/元件被用于管理/控制路由器的流量轉(zhuǎn)發(fā)操作。底層結構400允許在控制平面410內(nèi)存在故障和/或軟件重啟的情況下,路由器繼續(xù)在整個數(shù)據(jù)平面470內(nèi)執(zhí)行流量轉(zhuǎn)發(fā)操作。實質(zhì)上,底層結構使得路由器200能夠充當能夠不停止轉(zhuǎn)發(fā)(NSF)的路由器。
在示例性實施例中,路由器操作系統(tǒng)232將多播組件實現(xiàn)為分離的軟件過程,這些軟件過程是可獨立重啟的,并且分布在活動路由處理器210和線路卡260上,活動路由處理器210和線路卡260又是可獨立熱插拔的,并且可以具有冗余(備用)備份。為此,數(shù)據(jù)平面多播組件包括運行在線路卡上的MFIB 1-N 480,而控制平面多播組件包括運行在路由處理器210上的RIB 420、PIM 430、IGMP 440、多播RIB(MRIB 450)和檢查點服務器460??刹僮鞯?,路由器的控制平面在與鄰居交換路由信息后,建立MRIB 450(更具體而言,在其多播路由表455中建立MRIB 450)。例如,PIM向MRIB提供用于每個路由的所選的反向路徑轉(zhuǎn)發(fā)(RPF)地址和接口,這些信息被數(shù)據(jù)平面用來接受分組以經(jīng)過路由器轉(zhuǎn)發(fā)。MRIB 450的主要角色是輔助各種多播組件之間的通信,即,協(xié)調(diào)協(xié)議應用(例如,PIM、IGMP等)之間以及這些協(xié)議和MFIB之間的狀態(tài)分布。因此,MRIB提供下一跳路由器信息和到每個多播目的地的能夠進行多播的路徑。從MRIB中導出MFIB 480,并將其實現(xiàn)為一個或多個多播轉(zhuǎn)發(fā)表700,這一個或多個多播轉(zhuǎn)發(fā)表700填充在線路卡260上,并且其內(nèi)容描述了如何經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)分組。
本發(fā)明針對增強了路由器200的高可用性的多播NSF路由器體系結構。NSF路由器體系結構平衡了路由器的功能性底層結構400,以防止控制平面410中的硬件或軟件故障顯著破壞數(shù)據(jù)平面470的功能,從而在控制故障期間仍能實現(xiàn)多播數(shù)據(jù)轉(zhuǎn)發(fā)。為此,該體系結構使得在硬件或軟件組件發(fā)生故障的同時,其他硬件或軟件組件能夠進入NSF模式以在影響最小的情況下繼續(xù)執(zhí)行其功能。例如,如果路由處理器210被從路由器200中移去,從而使整個控制平面410停止工作(take down),則MFIB 480和MRIB 450之間的連接被打斷,并且MFIB 480進入NSF模式。如果單個組件(例如,PIM 430)發(fā)生故障但是控制平面的其他部分(包括MRIB450)保持可操作,則MRIB 450和PIM 430之間的連接被打斷,并且MRIB 450將發(fā)送消息到MFIB 480,指示其進入NSF模式。
如這里所述,路由器的各種多播組件協(xié)同操作以提供多播NSF體系結構的設檢查點和恢復技術,這種技術能夠有效地重啟和恢復控制平面故障,而不會丟失數(shù)據(jù)連通性。多播NSF路由器中的恢復涉及有效地重啟發(fā)生故障的多播組件(如PIM),并基于傳統(tǒng)PIM協(xié)議消息重新建立狀態(tài),直到所有必要的信息都已被恢復為止。在該上下文中,狀態(tài)的重新建立是指重新構建恢復PIM路由協(xié)議和其運行在鄰居中的對等路由協(xié)議之間的通信,并在這些協(xié)議間交換多播控制消息以能夠重新構造PIM拓撲表。PIM拓撲表435被圖示為位于屬于PIM的存儲器230的一部分中,這樣,對于路由協(xié)議的故障而言不是持久的。從而,當PIM在故障后重啟時,其拓撲表是空的。因此,新型多播NSF技術監(jiān)視并持久存儲(即,設檢查點)選擇性信息,從而使信息在NSF恢復期間可以有效地被取得并被用于重新建立PIM拓撲表的內(nèi)容或狀態(tài)。
I.對各種類型的信息設檢查點本發(fā)明的一個方面涉及最小量的狀態(tài),所述狀態(tài)在控制平面410中被設檢查點,以實現(xiàn)多播NSF技術。這里所用的術語“設檢查點”是指穩(wěn)定狀態(tài)(即,路由器的正確操作)監(jiān)視和軟件組件(例如,多播路由協(xié)議)的選擇性狀態(tài)的持久存儲。具體而言,本發(fā)明的這一方面針對被設檢查點的信息類型的定義,以及該信息被存儲的方式。設檢查點優(yōu)選地以遞增方式發(fā)生,即,遞增地建立協(xié)議在故障后有效地恢復所需的信息的備份存儲。定義了一組包括多播協(xié)議所用的各類選擇性信息的數(shù)據(jù)庫;這些類型的信息被設檢查點是因為這些信息不能經(jīng)過網(wǎng)絡足夠快地恢復以實現(xiàn)有效的多播NSF功能。最小的多播狀態(tài)集被保存在持久位置中,該位置位于故障(例如,多播協(xié)議)范圍外,并且在恢復期間從該處可以有效地取得這些信息。
在示例性實施例中,PIM是對信息/狀態(tài)數(shù)據(jù)庫設檢查點的多播路由協(xié)議。應當注意,本發(fā)明的設檢查點和恢復技術可應用于各種用于PIM的NSF的實現(xiàn)方式,如用于PIM-SM、雙向PIM(BIDIR-PIM)和PIM源特定多播(PIM-SSM)(這里統(tǒng)稱為“PIM”)的NSF。數(shù)據(jù)庫被圖示為存儲在存儲器的一部分(“存儲器窗口”)內(nèi)的檢查點表中,該存儲器在兩個組件,例如PIM 430和檢查點服務器460之間共享。將多播狀態(tài)數(shù)據(jù)庫存儲在共享存儲器窗口中保護了數(shù)據(jù)庫免受實現(xiàn)NSF的多播組件(例如PIM)的故障的影響。盡管在圖示實施例中描述了共享存儲器窗口,但是應當注意,根據(jù)本發(fā)明的設檢查點的方面,也可以使用其他持久存儲技術和機制。
圖5是根據(jù)本發(fā)明的示例性設檢查點布置500的示意性框圖。共享存儲器窗口510優(yōu)選地是活動路由處理器210上的存儲器230的在屬于PIM的存儲器的外部的一部分。PIM 430進入共享存儲器窗口510,以將選擇性信息加載到檢查點表512-518中。當PIM發(fā)生故障時,檢查點服務器460持久地維護窗口510中存儲的信息,直到PIM重啟為止。另外,檢查點表被周期性地從活動路由處理器拷貝到其備用路由處理器,以使得在整個活動路由處理器發(fā)生故障的情況下表可用。從而,存儲了不受任何潛在故障影響的最小的多播狀態(tài)集,包括多播軟件組件和/或運行該組件的硬件元件。
應當注意,針對對選擇性信息設檢查點的一種替換方式是對PIM拓撲表435的整個內(nèi)容設檢查點。然而,拓撲表內(nèi)容是非常易丟失的,即,它們經(jīng)常改變。對于大的拓撲表,足夠快地保存這些易失性內(nèi)容以跟上變化并且仍然能夠執(zhí)行其他所需的協(xié)議處理可能是不實際的。即使這樣作是實際的,由于所需的額外資源(例如存儲器),保存這種大表的內(nèi)容也是很昂貴的(在時間和空間上)。另一種方法是不保存任何PIM拓撲表的內(nèi)容。然后,響應于控制故障和隨后的控制平面的重啟,拓撲表的全部內(nèi)容將不得不被重新構造,這導致啟用PIM的路由器有過量的控制平面和數(shù)據(jù)事件。這又在網(wǎng)絡中產(chǎn)生了攪拌效應(churn),即,除了正在經(jīng)歷故障的一個路由器以外的其他路由器將察覺到多播路由的變化。
從而,本發(fā)明的這一方面標識需要設檢查點的最少量信息,以在不丟失分組的情況下恢復,而不會在網(wǎng)絡中產(chǎn)生攪拌效應,也不用對拓撲表的所有內(nèi)容設檢查點。通過對最少類型的信息設檢查點,PIM可以重新構建其在發(fā)生故障之前的最終狀態(tài),而不必例如重新創(chuàng)建構建該最終狀態(tài)的在先數(shù)據(jù)驅(qū)動的事件的序列。本發(fā)明的這一方面還使得在恢復后必須與鄰居交換的控制消息的量最小。即,本發(fā)明通過使得路由器能夠直接到達其最終狀態(tài),而不經(jīng)過需要與其網(wǎng)絡中的鄰居協(xié)同操作的所有中間狀態(tài),消除了攪拌效應。為了建立該最終狀態(tài),交會點的身份必須是已知的。
a.自動RP群組到交會點映射根據(jù)本發(fā)明,被PIM設檢查點并且被存儲在檢查點表512中的一類信息是群組地址(范圍)到交會點地址的映射。需要對群組范圍到交會點地址的映射設檢查點是需要的,以便確保路由器200知道希望接收到去往多播群組地址的消息的每個接收者多播群組的交會點的身份。如上所述,自動RP和BSR是向計算機網(wǎng)絡中的啟用PIM的路由器連續(xù)分發(fā)群組范圍和交會點之間的映射的公告協(xié)議。PIM 430被圖示為對于其獲知的每一新的(當前的)自動RP或BSR群組映射,對群組范圍(例如,多播群組地址和前綴)和交會點地址(即,交會點的單播IP地址)設檢查點。
b.數(shù)據(jù)驅(qū)動的事件廣而言之,單播路由協(xié)議在其對等體之間交換控制消息,建立拓撲,并填充FIB,F(xiàn)IB被路由器用來經(jīng)過該路由器轉(zhuǎn)發(fā)單播數(shù)據(jù)流量。類似地,多播路由協(xié)議與其對等體交換控制消息,建立多播分布樹,并填充MFIB(例如,通過MRIB)。然而,諸如PIM之類的多播路由協(xié)議并不僅僅基于控制平面通信來建立拓撲;相反地,PIM需要關于在數(shù)據(jù)平面中接收到的分組的信息以建立正確的轉(zhuǎn)發(fā)狀態(tài),MFIB使用該狀態(tài)來轉(zhuǎn)發(fā)分組。換句話說,路由器必須經(jīng)常檢查其轉(zhuǎn)發(fā)的多播分組的數(shù)據(jù),并且還必須將在接口上多播分組的到達考慮為可能在網(wǎng)絡中發(fā)生某種“不尋常事件”的控制事件。由數(shù)據(jù)分組觸發(fā)的控制事件被稱為“數(shù)據(jù)驅(qū)動的”事件。
數(shù)據(jù)驅(qū)動的事件通常特征在于路由信息存儲在MFIB的多播轉(zhuǎn)發(fā)條目中。多播路由協(xié)議利用指定了應當在其上接受傳入多播分組的入口接口以及應當在其上轉(zhuǎn)發(fā)傳入的分組的一組出口接口的信息來填充MFIB條目。一個或多個控制標志可以與條目的每個接口相關聯(lián),其中控制標志指定路由器響應于傳入分組的接收要采取的某些動作/行為??梢杂欣赜糜诒景l(fā)明的控制標志的示例在I.Kouvelas等人于2003年2月28日提交的題為“Multicast-Routing-Protocol-Independent Realization of IP MulticastForwarding”的美國專利申請No.10/376,006中有所提供,該申請的全部內(nèi)容通過引用包含于此。
例如,響應于接收到傳入多播分組,路由器咨詢MFIB以找到與分組的多播目的地地址相匹配的條目。匹配MFIB條目指示路由器分組應當被轉(zhuǎn)發(fā)到哪些出口接口。一般來說,多播分組在單個入口接口上被接受,這單個入口接口即是代表到源的最短路徑的RPF接口,并且被轉(zhuǎn)發(fā)出到已表達了有興趣接收數(shù)據(jù)流量的其他目的地(路由器)的一組出口接口。另外,匹配條目的入口接口可以具有一個或多個聲明的控制標志,這些控制標志指示數(shù)據(jù)平面當在路由器處接收到多播分組時以信號告知控制平面。從而,在該入口接口上多播分組的到達是數(shù)據(jù)驅(qū)動的事件。
數(shù)據(jù)驅(qū)動的事件導致在運行在路由器和其鄰居上的諸如PIM之類的多播路由協(xié)議間交換的控制消息和狀態(tài)的變化。在圖示的多播NSF路由器體系結構中,數(shù)據(jù)平面向控制平面通知該數(shù)據(jù)驅(qū)動的事件(經(jīng)由控制信號),控制平面解釋該事件以重新收斂到正確的轉(zhuǎn)發(fā)狀態(tài)。MFIB 480是數(shù)據(jù)平面470中的多播組件,其向控制平面410中的MRIB 450通知該數(shù)據(jù)驅(qū)動的事件。MRIB隨后將該通知傳遞到PIM 430,PIM 430使用要由路由器轉(zhuǎn)發(fā)的多播數(shù)據(jù)分組的接收來推斷用于轉(zhuǎn)發(fā)分組的當前網(wǎng)絡拓撲的多個部分。由PIM接收的控制信號指示對于在路由器的特定接口處接收到的多播數(shù)據(jù)分組的特定源和群組地址,發(fā)生了數(shù)據(jù)驅(qū)動的事件。從而,多播分組的接收可被解釋為修改MFIB的內(nèi)容的事件信號。
從而很清楚,數(shù)據(jù)驅(qū)動的事件不構成在鄰居間交換的控制狀態(tài),而是包括通過監(jiān)聽(snoope)經(jīng)過路由器的數(shù)據(jù)平面?zhèn)鬟f的數(shù)據(jù)流量而獲得的知識。當從故障中恢復時,多播控制平面組件(例如,PIM路由協(xié)議)不能獲得先前由數(shù)據(jù)平面從其鄰居中的對等路由協(xié)議監(jiān)聽得來的多播數(shù)據(jù)分組的知識。由于其必須在不依賴于數(shù)據(jù)平面的情況下重新構造狀態(tài),因此PIM對這些數(shù)據(jù)驅(qū)動的事件的發(fā)生進行記錄(設檢查點),從而使這些信息在NSF恢復期間可以容易得到。
根據(jù)本發(fā)明,數(shù)據(jù)驅(qū)動的事件包括被PIM 430設檢查點的另一類信息。響應于接收到控制信號,PIM記錄包括源、群組和入口接口的信息元組,作為適當?shù)臋z查點表514-516的條目。盡管該元組是針對由MFIB報告給控制平面的每個數(shù)據(jù)驅(qū)動的事件記錄的,但是應當注意,MFIB不對經(jīng)過路由器傳遞的每一多播數(shù)據(jù)分組生成數(shù)據(jù)驅(qū)動的事件。事實上,大部分分組被轉(zhuǎn)發(fā)經(jīng)過路由器,而不生成事件。然而,如果條目的一個或多個控制標志指定事件已發(fā)生,則MFIB生成控制信號并將其發(fā)送到控制平面,在這里,該事件的發(fā)生被記錄,除非其已經(jīng)被設檢查點。
在示例性實施例中,數(shù)據(jù)驅(qū)動的事件被進一步分為兩類設檢查點,例如,直接連接的第一跳(S,G)路由和最后一跳(S,G)SPT路由,以存儲在獨立的表514-516中。最后一跳SPT路由是指示從最后一跳路由器到源的最短路徑樹(SPT)的構造已完成并且數(shù)據(jù)正在該SPT分支上流動的信號。這些數(shù)據(jù)驅(qū)動的事件被PIM完全在當前PIM拓撲表的上下文中加以解釋,即,PIM 430使用保存在拓撲表435中的附加信息來確定事件的上下文和類型。數(shù)據(jù)驅(qū)動的事件的各種類別被存儲在獨立的檢查點表中,這主要是由于其被重放的順序。在NSF恢復期間,檢查點服務器460在略微不同的時刻重放數(shù)據(jù)驅(qū)動的事件的路由,以協(xié)調(diào)其信息流與由PIM從其他源接收的其他信息進入到PIM拓撲表中的操作。
c.反向路徑轉(zhuǎn)發(fā)(RPF)信息除了自動RP和數(shù)據(jù)驅(qū)動的事件信號之外,另一類可以在重啟后用于PIM的信息是RPF信息,例如源和交會點的前跳路由器的地址。RPF信息包括前一跳路由器(也稱為朝向源或交會點的RPF鄰居)的身份。當主機想要加入朝向源或交會點的共享多播分布樹的最短路徑時,其需要知道向哪個前一跳路由器發(fā)送該加入請求的。在單播術語中,該路由器被稱為下一跳路由器,而在多播術語中其是RPF鄰居。從而,單播下一跳路由器是多播前一跳路由器,這是因為該路由器的地址不再朝向單播分組的目的地,而是朝向多播分組的源。
諸如PIM之類的多播路由協(xié)議從RIB控制平面組件獲得RPF信息。然而,如果有完全的活動路由處理器故障,則例如在重啟后的某段時間內(nèi),RIB 420可能是空的。在圖示的多播NSF體系結構中,單播和多播組件都從活動路由處理器故障轉(zhuǎn)移(failover)到備用路由處理器。換句話說,對于那些提供了用于多播NSF的RPF信息的單播協(xié)議,啟用了單播NSF。這防止了網(wǎng)絡中的其他路由器檢測到單播路由變化,這種變化使其繞過故障處重新收斂并改變路由中的RPF信息,從而增大了多播環(huán)路的可能性。在恢復期間,PIM需要所有源和交會點的RPF前跳,以重建其拓撲表435的正確狀態(tài)。
根據(jù)本發(fā)明的這一方面,對于出現(xiàn)在PIM拓撲表中的每個源或交會點地址(即,每一源和交會點的地址)以及其關聯(lián)的RPF信息,可以應用最少的RPF狀態(tài)。RPF信息通常包括朝向某一路由(其又可以包括會話源或交會點)的前一跳路由器的接口和地址。在圖示實施例中,RPF信息包括前一跳路由器的接口、單播地址和某一度量的單播距離;該信息例如可通過設檢查點或其他手段(如在線路卡上執(zhí)行FIB查找)而對控制平面(PIM)可用。關于前者,RPF信息被存儲在檢查點表518中,直到單播路由協(xié)議重建其狀態(tài)為止。這些協(xié)議隨后向PIM 430通知單播表已經(jīng)收斂,并且使RPF信息經(jīng)由RIB 420對PIM可用。
II.恢復根據(jù)所發(fā)明的技術的另一方面,NSF恢復包括具有關聯(lián)時序的多個階段,該時序在控制平面發(fā)生故障后有效地重啟路由器和構成它的多播組件以避免分組丟失。由于軟件或硬件故障的不同,控制平面故障可以采取單個或多個多播組件故障的形式,從而觸發(fā)路由器中的多播NSF保存轉(zhuǎn)發(fā)狀態(tài)。有計劃的維護(如影響了多播協(xié)議正在其上運行的路由處理器的要求組件重啟或故障轉(zhuǎn)移的軟件升級或降級)在維護期間也將觸發(fā)多播NSF。
廣而言之,MFIB在MFIB凍結(freeze)階段期間進入NSF模式,該階段響應于控制平面故障而“凍結”其轉(zhuǎn)發(fā)表的內(nèi)容,控制平面故障例如是PIM的故障,以及隨后的MFIB和PIM之間的通信連接中斷。MFIB的凍結保護了數(shù)據(jù)平面中的“陳舊”(stale)路由,從而確保了連續(xù)的多播數(shù)據(jù)沿預先存在的路由流經(jīng)路由器。PIM(和任何其他發(fā)生故障的控制平面組件)隨后在過程重啟階段期間的定義的時間段內(nèi),在NSF模式中重啟。在設檢查點的數(shù)據(jù)恢復階段,PIM在進入?yún)f(xié)議相鄰性重新構建階段之前,重放設檢查點的信息的第一部分(例如,群組范圍到交會點地址映射和RPF信息),其中PIM與其對等路由協(xié)議(重新)構建控制流量通信(例如,PIM hello相鄰性)。一旦重新構建了hello相鄰性,PIM加入/刪除(prune)消息就開始在鄰居之間流動,以重新建立故障路由器上的狀態(tài)并刷新鄰居上的狀態(tài)。注意,這種控制流量通信在整個NSF恢復期間持續(xù)。然后重新進入設檢查點的數(shù)據(jù)恢復階段,以重放信息的剩余部分(例如,數(shù)據(jù)驅(qū)動的事件)。在MFIB刷新階段中,MFIB和PIM之間的連接(經(jīng)由MRIB)被重新構建,并且MFIB轉(zhuǎn)發(fā)表的內(nèi)容被更新。其后,進入NSF完成階段,其中MFIB(和PIM)轉(zhuǎn)變到正常模式,從而完成NSF恢復。
圖6A-6C是圖示了用于實現(xiàn)根據(jù)本發(fā)明的NSF恢復的步驟序列的流程圖。該序列開始于步驟600并且進行到步驟602,在步驟602,多播組件(例如PIM)發(fā)生控制平面故障導致MFIB和PIM之間的通信連接斷開。注意,MFIB或者可以自己檢測到連接斷開,或者可以由MRIB通知連接斷開。響應于故障,在步驟604中MFIB和MRIB都進入NSF模式。在步驟606中,MRIB暫停向MFIB分發(fā)路由更新,并且在步驟608中,MFIB“凍結”其轉(zhuǎn)發(fā)表的內(nèi)容,即,MFIB轉(zhuǎn)發(fā)表中的所有路由被標記為“陳舊的”。注意,在進入NSF模式后,設置針對MRIB的定時器(例如,默認為180秒)。
如前所述,MFIB的凍結保護了數(shù)據(jù)平面中的陳舊路由,從而確保了多播分組繼續(xù)沿預先存在的路由流經(jīng)路由器。因此,在步驟610中,MFIB繼續(xù)利用這些陳舊的路由經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)分組。在步驟612中,發(fā)生故障的組件(如PIM和/或IGMP)或者在同一活動路由處理器上,或者在備用路由處理器上,在NSF模式中重啟。作為示例,PIM和/或IGMP的重啟必須發(fā)生在某一時間段(例如,30秒)內(nèi)。每個組件必須在該時間內(nèi)重啟,以使得其可以在其鄰居使關于該組件的任何信息超時之前開始與這些鄰居通信。
如前進一步所述,PIM在穩(wěn)定狀態(tài)操作期間對若干種類型的信息設檢查點,所述信息包括包括自動RP群組范圍到交會點地址映射、RPF下一跳信息和由數(shù)據(jù)驅(qū)動的事件告知的狀態(tài)。PIM 430與檢查點服務器460協(xié)同操作,以在NSF恢復序列中的不同點從存儲在持久共享存儲器窗口510中的每個檢查點表重載(重放)選擇性信息。協(xié)議處理(包括重放過程)被PIM內(nèi)的單個線程執(zhí)行,因此表重放順序發(fā)生。特別地,作為其初始化過程的一部分并且在處理任何外部事件之前,PIM重放從自動RP中恢復的群組范圍到交會點地址映射信息(步驟614)。只要PIM重啟,該檢查點表512的內(nèi)容重放就會發(fā)生,從而使從鄰居接收到的任何更新(例如,加入/刪除消息)可被PIM用來立即開始重新建立狀態(tài)。在步驟616中,PIM重放來自檢查點表518的RPF信息狀態(tài)。
其后,PIM開始在所有活動接口上發(fā)送PIM Hello消息,以重新構建與其鄰居中的對等協(xié)議的相鄰性(步驟618)。為了使多播NSF成功,這些消息必須在其PIM Hello超時(例如,在接收到最后Hello之后105秒)之前被鄰居接收到。Hello消息的選項(例如生成ID)向鄰居通知PIM已重啟。作為響應,鄰居立即向PIM發(fā)送其拓撲表的內(nèi)容(例如,加入/刪除狀態(tài))。通過迅速地重新構建PIM Hello相鄰性和控制流量,可以在多播協(xié)議(如PIM和IGMP)中重新填充狀態(tài),而不會使鄰居檢測到致命問題并繞過路由器200進行路由。由于多播NSF路由器體系結構嘗試在鄰居使PIM Hello鄰居相鄰性“超時”之前,恢復正常的協(xié)議處理和狀態(tài),因此該新技術不需要改變多播路由協(xié)議,并且可以實現(xiàn)在網(wǎng)絡中的路由器的任何子集上。
當在NSF模式中重啟時,或者與PIM一起,或者響應于MRIB對NSF恢復的通知,IGMP 440具有一段時間(例如,60秒),在該段時間內(nèi)它也恢復狀態(tài)。在步驟620中,IGMP在這一期間懇求成員資格報告,并從其所有直接連接的接收者那里接收成員資格報告。在該時間段后,IGMP將已經(jīng)接收到完整的當前的成員資格狀態(tài),并且在步驟622中,發(fā)送針對所有本地接收者的更新到MRIB。在步驟624中,IGMP發(fā)送消息到PIM(經(jīng)由MRIB),向這些組件通知其NSF恢復時段完成。在接收到該消息時,PIM已經(jīng)利用從IGMP導出的最后一跳路由信號信息填充了其拓撲表435。由于IGMP是最后一跳協(xié)議,因此最后一跳路由信號與這樣的路由相關對于該路由,多播路由器200是到其直接連接的接收者的最后一跳。一旦從IGMP接收到所有最后一跳信息,PIM就知道哪些接收者已經(jīng)在故障之前連接到路由器,并且可以重放與這些路由相關的數(shù)據(jù)信號。從而,在步驟626中,PIM重放來自檢查點表516的最后一跳(S,G)SPT路由數(shù)據(jù)信號,從而創(chuàng)建了針對這些路由的最后的、正確的最后一跳狀態(tài)。
在步驟628中,NSF恢復通過在PIM鄰居之間的消息交換而繼續(xù),直到PIM定時器期滿(例如,默認為120秒)為止,這表示從鄰居接收信息所需的時間段的結束。實質(zhì)上,PIM在該時間期間正常操作,從其鄰居接收加入/刪除消息,并從MRIB接收更新。響應于定時器的期滿,PIM開始其恢復的最后階段,這包括重放來自檢查點表514的直接連接的第一跳(S,G)路由(步驟630)。這些直接連接的第一跳信號與這樣的路由相關對于該路由,多播路由器200是到直接連接的源的第一跳。在重放第一跳信號后,PIM退出NSF模式(步驟632),并告知MRIB以完成其NSF恢復(步驟634)。
注意,如果PIM拓撲表435在故障(例如,只有MRIB發(fā)生故障)期間沒有丟失,則PIM 430在同時滿足以下兩種情況之后告知其恢復(i)連接到并完全更新MRIB 450以及(ii)接收到IGMP 440被恢復的通知。然而,如果PIM拓撲表丟失,則PIM將在120秒定時器期滿之后使其NSF模式超時。還注意,在MRIB的定時器時段期間,協(xié)議路由更新和成功NSF恢復的通知在控制平面組件之間重新正常分發(fā),這些控制平面組件協(xié)同操作重新建立MRIB的路由表455。當MRIB定時器期滿時(或者在多播控制平面組件已退出NSF模式之后,無論哪一個先發(fā)生都一樣),MRIB恢復其正常操作,利用其表/數(shù)據(jù)庫中的任何新路由更新MFIB。
例如,響應于接收到PIM已完成其NSF恢復的通知,MRIB將所有已知路由的完整更新發(fā)送到MFIB(步驟638)。在步驟640中,MFIB處理每個路由更新,將更新后的路由安裝到其轉(zhuǎn)發(fā)表中,并移去更新后的路由上的陳舊標志。在將路由更新的完整集合發(fā)送到MFIB之后,MRIB退出NSF模式(步驟642),并將控制平面中NSF完成的通知發(fā)送到MFIB(步驟644)。作為響應,MFIB掃描其轉(zhuǎn)發(fā)表,搜索被標記為陳舊的任何剩余路由(步驟646),并且在發(fā)現(xiàn)這種路由之后,在步驟648中從表中將其移去。MFIB隨后在步驟650中退出NSF模式。注意,如果MFIB在預定義的超時時段(例如,從NSF模式開始起15分鐘)之后未接收到通知信號,從而指示全部控制平面故障,則MFIB將移去陳舊路由,并恢復已被MRIB刷新的路由(如果有的話)上的正常操作。NSF恢復序列隨后在步驟652結束。
III.高可用性示例性實施例還提供了一種增強了路由器200的高可用性的多播NSF路由器體系結構。該NSF路由器體系結構平衡了路由器的功能性底層結構400,以防止控制平面410中的硬件或軟件故障明顯破壞數(shù)據(jù)平面470的功能,從而保護了控制故障期間的多播數(shù)據(jù)轉(zhuǎn)發(fā)。為此,該體系結構使得在硬件或軟件組件發(fā)生故障的同時,其他硬件或軟件組件能夠進入NSF模式,以在最小影響的情況下繼續(xù)執(zhí)行其功能。例如,如果路由處理器210被從路由器200中移去,從而使整個控制平面410停止工作,則MFIB 480和MRIB 450之間的連接被打斷,并且MFIB 480進入NSF模式。如果單個組件(例如,PIM 430)發(fā)生故障但是控制平面的其他部分(包括MRIB450)保持可操作,則MRIB 450和PIM 430之間的連接被打斷,并且MRIB 450將發(fā)送消息到MFIB 480,指示其進入NSF模式。
路由器的各種多播組件協(xié)同操作以能夠有效地重啟和恢復控制平面故障,而不會丟失數(shù)據(jù)連通性。多播NSF路由器中的恢復涉及有效地重啟發(fā)生故障的多播組件(如PIM),并基于傳統(tǒng)PIM協(xié)議消息重新建立狀態(tài),直到所有必要的信息都已被恢復為止。在該上下文中,狀態(tài)的重新建立是指重新構建恢復PIM路由協(xié)議和其運行在鄰居中的對等路由協(xié)議之間的通信,并在這些協(xié)議間交換多播控制消息以能夠重新構造PIM拓撲表。PIM拓撲表435被圖示為位于屬于PIM的存儲器230的一部分中,這樣,對于路由協(xié)議的故障不是持久穩(wěn)固的。從而,當PIM在故障后重啟時,其拓撲表是空的。因此,該多播NSF設檢查點和恢復技術對選擇性信息進行監(jiān)視和持久存儲(即,設檢查點),從而使信息可以在NSF恢復期間有效地被取得并被用于重新建立PIM拓撲表的內(nèi)容或狀態(tài)。
在NSF恢復期間,控制平面410與數(shù)據(jù)平面470斷開連接(例如,在PIM和MFIB之間沒有通信),這實質(zhì)上“凍結”了MFIB多播轉(zhuǎn)發(fā)表700的內(nèi)容。即,任何發(fā)生在控制平面中的變化(例如,PIM拓撲表435和/或MRIB路由表455的變化)都不被傳輸?shù)綌?shù)據(jù)平面,從而,不在用于轉(zhuǎn)發(fā)數(shù)據(jù)流量的當前MFIB中反映出來。例如,響應于網(wǎng)絡狀況的改變(包括來自多播轉(zhuǎn)發(fā)的事件和/或單播轉(zhuǎn)發(fā)的改變)而發(fā)生的對控制平面的更新在NSF恢復時段的持續(xù)時間內(nèi),不對數(shù)據(jù)平面產(chǎn)生作用。因此,MFIB 480利用其轉(zhuǎn)發(fā)表700的被凍結內(nèi)容“盲目地”經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)流量。
然而,某些網(wǎng)絡狀況改變(如單播轉(zhuǎn)發(fā)的改變,這種情況在MFIB利用其被凍結的(“陳舊的”)轉(zhuǎn)發(fā)信息來轉(zhuǎn)發(fā)數(shù)據(jù)流量的期間出現(xiàn))可能導致路由器的鄰居改變其多播轉(zhuǎn)發(fā)。影響單播轉(zhuǎn)發(fā)的網(wǎng)絡拓撲的變化(如RPF狀態(tài))可能導致鄰居改變其多播轉(zhuǎn)發(fā),并開始在不同路徑(鏈路)上發(fā)送多播數(shù)據(jù)流量。例如,鄰居可能改變其多播轉(zhuǎn)發(fā),以使得經(jīng)由用于特定路由的特定鏈路從路由器接收到的數(shù)據(jù)流量被經(jīng)由該鏈路轉(zhuǎn)發(fā)回路由器從其轉(zhuǎn)發(fā)該流量的同一接口上。這導致鏈路上有多個多播轉(zhuǎn)發(fā)者,從而可能導致生成重復的分組和/或形成多播環(huán)路。
可能導致多播環(huán)路形成的重復分組的檢測一般基于來自數(shù)據(jù)平面的數(shù)據(jù)驅(qū)動的事件信號而發(fā)生在控制平面中。數(shù)據(jù)驅(qū)動的事件通常的特征在于存儲在MFIB轉(zhuǎn)發(fā)表700的多播轉(zhuǎn)發(fā)條目中的路由信息。圖7是可以有利地用于本發(fā)明的MFIB多播轉(zhuǎn)發(fā)表700的示例性實施例的示意性框圖。MFIB轉(zhuǎn)發(fā)表700包括多個條目710,每個條目被多播路由協(xié)議(如PIM)利用路由信息(即,路由)填充。每個條目710包括包含多播群組網(wǎng)絡(IP)地址的群組地址字段712、包含源IP地址的源地址字段714和包含指示形成前綴所需的群組(和源)地址的最高有效位的數(shù)目的掩碼值的掩碼字段716。
每個MFIB轉(zhuǎn)發(fā)表條目710還包括指定應當在其上接受傳入多播分組的入口接口的入口接口字段720,以及包含應當經(jīng)由其轉(zhuǎn)發(fā)傳入分組的出口(轉(zhuǎn)發(fā))接口的列表的出口接口字段730。一個或多個控制標志722、732可以與條目的每個接口相關聯(lián),其中控制標志指定響應于傳入分組的接收路由器要采取的某些動作/行為。例如,控制標志F 734指示與條目相匹配的接受的多播分組是否要經(jīng)由關聯(lián)接口轉(zhuǎn)發(fā),控制標志SP 736被用于告知路由處理器多播數(shù)據(jù)分組的到達,控制標志NS 738被用于控制在聲明SP標志736時轉(zhuǎn)發(fā)引擎(即,MFIB)的行為。可以有利地用于本發(fā)明的控制標志的示例在I.Kouvelas等人于2003年2月28日提交的題為“Multicast-Routing-Protocol-Independent Realization of IP MulticastForwarding”的美國專利申請No.10/376,006中有所提供,該申請的全部內(nèi)容通過引用包含于此。
響應于從鄰居接收到傳入分組,MFIB 480對其轉(zhuǎn)發(fā)表700執(zhí)行查找以找到與分組的多播目的地地址相匹配的條目710的路由。匹配路由指示路由器分組應當被轉(zhuǎn)發(fā)到哪些出口接口。對于某些多播路由協(xié)議(如PIM-SM和PIM-SSM),多播分組一般在單個入口接口(即,代表到源的最短路徑的RPF接口)上被接受到,并且被轉(zhuǎn)發(fā)出到已表現(xiàn)出有興趣接收數(shù)據(jù)流量的其他目的地(路由器)的一組出口接口。匹配條目的入口接口720可以具有一個或多個聲明的控制標志722,這些控制標志指示數(shù)據(jù)平面470當在路由器處接收到多播分組時告知控制平面410。從而,在該入口接口上多播分組的到達是數(shù)據(jù)驅(qū)動的事件。
數(shù)據(jù)驅(qū)動的事件導致在運行在路由器和其鄰居上的多播路由協(xié)議(如PIM)間交換的控制消息和狀態(tài)的變化。在示例性多播NSF路由器體系結構中,數(shù)據(jù)平面470向控制平面410通知數(shù)據(jù)驅(qū)動的事件(經(jīng)由控制信號),并且控制平面解釋該事件以重新收斂在正確的轉(zhuǎn)發(fā)狀態(tài)上。MFIB480是數(shù)據(jù)平面中的多播組件,其向控制平面中的MRIB 450通知該數(shù)據(jù)驅(qū)動的事件。MRIB隨后將該通知傳遞到PIM 430,PIM 430使用將要由路由器轉(zhuǎn)發(fā)的多播數(shù)據(jù)分組的接收來推斷用于轉(zhuǎn)發(fā)分組的當前網(wǎng)絡拓撲的多個部分。由PIM接收的控制信號指示對于在路由器的特定接口處接收到的多播數(shù)據(jù)分組的特定源和群組地址712、714,發(fā)生了數(shù)據(jù)驅(qū)動的事件。從而,多播分組的接收可被解釋為修改MFIB轉(zhuǎn)發(fā)表700的內(nèi)容的事件信號。
IV.防止多個多播轉(zhuǎn)發(fā)者在示例性實施例中,如果在用于轉(zhuǎn)發(fā)出路由器的出口接口上接收到分組,則數(shù)據(jù)平面(例如MFIB)將數(shù)據(jù)驅(qū)動的事件傳輸?shù)娇刂破矫?例如PIM)。該路由器和鏈路上其他啟用PIM的路由器(包括轉(zhuǎn)發(fā)分組的鄰居)之間的協(xié)議協(xié)商隨后被用于確定哪一個路由器應當經(jīng)由接口和鏈路轉(zhuǎn)發(fā)流量。這種協(xié)議協(xié)商發(fā)生在控制平面中,要求在所有路由器上PIM組件430都是“活的”(live)。這里,PIM采用傳統(tǒng)的聲明消息來確定哪一個路由器應當經(jīng)由鏈路轉(zhuǎn)發(fā)分組以及哪一個路由器處于故障狀態(tài)。PIM聲明協(xié)議協(xié)商過程是公知的,并且在先前包含的Protocol Independent Multicast-Sparse Mode(PIM-SM)Protocol Specification(Revised),因特網(wǎng)工程任務組,因特網(wǎng)草案,draft-ietf-pim-sm-v2-new-09.txt中有所描述。然而,由于數(shù)據(jù)平面在NSF恢復期間與控制平面斷開連接,因此MFIB 480和PIM430之間的通信被禁用,這導致MFIB盲目轉(zhuǎn)發(fā)流量并且可能生成重復分組或者甚至形成多播環(huán)路。
本發(fā)明還針對一種用于防止在多播路由器200的控制平面410中的一個或多個故障的NSF恢復期間,多個多播轉(zhuǎn)發(fā)者經(jīng)由計算機網(wǎng)絡中的(例如多播分發(fā)樹的)鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的技術。如前所述,路由器的功能性底層結構400允許在運行在控制平面中的多播組件(例如PIM 430)發(fā)生故障和/或軟件重啟的情況下,流量轉(zhuǎn)發(fā)操作在整個數(shù)據(jù)平面470中繼續(xù)。另一多播組件(例如,運行在數(shù)據(jù)平面中的MFIB)被配置為防止由于網(wǎng)絡中的路由變化而造成的多個多播轉(zhuǎn)發(fā)者,這種路由變化是由于在NSF恢復期間繼續(xù)使用陳舊路由而引起的。
觸發(fā)防止多個多播轉(zhuǎn)發(fā)者的條件是分組在匹配路由的出口接口上到達路由器。多播分組到達該出口接口是數(shù)據(jù)驅(qū)動的事件,其指示MFIB中的匹配路由和也轉(zhuǎn)發(fā)分組到該接口的鄰居之間的轉(zhuǎn)發(fā)沖突,該沖突可能導致重復分組和/或多播環(huán)路。一般來說,數(shù)據(jù)平面向控制平面通知該數(shù)據(jù)驅(qū)動的事件(經(jīng)由控制信號),并且控制平面解釋該事件以重新收斂在正確的轉(zhuǎn)發(fā)狀態(tài)上。然而,如前所述,控制平面在NSF恢復期間與數(shù)據(jù)平面的連接斷開,并且MFIB多播轉(zhuǎn)發(fā)表的內(nèi)容被凍結。這迫使MFIB在NSF恢復期間利用其轉(zhuǎn)發(fā)表的被凍結的內(nèi)容經(jīng)過路由器轉(zhuǎn)發(fā)數(shù)據(jù)流量。
根據(jù)所發(fā)明的技術,在發(fā)現(xiàn)在針對其匹配路由的路由器的出口(即,轉(zhuǎn)發(fā))接口上接收到傳入多播分組后,MFIB 480暫停經(jīng)由用于該路由的該接口轉(zhuǎn)發(fā)多播分組。經(jīng)由出口接口的多播分組轉(zhuǎn)發(fā)可以通過從MFIB轉(zhuǎn)發(fā)表700的路由條目中移去該接口來暫停?;蛘撸嗖シ纸M轉(zhuǎn)發(fā)可以通過移去與路由條目710的出口接口相關聯(lián)的F標志734來暫停。具體而言,MFIB被配置為假定(如同以下方式動作)NSF路由器200將丟失與其鄰居的PIM聲明協(xié)議協(xié)商過程(而不執(zhí)行選擇)(如果該過程要發(fā)生的話)。因此,MFIB示例性地從該路由的轉(zhuǎn)發(fā)接口730的列表中移去該出口接口。
注意,MFIB不從轉(zhuǎn)發(fā)表中移去整個路由,而是只移去該路由上的接口的轉(zhuǎn)發(fā)狀態(tài)。這允許鄰居臨時代表多播分布樹上的“活”分支。在該路由的其他出口接口上的轉(zhuǎn)發(fā)將繼續(xù),而不被中斷。而且,路由器的“下游”接收者將繼續(xù)從其他多播轉(zhuǎn)發(fā)者(鄰居)接收分組,直到PIM聲明協(xié)議協(xié)商過程發(fā)生為止。實質(zhì)上,由于控制平面已發(fā)生故障并且不能立即與鄰居協(xié)商正確的轉(zhuǎn)發(fā),因此MFIB單方面暫停針對該路由經(jīng)由該出口接口轉(zhuǎn)發(fā)分組,以避免可能生成重復分組和/或形成多播環(huán)路。
在NSF和控制平面恢復之后,PIM 430和MRIB 450將其完整轉(zhuǎn)發(fā)信息發(fā)送到MFIB 480,以更新轉(zhuǎn)發(fā)表700中的陳舊路由。由于PIM可能還未看見指示多播環(huán)路形成的數(shù)據(jù)事件,因此完整的更新后的路由信息將可能包含指定MFIB應當在該出口接口上轉(zhuǎn)發(fā)(即使該數(shù)據(jù)事件已發(fā)生)的狀態(tài)。當MFIB恢復該接口上的轉(zhuǎn)發(fā)時,在鏈路上的PIM鄰居之間,對于該路由觸發(fā)(發(fā)起)完整的PIM聲明協(xié)議協(xié)商消息交換,以選擇將經(jīng)由鏈路轉(zhuǎn)發(fā)分組的路由器(多播轉(zhuǎn)發(fā)者),從而解決路由器之間的轉(zhuǎn)發(fā)沖突。
圖8是圖示了用于實現(xiàn)本發(fā)明的防止多個多播轉(zhuǎn)發(fā)者的技術的步驟序列的流程圖。該序列開始于步驟800,并且進行到步驟802,在步驟802,在路由器的線路卡接口(在數(shù)據(jù)平面中)接收到傳入多播分組。MFIB對其轉(zhuǎn)發(fā)表執(zhí)行查找,將條目的現(xiàn)有路由與分組相匹配,并且在步驟804中,確定分組是在被用作針對該路由的出口接口的線路卡接口上接收到的。作為響應,MFIB生成數(shù)據(jù)驅(qū)動的事件信號,并將其發(fā)送到控制平面(步驟806)。示例性地,事件信號是通過在分組經(jīng)由其而到達的出口接口上聲明F和NS標志734、738而觸發(fā)的。
在步驟808中,多播分組隨后被轉(zhuǎn)發(fā)(“踢”)到數(shù)據(jù)平面中的轉(zhuǎn)發(fā)處理器(FP Rx 280),該轉(zhuǎn)發(fā)處理器在步驟810中檢查該路由是否是陳舊的(當NSF開始時,所有路由都被標記為陳舊的)。如果路由不是陳舊的(表明NSF恢復不是活動的,并且路由已被更新),則在步驟824中,控制平面(例如PIM)發(fā)起路由器和轉(zhuǎn)發(fā)分組的鄰居之間的聲明協(xié)議協(xié)商過程,以解決轉(zhuǎn)發(fā)沖突,即,確定哪一個路由器應當經(jīng)由接口轉(zhuǎn)發(fā)流量。該序列隨后在步驟826結束。然而,如果路由是陳舊的(從而表明NSF恢復是活動的,并且由于控制平面故障路由還未更新),則MFIB從用于該路由的傳出(出口)接口列表中刪除該出口接口(步驟814),從而防止了路由器經(jīng)由該接口轉(zhuǎn)發(fā)任何進一步的分組到鏈路上。從而,將傳入分組轉(zhuǎn)發(fā)到鏈路的鄰居是將分組轉(zhuǎn)發(fā)到鏈路的唯一多播路由器/轉(zhuǎn)發(fā)者。
當NSF恢復隨后結束時,數(shù)據(jù)平面和控制平面之間的通信被重新構建。在步驟816中,MFIB轉(zhuǎn)發(fā)表中的陳舊路由被利用來自恢復后的控制平面(PIM)的“新”路由更新,并且陳舊位被從路由中移去。在步驟818中,在出口接口處接收到下一傳入多播分組,并且在步驟820中,確定更新后的路由是否仍然指示經(jīng)由該接口轉(zhuǎn)發(fā)分組。如果不是,則序列在步驟826結束;否則,MFIB在步驟822中生成數(shù)據(jù)驅(qū)動的事件信號,并將其發(fā)送到控制平面(PIM)。作為響應,PIM發(fā)起路由器和轉(zhuǎn)發(fā)分組的鄰居之間的聲明協(xié)議協(xié)商過程,以解決轉(zhuǎn)發(fā)沖突(步驟824)。該序列隨后在步驟826結束。
盡管示出并描述了一種用于防止在多播路由器的控制平面中的一個或多個故障的NSF恢復期間,多個多播轉(zhuǎn)發(fā)者經(jīng)由鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的技術的實施例,但是應當理解,在本發(fā)明的精神和范圍內(nèi)可以進行各種其他適應和修改。例如,應當注意,該新技術可以應用于任何只使用每路由單個入口接口,并且采用控制平面轉(zhuǎn)發(fā)者選擇的多播路由協(xié)議。而且,所發(fā)明的技術可以應用于用于PIM的NSF的各種實現(xiàn)方式,例如用于PIM-SM和PIM源特定多播(PIM-SSM)的NSF。
有利地,本發(fā)明消除了對修改傳統(tǒng)多播路由協(xié)議的需要,并且可以實現(xiàn)在網(wǎng)絡中的路由器的任何子集上。即,新型NSF設檢查點和恢復技術確保了在鄰居檢測到致命問題并使多播相鄰性和路由狀態(tài)超時(從而導致多播連通性的丟失)之前,可以在多播路由協(xié)議拓撲表中重新建立狀態(tài)。另外,多播轉(zhuǎn)發(fā)狀態(tài)不被修改或移去,直到路由器的路由協(xié)議被完全恢復并且再次與鄰居同步為止。本發(fā)明區(qū)別于先前的NSF解決方案的不同之處在于其通過協(xié)調(diào)各種多播組件之間的恢復,保護了多播數(shù)據(jù)傳送,而不是單播數(shù)據(jù)傳送。
前述描述針對本發(fā)明的特定實施例。然而,應當清楚,可以對所述實施例進行其他變化和修改,同時獲得其優(yōu)點中的某些或全部。例如,可以明確地預期到,本發(fā)明的教導(包括這里描述的各種多播組件)可以實現(xiàn)為軟件(包括具有運行在計算機上的程序指令的計算機可讀介質(zhì))、硬件、固件或其組合。另外,應當理解,這里描述的數(shù)據(jù)結構可包括附加信息,同時仍然在本發(fā)明的范圍內(nèi)。因此,該描述僅被認為是示例性的,而不是限制本發(fā)明的范圍。因此,權利要求的目的是覆蓋所有這些在本發(fā)明的真實精神和范圍內(nèi)的變化和修改。
權利要求
1.一種適合于在從計算機網(wǎng)絡內(nèi)的多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間保護多播數(shù)據(jù)轉(zhuǎn)發(fā)的系統(tǒng),所述系統(tǒng)包括第一多播組件,其適合于在所述路由器的適當操作期間對選擇性信息設檢查點,以用于隨后在NSF恢復期間重新建立拓撲表的內(nèi)容時取得并使用該信息;以及一個或多個第二多播組件,其適合于與所述第一多播組件協(xié)同操作以提供一種NSF恢復技術,該技術使得所述網(wǎng)絡中的路由器能夠有效地重啟和從所述控制平面故障中恢復,而不丟失數(shù)據(jù)連通性。
2.如權利要求1所述的系統(tǒng),其中所述第一多播組件是運行在所述路由器的控制平面中的多播路由協(xié)議。
3.如權利要求2所述的系統(tǒng),其中所述多播路由協(xié)議是協(xié)議無關多播(PIM)路由協(xié)議。
4.如權利要求3所述的系統(tǒng),其中所述拓撲表是PIM拓撲表。
5.如權利要求1所述的系統(tǒng),其中所述被設檢查點的選擇性信息包括群組范圍到交會點地址映射信息,該信息為希望接收到去往多播群組地址的消息的每個接收者多播群組提供了交會點的身份。
6.如權利要求1所述的系統(tǒng),其中所述被設檢查點的選擇性信息包括導致了在所述路由器和其網(wǎng)絡中的鄰居之間交換的控制消息和狀態(tài)的變化的數(shù)據(jù)驅(qū)動的事件信息。
7.如權利要求1所述的系統(tǒng),其中所述被設檢查點的選擇性信息包括反向路徑轉(zhuǎn)發(fā)信息,該信息指定所述網(wǎng)絡中源和交會點的前一跳路由器的地址。
8.如權利要求1所述的系統(tǒng),其中所述第一多播組件是運行在所述路由器的控制平面中的協(xié)議無關多播(PIM)路由協(xié)議,所述一個或多個第二多播組件是運行在所述路由器的數(shù)據(jù)平面中的多播轉(zhuǎn)發(fā)信息庫(MFIB)。
9.如權利要求8所述的系統(tǒng),其中所述NSF恢復包括具有關聯(lián)時序的多個階段。
10.如權利要求9所述的系統(tǒng),其中NSF恢復的第一階段包括MFIB凍結階段,該階段使MFIB轉(zhuǎn)變到NSF模式,并凍結MFIB轉(zhuǎn)發(fā)表的內(nèi)容以保護所述數(shù)據(jù)平面中的陳舊路由,從而確保多播數(shù)據(jù)繼續(xù)沿預先存在的路由流經(jīng)所述路由器。
11.如權利要求10所述的系統(tǒng),其中NSF恢復的第二階段包括過程重啟階段,該階段在定義的時間段內(nèi),在NSF模式中重啟發(fā)生故障的控制平面組件。
12.如權利要求11所述的系統(tǒng),其中所述發(fā)生故障的控制平面組件是所述PIM路由協(xié)議。
13.如權利要求12所述的系統(tǒng),其中NSF恢復的第三階段包括設檢查點的數(shù)據(jù)恢復階段,該階段重放所述被設檢查點的選擇性信息的第一部分。
14.如權利要求13所述的系統(tǒng),其中所述被設檢查點的選擇性信息的第一部分包括群組范圍到交會點地址映射和反向路徑轉(zhuǎn)發(fā)信息。
15.如權利要求13所述的系統(tǒng),其中NSF恢復的第四階段包括協(xié)議相鄰性重新構建階段,該階段在返回到所述第三階段以重放所述被設檢查點的選擇性信息的剩余部分之前與所述計算機網(wǎng)絡的鄰居路由器中的對等路由協(xié)議建立控制流量通信。
16.如權利要求15所述的系統(tǒng),其中所述被設檢查點的選擇性信息的剩余部分包括數(shù)據(jù)驅(qū)動的事件信號。
17.如權利要求15所述的系統(tǒng),其中NSF恢復的第五階段包括MFIB刷新階段,該階段建立MFIB和PIM之間的通信連接,并且更新所述MFIB轉(zhuǎn)發(fā)表的內(nèi)容。
18.如權利要求17所述的系統(tǒng),其中NSF恢復的第六階段包括NSF完成階段,該階段使MFIB和PIM轉(zhuǎn)變到正常模式,從而完成NSF恢復。
19.一種用于在從計算機網(wǎng)絡內(nèi)的多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間保護多播數(shù)據(jù)轉(zhuǎn)發(fā)的方法,所述方法包括以下步驟在所述路由器的適當操作期間對選擇性信息設檢查點,以用于隨后在NSF恢復期間重新建立拓撲表的內(nèi)容時取得并使用該信息;以及根據(jù)NSF恢復技術重啟發(fā)生故障的多播控制平面組件,該技術使所述網(wǎng)絡中的路由器能夠有效地從所述控制平面故障中恢復,而不丟失數(shù)據(jù)連通性。
20.如權利要求19所述的方法,其中所述重啟步驟包括提供具有關聯(lián)時序的多個NSF恢復階段的步驟。
21.一種適合于在從計算機網(wǎng)絡內(nèi)的多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間保護多播數(shù)據(jù)轉(zhuǎn)發(fā)的裝置,所述裝置包括用于在所述路由器的適當操作期間對選擇性信息設檢查點,以用于隨后在NSF恢復期間重新建立拓撲表的內(nèi)容時取得并使用該信息的裝置;以及用于根據(jù)NSF恢復技術重啟發(fā)生故障的多播控制平面組件的裝置,該技術使所述網(wǎng)絡中的路由器能夠有效地從所述控制平面故障中恢復,而不丟失數(shù)據(jù)連通性。
22.一種包含可執(zhí)行程序指令的計算機可讀介質(zhì),所述可執(zhí)行程序指令用于在從計算機網(wǎng)絡內(nèi)的多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間保護多播數(shù)據(jù)轉(zhuǎn)發(fā),所述可執(zhí)行程序指令包括用于執(zhí)行以下步驟的程序指令在所述路由器的適當操作期間對選擇性信息設檢查點,以用于隨后在NSF恢復期間重新建立拓撲表的內(nèi)容時取得并使用該信息;以及根據(jù)NSF恢復技術重啟發(fā)生故障的多播控制平面組件,該技術能夠使所述網(wǎng)絡中的路由器能夠有效地從所述控制平面故障中恢復,而不丟失數(shù)據(jù)連通性。
23.一種用于防止多個多播轉(zhuǎn)發(fā)者在多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的方法,所述方法包括以下步驟利用路由填充所述路由器的多播轉(zhuǎn)發(fā)表的條目,每個路由條目指定用于在所述路由器處接受傳入多播分組的入口接口和用于從所述路由器轉(zhuǎn)發(fā)所述傳入分組的出口接口列表;在所述路由器的一個接口上接收所述傳入多播分組;將所述多播轉(zhuǎn)發(fā)表的路由條目與所述傳入多播分組相匹配;發(fā)現(xiàn)對于所述匹配路由條目,所述接口是所述出口接口列表的出口接口;以及暫停經(jīng)由所述出口接口轉(zhuǎn)發(fā)所述傳入多播分組,從而防止多個多播轉(zhuǎn)發(fā)者在NSF恢復期間經(jīng)由所述鏈路轉(zhuǎn)發(fā)針對所述路由的多播分組。
24.如權利要求23所述的方法,其中所述匹配步驟包括以下步驟由多播轉(zhuǎn)發(fā)信息庫(MFIB)對所述多播轉(zhuǎn)發(fā)表執(zhí)行查找操作,以找到與所述傳入分組的多播目的地地址相匹配的路由條目。
25.如權利要求24所述的方法,還包括以下步驟配置MFIB以以下方式動作如果所述路由器與所述路由器的鄰居的聲明協(xié)議協(xié)商過程要發(fā)生的話,則所述路由器將丟失該過程。
26.如權利要求23所述的方法,其中所述暫停步驟還包括以下步驟從所述多播轉(zhuǎn)發(fā)表的匹配路由條目的出口接口列表中移去所述出口接口。
27.如權利要求26所述的方法,還包括以下步驟在NSF恢復之后利用完全的轉(zhuǎn)發(fā)(路由)信息更新所述多播轉(zhuǎn)發(fā)表;恢復經(jīng)由所述出口接口轉(zhuǎn)發(fā)后續(xù)傳入多播分組;以及發(fā)起針對所述路由的聲明協(xié)議協(xié)商過程,以解決鄰居路由器和所述多播路由器之間的轉(zhuǎn)發(fā)沖突。
28.一種被配置為防止多個多播轉(zhuǎn)發(fā)者在多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的系統(tǒng),所述系統(tǒng)包括具有多個條目的所述路由器的多播轉(zhuǎn)發(fā)表,每個條目指定用于在所述路由器處接受傳入多播分組的入口接口和用于從所述路由器轉(zhuǎn)發(fā)所述傳入分組的出口接口列表;以及所述路由器的多播轉(zhuǎn)發(fā)信息庫(MFIB),所述MFIB被配置為將在所述路由器的接口上接收到的傳入多播分組與所述多播轉(zhuǎn)發(fā)表的條目相比較以找到匹配條目,并且在發(fā)現(xiàn)對于所述匹配條目,所述接口是所述出口接口列表的出口接口后,暫停經(jīng)由所述出口接口轉(zhuǎn)發(fā)所述傳入多播分組,從而防止多個多播轉(zhuǎn)發(fā)者在NSF恢復期間經(jīng)由所述鏈路轉(zhuǎn)發(fā)針對所述路由的多播分組。
29.如權利要求28所述的系統(tǒng),還包括所述路由器的數(shù)據(jù)平面,所述數(shù)據(jù)平面被配置為在運行在所述控制平面中的多播組件存在故障和軟件重啟兩種情況之一的情況下,允許數(shù)據(jù)流量轉(zhuǎn)發(fā)操作經(jīng)過所述路由器繼續(xù)進行。
30.如權利要求29所述的系統(tǒng),其中所述多播組件是協(xié)議無關多播(PIM)路由協(xié)議模塊。
31.如權利要求29所述的系統(tǒng),其中所述MFIB運行在所述數(shù)據(jù)平面中,以避免由于在NSF恢復期間出現(xiàn)的網(wǎng)絡中的路由變化而導致可能生成重復分組并形成多播數(shù)據(jù)環(huán)路。
32.如權利要求29所述的系統(tǒng),其中在所述出口接口上傳入多播分組的接收是數(shù)據(jù)驅(qū)動的事件,該事件指示所述匹配條目和所述路由器的轉(zhuǎn)發(fā)所述分組到所述出口接口的鄰居之間的轉(zhuǎn)發(fā)沖突。
33.一種被配置為防止多個多播轉(zhuǎn)發(fā)者經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的系統(tǒng),所述系統(tǒng)包括具有功能性底層結構的多播路由器,所述功能性底層結構在運行在所述路由器的控制平面中的第一多播組件存在故障的情況下,允許數(shù)據(jù)流量轉(zhuǎn)發(fā)操作在所述路由器的整個數(shù)據(jù)平面上繼續(xù)進行;以及運行在所述數(shù)據(jù)平面中的第二多播組件,所述第二多播組件被配置為防止由于在所述控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間出現(xiàn)的網(wǎng)絡中的路由變化而出現(xiàn)多個多播轉(zhuǎn)發(fā)者。
34.如權利要求33所述的系統(tǒng),其中所述第一多播組件是協(xié)議無關多播(PIM)路由協(xié)議模塊,所述第二多播組件是多播轉(zhuǎn)發(fā)信息庫(MFIB)。
35.如權利要求34所述的系統(tǒng),還包括具有多個條目的所述路由器的多播轉(zhuǎn)發(fā)表,每個條目指定用于在所述路由器處接受傳入多播分組的入口接口和用于轉(zhuǎn)發(fā)來自所述路由器的傳入分組的出口接口列表。
36.如權利要求35所述的系統(tǒng),其中所述MFIB被配置為將在所述路由器的接口上接收到的傳入多播分組與所述多播轉(zhuǎn)發(fā)表的條目相比較以找到匹配條目,并且在發(fā)現(xiàn)對于所述匹配條目,所述接口是所述出口接口列表的出口接口后,從所述多播轉(zhuǎn)發(fā)表的匹配條目的出口接口列表中移去所述出口接口,從而防止在NSF恢復期間出現(xiàn)經(jīng)由所述鏈路針對所述路由的多個多播轉(zhuǎn)發(fā)者。
37.如權利要求33所述的系統(tǒng),其中觸發(fā)防止多個多播轉(zhuǎn)發(fā)者的條件是多播分組在與所述分組相匹配的路由的出口接口上到達所述路由器。
38.如權利要求37所述的系統(tǒng),其中在所述出口接口上的多播分組的到達是數(shù)據(jù)驅(qū)動的事件,該事件指示所述匹配路由和所述路由器的轉(zhuǎn)發(fā)所述分組到所述出口接口的鄰居之間的轉(zhuǎn)發(fā)沖突。
39.一種適合于防止多個多播轉(zhuǎn)發(fā)者在多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組的裝置,所述裝置包括用于利用路由填充所述路由器的多播轉(zhuǎn)發(fā)表的條目的裝置,每個路由條目指定用于在所述路由器處接受傳入多播分組的入口接口和用于從所述路由器轉(zhuǎn)發(fā)所述傳入分組的出口接口列表;用于在所述路由器的一個接口上接收所述傳入多播分組的裝置;用于將所述多播轉(zhuǎn)發(fā)表的路由條目與所述傳入多播分組相匹配的裝置;用于發(fā)現(xiàn)對于所述匹配路由條目,所述接口是所述出口接口列表的出口接口的裝置;以及用于暫停經(jīng)由所述出口接口轉(zhuǎn)發(fā)所述傳入多播分組,從而防止多個多播轉(zhuǎn)發(fā)者在NSF恢復期間經(jīng)由所述鏈路轉(zhuǎn)發(fā)針對所述路由的多播分組的裝置。
40.如權利要求39所述的裝置,其中所述用于暫停的裝置還包括用于從所述多播轉(zhuǎn)發(fā)表的匹配路由條目的出口接口列表中移去所述出口接口的裝置。
41.一種包含可執(zhí)行程序指令的計算機可讀介質(zhì),所述可執(zhí)行程序指令用于防止多個多播轉(zhuǎn)發(fā)者在多播路由器的控制平面故障的不停止轉(zhuǎn)發(fā)(NSF)恢復期間經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組,所述可執(zhí)行程序指令包括用于執(zhí)行以下步驟的程序指令在所述路由器的接口上接收所述傳入多播分組;將所述多播轉(zhuǎn)發(fā)表的路由條目與所述傳入多播分組相匹配;發(fā)現(xiàn)對于所述匹配路由條目,所述接口是所述出口接口列表的出口接口;以及暫停經(jīng)由所述出口接口轉(zhuǎn)發(fā)所述傳入多播分組,從而防止多個多播轉(zhuǎn)發(fā)者在NSF恢復期間經(jīng)由所述鏈路轉(zhuǎn)發(fā)針對所述路由的多播分組。
42.如權利要求41所述的計算機可讀介質(zhì),其中所述用于暫停的一個或多個程序指令還包括用于執(zhí)行以下步驟的一個或多個程序指令從所述多播轉(zhuǎn)發(fā)表的匹配路由條目的出口接口列表中移去所述出口接口。
全文摘要
多播不停止轉(zhuǎn)發(fā)(NSF)路由器體系結構增強了計算機網(wǎng)絡中多播路由器(400)的高可用性。該路由器體系結構還在路由器(400)的控制平面(410)中的一個或多個故障的NSF恢復期間,保護了經(jīng)過數(shù)據(jù)平面(470)的多播數(shù)據(jù)轉(zhuǎn)發(fā)。路由器(400)的各種多播組件協(xié)同操作以提供一種多播NSF體系結構的設檢查點和恢復技術,該技術能夠有效地重啟和恢復控制平面故障,而不會丟失數(shù)據(jù)連通性。另外,一種技術防止了在多播路由器(400)的控制平面(410)中的一個或多個故障的NSF恢復期間,多個多播轉(zhuǎn)發(fā)者經(jīng)由計算機網(wǎng)絡中的鏈路轉(zhuǎn)發(fā)針對一條路由的多播分組。
文檔編號G01R31/08GK1969491SQ200580019458
公開日2007年5月23日 申請日期2005年7月20日 優(yōu)先權日2004年7月23日
發(fā)明者科特·J·溫迪石, 偉遜·李, 伊斯迪奧斯·庫韋拉斯 申請人:思科技術公司