專利名稱:一種組播快速收斂方法、路由器和通信系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信技術領域,具體涉及一種組播快速收斂方法、路由器和通 信系統(tǒng)。
背景技術:
網(wǎng)際協(xié)議(IP, Internet Protocol)組播是指在IP網(wǎng)絡中將數(shù)據(jù)包以盡力傳 送(best-effort)的形式發(fā)送到網(wǎng)絡中的某個確定節(jié)點子集的技術,其中,這 個子集稱為組播組(multicast group)。利用IP組播技術可以實現(xiàn)一些網(wǎng)絡業(yè) 務,比如在線直播、網(wǎng)絡電視、遠程教育和實時視頻會議等等,但是,由于這 些業(yè)務對實時性的要求都較高,丟包將會對這些業(yè)務產(chǎn)生嚴重的影響,所以, 為了保證業(yè)務數(shù)據(jù)的正常傳輸,在網(wǎng)絡發(fā)生故障時,需要對路徑進行快速收斂。
目前組播的收斂 一 般采用協(xié)議無關組播(PIM , Protocol Independent Multicast)協(xié)議,在現(xiàn)有的方案中, 一般會預先為主用鏈路指定一條備用鏈路, 同時分別配置PIM加入(Join)的接口 ,即分別配置主用鏈路的上游4矣口和備 用鏈路的上游接口 ,此后,主用鏈路的上游接口和備用鏈路的上游接口分別發(fā) 送PIM Join給各自的上一跳節(jié)點以建立到組播源的組播樹,最終分別形成到組 播源的主用路徑(即主組播樹)和備用路徑(即備組播樹),組播源通過主用 路徑和備用路徑同時下發(fā)組播流,正常情況下,各節(jié)點均只會接收主用路徑上 的組播流,而丟棄備用路徑上的組播流,當主用路徑出現(xiàn)故障時,則將轉發(fā)表 項切換到備用路徑以接收備用路徑上的組播流,并將該組播流進行轉發(fā)。
需說明的是,該PIM協(xié)議的收斂性能遠不如單播收斂,這是因為單播收斂 只需要擴散一個故障消息,然后每個網(wǎng)絡節(jié)點本地完成路由計算,就可以把所 有路由收斂到新的路徑上,而組播卻不然。當然,單播需要每條路由下發(fā)轉發(fā), 因此性能瓶頸主要在計算和下發(fā)。而PIM協(xié)議相當于是一個建隧道的協(xié)議,每 條組播路由相當于是一條隧道,這樣,當本地處理完路由變化并下發(fā)轉發(fā)后, 還需要逐跳路由通知上游節(jié)點,上游節(jié)點同樣要進行計算一次并下發(fā)轉發(fā)的過 程,因此,PIMJoin報文的傳輸量是重要開銷,而且由于這部分開銷發(fā)生在網(wǎng) 絡節(jié)點之間,所以要遠大于設備本身下發(fā)轉發(fā)的開銷。在對現(xiàn)有技術的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有4支術所提 供的方案,由于需要在設備上靜態(tài)配置組播的主備入接口和下一跳,因此無法 適應網(wǎng)絡的動態(tài)拓樸變化,組播流保護的場景受到較大限制。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種組播快速收斂方法、路由器和通信系統(tǒng),可以適應 網(wǎng)絡的動態(tài)拓樸變化。
一種組播快速收斂方法,包括
計算出到達組播源的每條單播路由的主用出接口、備用出接口、主用下一 跳和備用下一跳;
將計算出的主用出接口作為組播的主用入接口發(fā)送PIM Join報文給主用 下 一跳以建立主用路徑;
將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給備用 下 一跳以建立備用路徑;
當主用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流并轉發(fā)組 播流。
一種路由器,包括
計算單元,用于計算出到達組播源的每條單播路由的主用出接口、備用出 才妻口、主用下一跳和備用下一跳;
主發(fā)送單元,用于將計算單元計算出的主用出接口作為組播的主用入接口 發(fā)送PIM Join報文給主用下一跳以建立主用路徑;
備發(fā)送單元,用于將計算單元計算出的備用出接口作為組播的備用入接口 發(fā)送PIM Join報文給備用下一^兆以建立^用路徑;
第一處理單元,用于當主發(fā)送單元發(fā)起建立的主用if各徑發(fā)生故障時,通過 備發(fā)送單元發(fā)起建立的備用路徑接收組播源下發(fā)的組播流并轉發(fā)組^"流。
一種通信系統(tǒng),包括本發(fā)明實施例提供的任意一種路由器,例如,包括
第一路由器,用于計算出到達組播源的每條單播路由的主用出4妾口、備用 出接口、主用下一跳和備用下一跳;將計算出的主用出接口作為組播的主用入 接口發(fā)送協(xié)議無關組播加入PIM Join報文給所述主用下一跳以建立主用路徑; 將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給所述備用下一跳以建立備用路徑;當所述主用路徑發(fā)生故障時,通過所述備用^各徑接收
組播源下發(fā)的組播流并轉發(fā)組播流;
第二路由器,作為主用下一跳,用于接收第一路由器發(fā)送的PIM Join才艮文, 發(fā)送PIM Join報文給第四路由器以建立主用路徑,在接收到第四路由器發(fā)送的 組播流后,將組播流轉發(fā)給第一路由器;
第三路由器,作為備用下一跳,用于接收第一路由器發(fā)送的PIM Joinl艮文, 發(fā)送PIM Join報文給第四路由器以建立備用路徑,在接收到第四路由器發(fā)送的 組播流后,將組播流轉發(fā)給第一路由器;
第四路由器,用于接收第二路由器發(fā)送的PIMJoin報文,以及"l妄收第三路 由器發(fā)送的PIMJoin報文,在主用路徑和備用路徑建立完成后,通過主用路徑 發(fā)送組播流給第二路由器,通過備用路徑發(fā)送組播流給第三路由器。
本發(fā)明實施例采用計算出到達組播源的每條單播路由的主備用出接口和 下一跳,然后分別根據(jù)計算出的主備用出接口和下一跳構建主備用路徑,當主 用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流并轉發(fā)組4f流;由 于該方案中的節(jié)點可以動態(tài)地根據(jù)計算出的主備用出接口和下一跳(即才艮據(jù)選 路結果)發(fā)送PIM Join報文以構建主備用路徑,因此無需在設備上H態(tài)配置發(fā) 送PIM Join報文的組播的主備入接口和下 一跳,可以適應網(wǎng)絡的動態(tài)拓樸變 化,大大擴充了組播流保護的場景。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明 的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。
圖l是本發(fā)明實施例一所-提供的方法的方法流程圖2是本發(fā)明實施例二提供的網(wǎng)絡拓樸示意圖3是本發(fā)明實施例二提供的網(wǎng)絡拓樸場景示意圖4是本發(fā)明實施例三提供的網(wǎng)絡拓樸場景示意圖5是本發(fā)明實施例所提供的路由器的結構示意圖6是本發(fā)明實施例所提供的通信系統(tǒng)的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清 楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是 全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造 性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供一種組播快速收斂方法、路由器和通信系統(tǒng)。以下分別 進4亍詳細i兌明。實施例一、本實施例將從宿節(jié)點的角度來描述,在本發(fā)明實施例中,宿節(jié)點指的是直 連接收者的節(jié)點,源節(jié)點指的是直連組播源的節(jié)點,另夕卜,單播路由的出接口 對于組播應用來說為入接口 。一種組播快速收斂方法,包括計算出到達組播源的每條單播路由的主用 出接口、備用出接口、主用下一跳和備用下一跳;將計算出的主用出接口作為 組播的主用入接口發(fā)送PIM Join凈艮文給主用下一跳以建立主用路徑;將計算 出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給備用下一跳以建 立備用路徑;當主用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流 并轉發(fā)組播流。其中,本發(fā)明實施例中所描述的PIMJoin報文,均指的是PIM 雙向Join報文,以下均簡稱PIMJoin報文。如圖1所示,具體流程可以如下101、計算出到達組播源的每條單播路由的主用出接口 、備用出4妄口、主 用下一跳和備用下一跳;例如,可以利用啟動單播IP快速重路由(FRR, Fast Reroute)計算出到 達組播源的每條單播路由的主用出接口 、備用出接口 、主用下一跳和備用下一 跳。 一般的,到達特定的組播源只有一條最優(yōu)的單播路由,但是,如果啟動單 播IP FRR,則還會存在其他的備用單播路由,即存在備用出接口和下一跳, 因此,此時,可以計算出到達組播源的每條單播路由的主用出接口、備用出接 口、主用下一跳和備用下一跳。其中,IPFRR指的是在故障發(fā)生時,在和故障鏈路或故障節(jié)點相鄰的路由 器上通過直接更改轉發(fā)表項的下一跳使其繞過故障節(jié)點而達到業(yè)務不中斷的 效果,并且要求轉發(fā)流量不會造成環(huán)路的相關技術。這種做法不要求在控制層面進行收斂,僅僅依賴于故障感知時間和切換下 一跳的時間,因此可以實現(xiàn)快 速重路由的目的,目前主要應用于單播領域,本發(fā)明實施例將該技術結合PIM雙向加入(Join)應用在組播中,以適應網(wǎng)絡的動態(tài)拓樸變化,關于這一點, 在以下的實施例中將會進^"詳細地描述。102、 將計算出的主用出接口作為組播的主用入接口發(fā)送PIM Join凈良文給 主用下一跳以建立主用路徑;例如,通過計算出的主用出接口發(fā)送PIM Join報文給主用下一跳,以觸發(fā) 協(xié)i義無關組播-稀+>才莫式(PIM-SM, Protocol Independent Multicast-Sparse Mode)構建主共享樹(RPT, Rendezvous Point Tree),其中,主共享樹包括主 用路徑;或者,通過計算出的主用出接口發(fā)送PIM Join^艮文給主用下一跳,以觸發(fā) PIM-SM或協(xié)議無關組播-特定源組播(PIM-SSM , Protocol Independent Multicast-Source-Specific Multicast)構建主最短路徑樹(SPT, Shortest Path Tree),其中,主最短路徑樹包括主用路徑。103、 將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join才艮文給 備用下 一跳以建立備用路徑;例如,通過計算出的備用出接口發(fā)送PIM Join報文給備用下一跳,以觸發(fā) PIM-SM構建備共享樹,其中,備共享樹包括備用路徑;或者,通過計算出的備用出接口發(fā)送PIM Join報文給備用下一跳,以觸發(fā) PIM-SM或PIM-SSM構建備最短路徑樹,其中,備最短路徑樹包括備用路徑。其中,步驟102和步驟103的執(zhí)行順序可以不分先后。104、 當主用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流并 轉發(fā)組^番流。例如,通過備用路徑接收組播源下發(fā)的組播流,然后根據(jù)轉發(fā)表項和出接 口轉發(fā)組々番流。需說明的是,當主用路徑使用正常時,通過主用路徑接收組播源下發(fā)的組 播流并轉發(fā)組播流,丟棄備用路徑上的組播流。即,在網(wǎng)絡沒有發(fā)生故障時, 一般只接收來自主用路徑上的組播流,而丟棄來自備用路徑上的組播流,只有 在網(wǎng)絡出現(xiàn)故障,且該故障是主用路徑發(fā)生故障時,才將主用路徑切換到備用路徑,從備用路徑上接收組播流并進行組播流的轉發(fā)。其中,可以通過快速故障檢測,比如雙向轉發(fā)檢測(BFD, Bidirectional Forwarding Detection)等技 術來快速感知是否發(fā)生故障,如果主用路徑發(fā)生故障,則執(zhí)行步驟104。另夕卜,還需說明的是,若網(wǎng)絡拓樸發(fā)生變化,則單播路由收斂以后,IPFRR 會重新計算出主用出接口、主用下一跳、備用出接口和備用下一跳,由此PIM 選路結果也會隨之動態(tài)變化,那么,此時宿節(jié)點會根據(jù)新計算出來的主用出接 口 、主用下一跳、備用出接口和備用下一跳分別發(fā)送PIM Join以建立新的主用 路徑和備用^備徑,從而實現(xiàn)靈活適應網(wǎng)絡部署的不同情況。由上可知,本發(fā)明實施例采用計算出到達組播源的每條單播路由的主備用 出接口和下一跳(即主用出接口、主用下一跳、備用出接口和備用下一跳,以 下均簡稱主備用出接口和下 一跳),然后分別根據(jù)計算出的主備用出接口和下 一跳構建到達組播源的主備用^各徑(即主用路徑和備用路徑,以下均簡稱主備 用路徑),當主用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流并 轉發(fā)組播流;由于該方案中的節(jié)點可以動態(tài)地根據(jù)計算出的主備用出接口和下 一跳(即根據(jù)選路結果)發(fā)送PIM Join報文以構建主備用路徑,因此無需在設 備上靜態(tài)配置發(fā)送PIM Join報文的組播的主備入接口和下一跳,可以適應網(wǎng)絡 的動態(tài)拓樸變化,大大擴充了組播流保護的場景;而且由于本發(fā)明實施例采用 了PIM雙向Join的技術,因此相對于現(xiàn)有技術的單向Join來說,可以減少節(jié)點間 的傳輸開銷,有利于。實施例二、根據(jù)實施例一所描述的方法可知,單播FRR可以為每條單播路由計算出 主用出接口、主用下一跳、備用出接口和備用下一跳,根據(jù)計算出的主用出接 口、主用下一跳、備用出接口和備用下一跳,與單播聯(lián)動發(fā)送雙向PIM Join 建立到組播源的主用路徑和備用路徑,引下雙份組播流,在網(wǎng)絡運行正常的情 況下,組播網(wǎng)絡中的節(jié)點只接收主用路徑的組播流,對于備用路徑上的組播流 則予以丟棄,當主用路徑發(fā)生故障時,則直接切換到備用路徑,接收備用路徑 上的組播流并轉發(fā)該組播流。當然,若網(wǎng)絡拓樸發(fā)生變化,則單播路由收斂以后,IPFRR會重新計算 主備用出接口和下一跳,然后根據(jù)重新計算出來的主備用出接口和下一跳分別發(fā)送PIM Join以建立新的主備用路徑。例如,如圖2所示,節(jié)點C為宿節(jié)點,節(jié)點A為源節(jié)點,節(jié)點B和節(jié)點C為 中間節(jié)點,其中,節(jié)點B分別和節(jié)點A、節(jié)點C和節(jié)點D相連,節(jié)點D分別和節(jié) 點C和節(jié)點B相連。則可以如下(1)宿節(jié)點C啟動IP FRR,計算出宿節(jié)點C到源節(jié)點A的主用出接口 為E0/0/0,主用下一跳為節(jié)點B、備用出接口為E0/0/1,備用下一跳為節(jié)點D。 (2 )宿節(jié)點C根據(jù)組播PIM協(xié)議將PIM Join報文分別從E0/0/0發(fā)向節(jié) 點B和從E0/0/1發(fā)向節(jié)點D,逐跳建立到源節(jié)點A的主用路徑C - B - A和備 用路徑C - D - .B - A,以便源節(jié)點A下發(fā)組播流,需說明的是,當節(jié)點B才妻 收到接收A下發(fā)的組播流后,將會把組播流復制成兩份,然后分別通過主用 路徑和備用^各徑進行發(fā)送。(3 )網(wǎng)絡正常運行情況下,節(jié)點C對于E0/0/1接收的組播流直4妄丟棄。 當節(jié)點B和節(jié)點C之間的鏈路發(fā)生故障時,節(jié)點C直接將主用路徑C _ B - A 切換到備用路徑C-D-B-A上,從E0/0/1接收組播流,此時備用路徑生效。為了更清楚地i兌明以上方法,本實施例將以PIM-SM RPT發(fā)送雙向PIM Join以進行保護的方案為例作進一步詳細說明。如圖3所示,假設節(jié)點E為源節(jié)點,直連組播源,節(jié)點D1為宿節(jié)點,直 連接收者,在節(jié)點A1上配置匯聚點,節(jié)點B1和節(jié)點C1為中間節(jié)點,這些節(jié) 點具體可以為路由器(RT, Rerouter),且這些節(jié)點上均運行PIM-SM,節(jié)點 Dl直連接收者的4妄口運行組管理協(xié)議(IGMP, Internet Group Management Protocol Internet )。則流程可以如下201、 節(jié)點Dl啟動單播IP FRR,為每條單播路由計算主用出接口 、主用 下一跳、備用出接口和備用下一跳,確定到RP的主路由為Dl - CI - Al,備 用路由為Dl -Bl - Al;此時,節(jié)點Dl還可以建立到節(jié)點CI的快速故障檢 測機制,例如利用BFD等技術建立該快速故障一企測機制。202、 節(jié)點Dl所連接收者比如某個用戶發(fā)送IGMP (*, G)報告(report) 報文給節(jié)點Dl,請求組播組G的數(shù)據(jù)(即組播流),節(jié)點Dl接收到該IGMP(*, G) report后,生成PIM(承,G)表項,添加出接口,并根據(jù)匯聚點,即 節(jié)點Al的地址查找節(jié)點Dl的上游節(jié)點。PIM查找結果為主用路徑上的上游節(jié)點(即本發(fā)明實施例所說的主用下一跳)為節(jié)點Cl,備用路徑上的上游節(jié) 點(即本發(fā)明實施例所說的備用下 一跳)為節(jié)點B1 。203、 節(jié)點Dl向節(jié)點Cl和節(jié)點Bl分別發(fā)送PIM (*, G)Join報文,觸 發(fā)PIM SM構建主共享樹和備共享樹。204、 節(jié)點C1收到PIM。, G)Join以后,生成(*, G)表項,添加出 接口,并繼續(xù)逐跳向匯聚點,即節(jié)點Al發(fā)送PIM ( *, G) Join報文;同理,節(jié)點B1收到PIM( G)Join以后,也生成(*, G)表項,添加 出接口,并繼續(xù)逐跳向匯聚點,即節(jié)點Al發(fā)送PIM (*, G) Join4艮文;節(jié)點Al從節(jié)點Cl和節(jié)點Bl均收到PIM ( *, G) Join,于是生成(*, G)表項并添加兩個出4秦口。205、 節(jié)點E1向RP單播注冊(register)報文,創(chuàng)建PIM ( S, G)表項, 并將(*, G)的出接口添加為(S, G)的出接口,通過該出接口向節(jié)點El 的下游節(jié)點Bl和節(jié)點Cl轉發(fā)組播流。206、 節(jié)點Cl和節(jié)點Bl均接收組播流,并根據(jù)接收到的組播流創(chuàng)建PIM (S, G)表項,并將已有(*, G)的出接口添加為(S, G)的出接口,繼續(xù)向下游轉發(fā)組播流,比如在本實施例中即為向節(jié)點D轉發(fā)組播流。207、 節(jié)點D1直連接收者,接收來自主路徑上的節(jié)點Cl的組播流,根據(jù) 接收到的組播流創(chuàng)建PIM (S, G)轉發(fā)表項,并將已有(*, G)的出4妄口添 加為(S, G)的出接口,向其下游的接收者轉發(fā)組播流;對于來自備用路徑上的節(jié)點B的組播流,則節(jié)點D予于直接丟棄。208、 當節(jié)點Dl與節(jié)點Cl之間的鏈路發(fā)生故障時,節(jié)點Dl根據(jù)BFD等 技術快速感知,直接切換至備用路徑上,從備用路徑上的節(jié)點B1接收組播流, 并將接收到的組播流轉發(fā)給其下游的接收者。需說明的是,單播路由收斂后,節(jié)點D1的單播IP FRR會重新計算新的路 由,包括到匯聚點地址在內(nèi)的每條路由的主用出接口、主用下一跳、備用出接 口和備用下一跳,然后利用PIM協(xié)議根據(jù)計算出來的新的路由查找到匯聚點的 主用路徑上的上游節(jié)點和備用路徑上的上游節(jié)點,重新觸發(fā)構建主共享樹和備 共享樹。另夕卜,需說明的是,在圖3,實線箭頭表示PIM Join報文,虛線箭頭表示組播流。由上可知,本發(fā)明實施例采用在各個節(jié)點上運行PIM-SM,利用單播IPFRR 計算出到達組播源的每條單播路由的主備用出接口和下一跳,然后分別根據(jù)計 算出的主備用出接口和下一跳通過發(fā)送PIM Join報文構建主備用路徑,在網(wǎng)絡 運行正常時,只接收主用路徑上的組播流,丟棄備用路徑上的組播流,當主用 路徑發(fā)生故障時,則切換至備用路徑,通過備用路徑接收組播源下發(fā)的組播流 并轉發(fā)組播流;由于該方案中的節(jié)點可以動態(tài)地根據(jù)計算出的主備用出接口和 下一跳(即根據(jù)選路結果)對發(fā)送PIM Join報文的組播的主備入接口進行配置, 并發(fā)送PIM Join報文以構建主備用路徑,因此無需在設備上靜態(tài)配置發(fā)送PIM Join報文的組播的主備入接口和下一跳,可以適應網(wǎng)絡的動態(tài)拓樸變化,大大 擴充了組播流保護的場景,而且由于本發(fā)明實施例采用了PIM雙向Join的技術, 因此相對于現(xiàn)有技術的單向Join來說,可以減少節(jié)點間的傳輸開銷,有利于保 證在故障發(fā)生后的組播轉發(fā)性能。實施例三、本實施例將以PIM-SSM SPT發(fā)送雙向PIM Join以進行保護的方案為例作 進一步詳細i兌明。如圖4所示,作H殳節(jié)點A2為源節(jié)點,直連組播源,節(jié)點D2為宿節(jié)點,直連 接收者,節(jié)點B2和節(jié)點C2為中間節(jié)點,這些節(jié)點具體可以為路由器(RT, Rerouter),且這些節(jié)點上均運行PIM-SSM,節(jié)點D2直連接收者的接口運行 IGMP。則流程可以如下301、 節(jié)點D2啟動單播IPFRR,為每條單播路由計算主用出接口 、主用下 一跳、備用出接口和備用下一跳,確定到源節(jié)點A2的主路由為D2-B2-A2, 備用路由為D2 - C2 - A2;此時,節(jié)點D2還可以建立到節(jié)點B2的快速故障檢測 機制,例如利用BFD等技術建立該快速故障檢測機制。302、 節(jié)點D2所連接收者比如某個用戶發(fā)送IGMP ( S, G)report報文,請 求指定組播源組(S, G)的數(shù)據(jù),節(jié)點D2接收到該IGMP (S, G) report報文 后,生成PIM(S, G)轉發(fā)表項,添加出接口,并根據(jù)源節(jié)點A的地址查找節(jié) 點D的上游節(jié)點。PIM查找結果為主用路徑上的上游節(jié)點(即本發(fā)明實施例所 說的主用下一跳)為節(jié)點B2,備用路徑上的上游節(jié)點(即本發(fā)明實施例所i兌的備用下一跳)為節(jié)點C2。303、 節(jié)點D2向節(jié)點C2和節(jié)點B2均發(fā)送PIM( S, G )join報文,觸發(fā)PIM SSM 構建主最短路徑樹和備最短路徑樹。304、 節(jié)點C2收到PIM(S, G) Join以后,生成(S, G)表項,添加出接 口,并繼續(xù)逐跳向上游節(jié)點發(fā)送PIM ( S, G) Join報文;同理,節(jié)點B2收到PIM (S, G) Join以后,也生成(S, G)表項,添加 出接口,并繼續(xù)逐跳向上游節(jié)點發(fā)送PIM (S, G) Join報文;節(jié)點A2從節(jié)點C2和節(jié)點B2均收到PIM (S, G) Join,于是生成(S, G) 表項并添加兩個出接口 。305、 節(jié)點A2直連組播源,根據(jù)創(chuàng)建的PIM(S, G)表項,向節(jié)點A2的下 游節(jié)點B2和節(jié)點C2轉發(fā)組播流。306、 節(jié)點C2和節(jié)點B2均接收組播流,并根據(jù)已有的(S, G)表項的出接 口繼續(xù)向下游轉發(fā)組播流。307、 節(jié)點D2直連接收者,接收來自主用路徑上的節(jié)點B2的組播流,并向 其(即節(jié)點D2)下游的接收者轉發(fā);對于來自備用路徑上的節(jié)點C的組播流,則節(jié)點D2予于直接丟棄。308、 當節(jié)點D2和節(jié)點B2之間的鏈路發(fā)生故障后,節(jié)點D2根據(jù)BFD等技術 快速感知,直接切換至備用路徑上,從備路徑節(jié)點C2接收組播流,并轉發(fā)到 其下游的接收者。需說明的是,單播路由收斂后,節(jié)點D2的單播IP FRR會重新計算新的路 由,包括到組播源地址在內(nèi)的每條路由的主用出接口、主用下一跳、備用出接 口和備用下一跳,然后利用PIM協(xié)議根據(jù)計算出來的新的路由查找到組播源的 主用路徑上的上游節(jié)點和備用路徑上的上游節(jié)點,重新觸發(fā)構建主最短路徑樹 和備最短^各徑樹。另外,需說明的是,在圖4,實線箭頭表示PIM Join報文,虛線箭頭表示 組播流。由上可知,本發(fā)明實施例采用在各個節(jié)點上運行PIM-SSM,利用單播IP FRR計算出到達組播源的每條單播路由的主備用出接口和下一跳,然后分別根 據(jù)計算出的主備用出接口和下一跳通過發(fā)送PIM Join報文構建到達組播源的主備用路徑,在網(wǎng)絡運行正常時,只接收主用路徑上的組播流,丟棄備用路徑 上的組播流,當主用路徑發(fā)生故障時,則切換至備用路徑,通過備用路徑接收 組播源下發(fā)的組播流并轉發(fā)組播流;由于該方案中的節(jié)點可以動態(tài)地根據(jù)計算
出的主備用出接口和下一跳(即根據(jù)選路結果)發(fā)送PIM Join報文以構建主備 用路徑,因此無需在設備上靜態(tài)配置發(fā)送PIM Join報文的組播的主備用入接 口,可以適應網(wǎng)絡的動態(tài)拓樸變化,大大擴充了組播流保護的場景,而且由于 本發(fā)明實施例采用了 PIM雙向Join的技術,因此相對于現(xiàn)有技術的單向Join來 說,可以減少節(jié)點間的傳輸開銷,有利于保證在故障發(fā)生后的組播轉發(fā)性能。
實施例四、
為了更好地實施以上方法,本發(fā)明實施例還相應地提供一種路由器,如圖 5所示,該路由器包括計算單元401、主發(fā)送單元402、備發(fā)送單元403和第一處 理單元404;
計算單元401,用于計算出到達組播源的每條單播路由的主用出接口、備 用出接口、主用下一跳和備用下一跳;例如,可以利用啟動單播IPFRR計算出 到達組播源的單播路由的主用出接口 、備用出接口 、主用下一跳和備用下一跳;
主發(fā)送單元402,用于將計算單元401計算出的主用出接口作為組播的主用 入接口發(fā)送PIMJoin報文給主用下一跳以建立主用路徑;例如,通過計算出的 主用出接口發(fā)送PIM Join報文給主用下一跳,以觸發(fā)PIM-SM構建主共享樹, 其中,主共享樹包括主用路徑;或者,通過計算出的主用出接口發(fā)送PIMJoin 報文給主用下一跳,以觸發(fā)PIM-SM或PIM-SSM構建主最短路徑樹,其中,主 最短路徑樹包括主用3各徑;
備發(fā)送單元403,用于將計算單元401計算出的備用出接口作為組播的主用 入接口發(fā)送PIM Join報文給備用下一跳以建立備用路徑;例如,通過計算出的 備用出接口發(fā)送PIM Join報文給備用下一跳,以觸發(fā)PIM-SM構建備共享樹, 其中,備共享樹包括備用路徑;或者,通過計算出的備用出接口發(fā)送PIMJoin 報文給備用下一跳,以觸發(fā)PIM-SM或PIM-SSM構建備最短路徑樹,其中,備 最短路徑樹包括備用路徑;
第一處理單元404,用于當主發(fā)送單元402發(fā)起建立的主用路徑發(fā)生故障 時,通過備發(fā)送單元403發(fā)起建立的備用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流。
其中,第一處理單元404可以包括接收子單元和轉發(fā)子單元; 接收子單元,用于通過備發(fā)送單元發(fā)起建立的備用路徑接收組播源下發(fā)的
組播流;
轉發(fā)子單元,用于轉發(fā)接收子單元接收到的組播流。
如圖5所示,該路由器還可以包括第二處理單元405;
第二處理單元405,用于當主發(fā)送單元402發(fā)起建立的主用路徑使用正常 時,通過主用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流,丟棄備用路徑上的 組播流。
如圖5所示,該3各由器還可以包括感知單元406;
感知單元406,用于通過快速故障檢測來感知主用路徑發(fā)生故障;
第一處理單元404,還用于當感知單元406感知主用3各徑發(fā)生故障時,通過 備發(fā)送單元403發(fā)起建立的備用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流。
需說明的是,若網(wǎng)絡拓樸發(fā)生變化,則單播路由收斂以后,計算單元401 會重新計算出主用出接口、主用下一跳、備用出接口和備用下一跳,由此PIM 選路結果也會隨之動態(tài)變化,那么,此時主發(fā)送單元402和備發(fā)送單元403會根 據(jù)新計算出來的主用出接口 、主用下一跳、備用出接口和備用下一跳分別發(fā)送 PIM Join以建立新的主用路徑和備用路徑,從而實現(xiàn)靈活適應網(wǎng)絡部署的不同 情況。
以上各個單元的具體實施可參見前面實施例,在此不再贅述。 由上可知,本發(fā)明實施例的路由器的計算單元401可以計算出到達組播源 的單播路由的主備用出接口和下一跳,然后由主發(fā)送單元402和備發(fā)送單元403 分別根據(jù)計算出的主備用出接口和下一跳構建主備用路徑,當感知單元406感 知到主用路徑發(fā)生故障時,第 一處理單元404通過備用路徑接收組播源下發(fā)的 組播流并轉發(fā)組播流;由于該方案中的節(jié)點可以動態(tài)地根據(jù)計算出的主備用出 接口和下一跳(即沖艮據(jù)選路結果)發(fā)送PIM Join凈艮文以構建主備用路徑,因此 無需在設備上靜態(tài)配置發(fā)送PIMJoin報文的組播的主備入接口和下一跳,可以 適應網(wǎng)絡的動態(tài)拓樸變化,大大擴充了組播流保護的場景;而且由于本發(fā)明實 施例采用了PIM雙向Join的技術,因此相對于現(xiàn)有技術的單向Join來說,可以減少節(jié)點間的傳輸開銷,有利于。 實施例五、
相應地,本發(fā)明實施例還提供一種通信系統(tǒng),包括本發(fā)明實施例提供的任 意一種路由器。
該路由器可以包括計算單元401、主發(fā)送單元402、備發(fā)送單元403和第一 處理單元404,還可以包括第二處理單元405和感知單元406,其中,第一處理 單元404可以包括接收子單元和轉發(fā)子單元,具體可參見實施例四,在此不再 贅述。
該通信系統(tǒng)中的路由器的單播FRR可以為每條單播路由計算出主用出接 口、主用下一跳、備用出接口和備用下一跳,然后根據(jù)計算出的主用出接口、 主用下一跳、備用出4妄口和備用下一跳,與單播聯(lián)動發(fā)送雙向PIM Join建立 到組播源的主用路徑和備用^各徑,引下雙份組播流,在網(wǎng)絡運行正常的情況下, 該通信系統(tǒng)中的路由器只接收主用路徑的組播流,對于備用路徑上的組播流則 予以丟棄,當主用路徑發(fā)生故障時,則直接切換到備用路徑,接收備用路徑上 的組播流并轉發(fā)該組播流。具體可參見前面的實施例,在此不再贅述。
當然,若網(wǎng)絡拓樸發(fā)生變化,則單播路由收斂以后,路由器的IPFRR會 重新計算主備用出接口和下一跳,然后根據(jù)重新計算出來的主備用出接口和下 一跳分別發(fā)送PIM Join以建立新的主備用路徑。
以下將舉例作簡略說明,如圖6所示,該通信系統(tǒng)可以包括第一路由器 501、第二路由器502、第三路由器503和第四路由器504;假設第一路由器 501在此作為宿節(jié)點;
第 一路由器501,用于計算出到達組播源的每條單播路由的主用出接口 、 備用出接口、主用下一跳和備用下一跳;將計算出的主用出接口作為組播的主 用入接口發(fā)送協(xié)議無關組播加入PIM Join報文給所述主用下 一跳以建立主用 路徑;將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給所述 備用下一跳以建立備用路徑;當所述主用路徑發(fā)生故障時,通過所述備用路徑 接收組4番源下發(fā)的組4番流并轉發(fā)組纟番流;
第二路由器502,作為主用下一跳,用于接收第一路由器501發(fā)送的PIM Join報文,發(fā)送PIMJoin報文給第四路由器504以建立主用路徑,在接收到第四路由器504發(fā)送的組播流后,將組播流轉發(fā)給第 一路由器501;
第三路由器503,作為備用下一跳,用于接收第一路由器501發(fā)送的PIM Join報文,發(fā)送PIMJoin報文給第四路由器504以建立備用路徑,在接收到第四 路由器504發(fā)送的組播流后,將組播流轉發(fā)給第一路由器501;
第四路由器504,用于接收第二路由器502發(fā)送的PIM Join報文,以及接 收第三路由器503發(fā)送的PIM Join報文,在主用路徑和備用路徑建立完成后, 通過主用路徑發(fā)送組播流給第二路由器502,通過備用路徑發(fā)送組播流給第三 路由器503。
以上實施具體可參見前面實施例,在此不再贅述。
由上可知,本發(fā)明實施例的通信系統(tǒng)采用利用單播IP FRR計算出到達組播 源的每條單播路由的主備用出接口和下一跳,然后分別根據(jù)計算出的主備用出 接口和下一跳通過發(fā)送PIM Join報文構建主備用路徑,在網(wǎng)絡運行正常時,只 接收主用路徑上的組播流,丟棄備用路徑上的組播流,當主用路徑發(fā)生故障時, 則切換至備用路徑,通過備用^各徑接收組播源下發(fā)的組播流并轉發(fā)組纟番流;由 于該方案中的節(jié)點可以動態(tài)地根據(jù)計算出的主備用出接口和下一跳(即根據(jù)選 路結果)發(fā)送PIMJoin報文以構建主備用路徑,因此無需在設備上靜態(tài)配置發(fā) 送PIM Join報文的組播的主備入接口和下一跳,可以適應網(wǎng)絡的動態(tài)拓樸變 化,大大擴充了組播流保護的場景,而且由于本發(fā)明實施例采用了PIM雙向Join 的技術,因此相對于現(xiàn)有技術的單向Join來說,可以減少節(jié)點間的傳輸開銷, 有利于保證在故障發(fā)生后的組播轉發(fā)性能。
驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀 存儲介質中,存儲介質可以包括只讀存儲器(ROM, Read Only Memory )、 隨機存耳又記憶體(RAM, Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的一種組播快速收斂方法、路由器和通信系統(tǒng)
述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時, 對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍 上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1、一種組播快速收斂方法,其特征在于,包括計算出到達組播源的每條單播路由的主用出接口、備用出接口、主用下一跳和備用下一跳;將計算出的所述主用出接口作為組播的主用入接口發(fā)送協(xié)議無關組播加入PIM Join報文給所述主用下一跳以建立主用路徑;將計算出的所述備用出接口作為組播的備用入接口發(fā)送PIM Join報文給所述備用下一跳以建立備用路徑;當所述主用路徑發(fā)生故障時,通過所述備用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流。
2、 根據(jù)權利要求l所述的方法,其特征在于,所述計算出到達組播源的每 條單播路由的主用出接口 、備用出接口 、主用下一跳和備用下一跳,具體包括利用啟動單播網(wǎng)際協(xié)議快速重路由IPFRR,計算出到達組播源的每條單播 路由的主用出接口、備用出接口、主用下一跳和備用下一跳。
3、 根據(jù)權利要求1或2所述的方法,其特征在于,所述將計算出的所述主用出接口作為組播的主用入接口發(fā)送PIM Join報 文給所述主用下 一跳以建立主用路徑,具體包括通過計算出的所述主用出接口發(fā)送PIM Join凈艮文給所述主用下一i 兆,以觸 發(fā)協(xié)議無關組播-稀松模式PIM-SM構建主共享樹,所述主共享樹包括主用路 徑;所述將計算出的所述備用出接口作為組播的備用入接口發(fā)送PIM Join報 文給所述備用下一跳以建立備用路徑包括通過計算出的備用出接口發(fā)送PIM Join報文給備用下一跳,以觸發(fā) PIM-SM構建備共享樹,所述備共享樹包括備用路徑。
4、 根據(jù)權利要求1或2所述的方法,其特征在于,所述根據(jù)計算出的所述主用出接口發(fā)送PIM Join報文給所述主用下一跳 以建立主用路徑,具體包括通過計算出的所述主用出接口發(fā)送PIM Join才艮文給主用下一跳,以觸發(fā) PIM-SM或協(xié)i義無關組纟番-特定源組播PIM-SSM構建主最短^各徑樹,所述主最 短路徑樹包括主用3各徑;所述將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給 備用下一跳以建立備用路徑包括通過計算出的備用出接口發(fā)送PIM Join報文給備用下一跳,以觸發(fā) PIM-SM或PIM-SSM構建備最短路徑樹,所述備最短路徑樹包括備用^各徑。
5、 根據(jù)權利要求1或2所述的方法,其特征在于,還包括當主用路徑使用正常時,通過主用路徑接收組播源下發(fā)的組播流并轉發(fā)組 播流,丟棄備用路徑上的組播流。
6、 根據(jù)權利要求1或2所述的方法,其特征在于, 通過快速故障檢測BFD來感知主用路徑發(fā)生故障。
7、 一種路由器,其特征在于,包括計算單元,用于計算出到達組播源的每條單播路由的主用出接口、備用出 接口、主用下一跳和備用下一跳;主發(fā)送單元,用于將計算單元計算出的所述主用出接口作為組播的主用入 接口發(fā)送PIM Join報文給所述主用下一跳以建立主用路徑;備發(fā)送單元,用于將計算單元計算出的所述備用出接口作為組播的備用入 接口發(fā)送PIM Join報文給所述備用下一跳以建立備用路徑;第一處理單元,用于當所述主發(fā)送單元發(fā)起建立的所述主用路徑發(fā)生故障 時,通過所述備發(fā)送單元發(fā)起建立的所述備用路徑接收組播源下發(fā)的組播流并 轉發(fā)組播流。
8、 根據(jù)權利要求7所述的路由器,其特征在于,還包括第二處理單元; 第二處理單元,用于當所述主發(fā)送單元發(fā)起建立的所述主用路徑使用正常時,通過所述主用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流,丟棄所述備用 路徑上的組播流。
9、 根據(jù)權利要求7或8所述的路由器,其特征在于,還包括感知單元; 感知單元,用于通過快速故障檢測BFD來感知主用路徑發(fā)生故障; 第一處理單元,還用于當所述感知單元感知所述主用路徑發(fā)生故障時,通過所述備發(fā)送單元發(fā)起建立的所述備用路徑接收組播源下發(fā)的組播流并轉發(fā) 組播流。
10、 一種通信系統(tǒng),其特征在于,包括第一路由器,用于計算出到達組播源的每條單播路由的主用出接口、備用 出接口、主用下一跳和備用下一跳;將計算出的主用出接口作為組播的主用入接口發(fā)送協(xié)議無關組播加入PIM Join報文給所述主用下一跳以建立主用路徑; 將計算出的備用出接口作為組播的備用入接口發(fā)送PIM Join報文給所述備用 下一跳以建立備用路徑;當所述主用路徑發(fā)生故障時,通過所述備用路徑接收 組播源下發(fā)的組播流并轉發(fā)組播流;第二路由器,作為主用下一跳,用于接收第一路由器發(fā)送的PIMJoin報文, 發(fā)送PIM Join報文給第四路由器以建立主用路徑,在接收到第四^各由器發(fā)送的 組播流后,將組播流轉發(fā)給第一路由器;第三路由器,作為備用下一跳,用于接收第一路由器發(fā)送的PIM Join報文, 發(fā)送PIM Join報文給第四路由器以建立備用路徑,在接收到第四路由器發(fā)送的 組播流后,將組播流轉發(fā)給第一路由器;第四路由器,用于接收第二路由器發(fā)送的PIMJoin報文,以及接收第三路 由器發(fā)送的PIM Joinl艮文,在主用路徑和備用3各徑建立完成后,通過主用3各徑 發(fā)送組播流給第二路由器,通過備用路徑發(fā)送組播流給第三路由器。
全文摘要
本發(fā)明實施例公開了一種組播快速收斂方法、路由器和通信系統(tǒng)。本發(fā)明實施例采用計算出到達組播源的每條單播路由的主備用出接口和下一跳,然后分別根據(jù)計算出的主備用出接口和下一跳構建主備用路徑,當主用路徑發(fā)生故障時,通過備用路徑接收組播源下發(fā)的組播流并轉發(fā)組播流;由于該方案中的節(jié)點可以動態(tài)地根據(jù)單播路由計算出的主備用出接口和下一跳(即根據(jù)選路結果),并發(fā)送PIM Join報文以構建主備用路徑,因此無需在設備上靜態(tài)配置組播的主備入接口和下一跳,可以適應網(wǎng)絡的動態(tài)拓撲變化,大大擴充了組播流保護的場景。
文檔編號H04L12/56GK101656679SQ20091017783
公開日2010年2月24日 申請日期2009年9月25日 優(yōu)先權日2009年9月25日
發(fā)明者劉毅松, 趙大赫, 陰元斌 申請人:華為技術有限公司