合到多于一個來自上游的路徑的節(jié)點。
[0030]另外,術(shù)語“鏈路”、“接口”或“鄰居”可意味著“物理”或“虛擬”鏈路、接口或鄰居。“物理”鏈路意味著兩個節(jié)點之間的方向連接。物理接口或鄰居意味著經(jīng)由物理鏈路耦合到另一接口 /節(jié)點的接口 /節(jié)點。“虛擬”鏈路可以是兩個節(jié)點之間的較低層隧道或復(fù)雜網(wǎng)絡(luò)。虛擬接口 /節(jié)點意味著經(jīng)由物理鏈路耦合到另一接口 /節(jié)點的接口 /節(jié)點。例如,經(jīng)由復(fù)雜以太網(wǎng)連接的兩個IP路由器是在IP級的“虛擬鄰居”。
[0031 ] 本發(fā)明的實施例提供了基于PM-SM的快速重新路由機制,該機制比基于MoFRR和MRT的現(xiàn)有技術(shù)更帶寬有效并且對網(wǎng)絡(luò)故障反應(yīng)更快速。相對于帶寬效率,本發(fā)明的實施例提供了活動-備用(live-standby)模式,在此模式中后備(次級)路徑處于備用直到檢測到故障為止。當(dāng)網(wǎng)絡(luò)中沒有故障時,備用路徑不攜帶多播數(shù)據(jù)分組,由此降低網(wǎng)絡(luò)帶寬的消耗。在一個實施例中,當(dāng)在阻止多播流的網(wǎng)絡(luò)的分支點接收到上游激活分組(UAP)時,激活備用路徑。相對于故障反應(yīng)速度,本發(fā)明的實施例提供了當(dāng)網(wǎng)絡(luò)節(jié)點檢測到故障時在網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)平面中生成和處理的下游快速通知分組(DFNP)。使用DFNP改進了對非本地故障(即遠(yuǎn)程故障,或等效地,在離開多于一跳的節(jié)點或鏈路發(fā)生的故障)的反應(yīng)的速度和可靠性。UAP和/或DFNP可用在支持MRT或MoFRR的多播網(wǎng)絡(luò)中。
[0032]圖1A圖示了包含多個網(wǎng)絡(luò)節(jié)點(“節(jié)點”)的多播通信網(wǎng)絡(luò)12。多播通信網(wǎng)絡(luò)12是運營商的網(wǎng)絡(luò)。公共源節(jié)點(例如節(jié)點Sll)經(jīng)由多播樹拓?fù)湎蛉舾善涠嗖ト喊l(fā)送多播數(shù)據(jù)。公共源節(jié)點可以是MCI或多播群的分支節(jié)點。多播接收節(jié)點(例如節(jié)點R14)(也被稱為多播出口節(jié)點(MCE))是耦合到多播訂戶的節(jié)點,或者耦合到存在多播訂戶的相鄰域的域出口節(jié)點。多播樹的葉節(jié)點通常是MCE。在公共源節(jié)點與多播樹的葉節(jié)點之間的是若干內(nèi)部節(jié)點(例如節(jié)點N13)。多播數(shù)據(jù)經(jīng)由內(nèi)部節(jié)點從公共源節(jié)點到葉節(jié)點向下游流動。在一個實施例中,內(nèi)部節(jié)點中的一個或多個也可以是MCE。
[0033]圖1B圖示了用于多播通信網(wǎng)絡(luò)100的網(wǎng)絡(luò)配置的示例。一個或多個節(jié)點從圖1B中可在MCI與節(jié)點A之間省略。在如下描述中,多播通信網(wǎng)絡(luò)100將被用作示例網(wǎng)絡(luò)。
[0034]圖2A和2B圖示了基于圖1的多播通信網(wǎng)絡(luò)100配置的MRT多播樹(藍(lán)樹210和紅樹220)的示例。藍(lán)樹210和紅樹220都是有向樹。圖2A的藍(lán)樹210可被指定為初級多播樹。藍(lán)樹210中的每個細(xì)箭頭指示初級路徑或其在MCI與給定節(jié)點之間的部分。圖2B的紅樹220可被指定為次級多播樹。紅樹220中的每個細(xì)箭頭指示次級路徑或其在MCI與給定節(jié)點之間的部分。在實現(xiàn)“活動-活動”保護模式的情形下,藍(lán)樹210和紅樹220都消耗帶寬,甚至當(dāng)網(wǎng)絡(luò)中沒有故障時。紅樹220中的粗箭頭指示當(dāng)網(wǎng)絡(luò)中沒有故障時多余的帶寬消耗。根據(jù)后面詳細(xì)描述的本發(fā)明實施例,MRT多播樹可操作在“活動-備用”模式,其中紅樹220不消耗帶寬,直到檢測到節(jié)點/鏈路的故障為止。
[0035]圖3A-3C圖示了支持MoFRR的網(wǎng)絡(luò)段的示例。圖3A圖示了圖1的多播通信網(wǎng)絡(luò)100的網(wǎng)絡(luò)段310的示例。假定,節(jié)點C是網(wǎng)絡(luò)段310中的唯一 MCE。連接MC1->A->B_>C的頂部細(xì)線形成了由PM-SM定義的初級多播樹。此多播樹中的每個鏈路表示初級路徑。連接A->J->C的粗線表示由節(jié)點C的MoFRR添加的次級后備路徑。從而,在此示例中,節(jié)點C是雙加入節(jié)點。在“活動-活動”保護模式中,這些粗線表示當(dāng)網(wǎng)絡(luò)中不存在故障時多余的帶寬使用。在“活動-備用”模式下,粗線不消耗帶寬。MoFRR不一定為每一個節(jié)點提供后備路徑;例如,對于節(jié)點A的故障,沒有保護。
[0036]圖3B圖示了圖1的多播通信網(wǎng)絡(luò)100中的網(wǎng)絡(luò)段320的另一示例。假定,節(jié)點C、E和G是網(wǎng)絡(luò)段320中的MCE。連接MC1->F_>G的頂部細(xì)線形成了由PM-SM定義的多播樹。連接到節(jié)點J和K以及從節(jié)點J和K連接的粗線表示由節(jié)點C和E的MoFRR添加的次級后備路徑。從而,在此示例中,節(jié)點C和E都是雙加入節(jié)點。在“活動-活動”保護模式中,這些粗線表示當(dāng)網(wǎng)絡(luò)中不存在故障時多余的帶寬使用。在“活動-備用”模式下,粗線不消耗帶寬。在網(wǎng)絡(luò)分段320中,MoFRR對于節(jié)點A、C或F的故障未提供保護或者提供的保護不充分。
[0037]圖3C圖示了圖1的多播通信網(wǎng)絡(luò)100中網(wǎng)絡(luò)段330的又一示例,其中節(jié)點C、E和G是用于多播流的MCE。在此示例中,MoFRR除了節(jié)點C和E還提供了節(jié)點D的保護。從節(jié)點G連接到節(jié)點D的粗線表示由節(jié)點D的MoFRR添加的次級后備路徑。從而,在此示例中,節(jié)點C、D和E是雙加入節(jié)點。在“活動-活動”保護模式中,這些粗線表示當(dāng)網(wǎng)絡(luò)中不存在故障時多余的帶寬使用。在“活動-備用”模式下,粗線不消耗帶寬。然而,在圖3C中,對于節(jié)點A或F的故障仍沒有保護或者保護不充分。
[0038]在以上示例中,可以看到,每個雙加入節(jié)點都具有初級UMH和次級UMH。對于基于MoFRR的實施例,每個雙加入節(jié)點基于ECMP或LFA選擇其次級UMH。對于基于MRT的實施例,每個雙加入節(jié)點基于冗余樹(例如藍(lán)樹和紅樹)選擇其次級UMH0例如,在圖2A和2B中,節(jié)點D的初級UMH是節(jié)點I,而次級UMH是節(jié)點C,因為節(jié)點I在來自MCI的節(jié)點D的初級路徑上,而節(jié)點C在來自MCI的節(jié)點D的次級路徑上。在圖3C的示例中,來自MCI的節(jié)點C的初級路徑是MC1->A->B->C,并且其次級路徑是MQ->A->J->C。從而,節(jié)點C的初級UMH是節(jié)點B,并且次級UMH是節(jié)點J。節(jié)點B具有節(jié)點A作為其初級UMH,但沒有次級UMH。
[0039]在一個實施例中,當(dāng)節(jié)點檢測到本地故障(其可由其初級UMH或連接到初級UMH的鏈路的故障引起)時,節(jié)點向連接到多播群中下游節(jié)點的所有下游分支始發(fā)DFNP。DFNP可用于基于MRT或MoFRR的多播網(wǎng)絡(luò)。對于基于MoFRR的實施例,下游分支包含通往下游節(jié)點的初級路徑和次級路徑上的所有鏈路。對于基于MRT的實施例,下游分支包含通往檢測到故障的那個樹上的下游節(jié)點的所有分支。DFNP始發(fā)節(jié)點是沒有它能退回的無故障次級路徑的故障檢測節(jié)點。如果故障檢測節(jié)點具有可用次級路徑,則它可使用次級路徑接收多播數(shù)據(jù),并且不生成DFNP。當(dāng)生成DFNP時,具有可用次級路徑的下游節(jié)點可由DFNP觸發(fā)以使得切換到次級路徑。
[0040]可僅使用在數(shù)據(jù)平面中可用的轉(zhuǎn)發(fā)信息,在數(shù)據(jù)平面中生成DFNP,無需來自控制平面的輸入。當(dāng)接收到DFNP時,也可在數(shù)據(jù)平面中處理DFNP。在發(fā)生網(wǎng)絡(luò)故障之前,發(fā)送和接收DFNP所必需的所有信息在數(shù)據(jù)平面中都可用。僅數(shù)據(jù)平面的方法顯著減少了當(dāng)發(fā)生故障時的反應(yīng)時間。在一個實施例中,DFNP的始發(fā)和處理可在數(shù)據(jù)平面中的一個或多個線路卡內(nèi)執(zhí)行;對控制平面的更新(例如路由表)可在隨后時刻執(zhí)行,沒有影響實時故障恢復(fù)。
[0041]如果故障發(fā)生在非本地上游位置中,則雙加入節(jié)點需要檢測上游故障的快速且可靠機制。對于基于MoFRR的實施例,雙加入節(jié)點還需要學(xué)習(xí)到,其它上游節(jié)點不能回避該故障?;跇I(yè)務(wù)監(jiān)視的現(xiàn)有方法在范圍上受限制,并且與穩(wěn)定狀態(tài)分組流工作最佳。例如,如果在網(wǎng)絡(luò)中存在恒定繁重多播業(yè)務(wù),則業(yè)務(wù)流中的中斷可被用作故障指示符。通過對比,DFNP獨立于分組流的狀態(tài)。DFNP是非本地故障的指示符,并且可觸發(fā)次級后備路徑的解除阻止。
[0042]圖4A圖示了由從DFNP始發(fā)節(jié)點向下游的每個節(jié)點遵循的規(guī)則的實施例。在一個實施例中,規(guī)則可存儲在每個網(wǎng)絡(luò)節(jié)點(諸如下面在圖5A和5B中描述的網(wǎng)絡(luò)節(jié)點)的數(shù)據(jù)平面電路中。
[0043](Rl)(框411)如果節(jié)點從其初始UMH接收到DFNP,并且具有無故障次級路徑(例如從其次級UMH未接收到DFNP,或者在到次級UMH的連接未檢測到故障),則該節(jié)點是修復(fù)節(jié)點。在接收到DFNP時,這個修復(fù)節(jié)點解除阻止到其次級UMH的次級路徑。修復(fù)節(jié)點不進一步向下游轉(zhuǎn)發(fā)DFNP。
[0044](R2)(框412)如果節(jié)點從其初級UMH接收到DFNP,但沒有次級UMH,則該節(jié)點不是修復(fù)節(jié)點。在接收到DFNP時,這個節(jié)點向所有其下游節(jié)點轉(zhuǎn)發(fā)DFNP。對于基于MoFRR的實施例,下游節(jié)點包含進一步向下游的初級路徑和次級路徑上的分支上的所有節(jié)點。對于基于MRT的實施例,下游節(jié)點包含在檢測到故障的那個樹上的下游分支上的所有節(jié)點。
[0045](R3)(框413)如果節(jié)點接收到兩個DFNP——一個來自于其初級UMH而另一個來自于其次級UMH,則此節(jié)點也不是修復(fù)節(jié)點。從相應(yīng)UMH接收到兩個DFNP是其初級路徑和次級路徑二者都有故障的指示。在接收到兩個DFNP時,節(jié)點向所有下游節(jié)點轉(zhuǎn)發(fā)DFNP之一(與在R2中一樣)。另一個DFNP可被丟棄(等同于“不轉(zhuǎn)發(fā)”)。在一種情形下,節(jié)點在從其初級路徑接收到DFNP時可等待預(yù)定時間量,以看看它是否將從其次級路徑接收到另一 DFNP。如果從次級路徑接收到另一 DFNP,則節(jié)點不需要解除阻止次級路徑,因為解除阻止不能糾正故障。在另一情形下,節(jié)點在從其初級路徑接收到DFNP時可立即解除阻止其次級路徑,并丟棄所接收的DFNP。如果節(jié)點隨后未接收到多播數(shù)據(jù)業(yè)務(wù),而相反從次級UMH接收到另一 DFNP,則節(jié)點將向所有其下游節(jié)點轉(zhuǎn)發(fā)這個另一 DFNP。
[0046](R4)(框414)僅從節(jié)點的次級UMH接收到的DFNP要被丟棄。
[0047]圖3C的MoFRR示例可用于說明以上規(guī)則的應(yīng)用。如果節(jié)點A出故障,則節(jié)點B和J將都在本地檢測故障(例如在它們的相應(yīng)入局接口),并且每個都始發(fā)DFNP。兩個DFNP都朝節(jié)點C向下游發(fā)送。節(jié)點C不是修復(fù)節(jié)點,因為它將從其初級UMH(節(jié)點B)和其次級UMH(節(jié)點J)接收到兩個DFNP。因為節(jié)點C不是修