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

組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備的制作方法

文檔序號:7740102閱讀:490來源:國知局
專利名稱:組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備。

背景技術(shù)
組播在IP網(wǎng)絡(luò)中應(yīng)用廣泛,主要應(yīng)用于視頻點播、視頻會議等服務(wù)。與單播技術(shù)和廣播技術(shù)相比,組播技術(shù)在網(wǎng)絡(luò)帶寬使用、服務(wù)器負(fù)載、網(wǎng)絡(luò)部署等方便有較好的優(yōu)勢。
協(xié)議無關(guān)組播-密集模式(Protocol Independent Multicast-Dense Mode,PIM-DM)協(xié)議是目前應(yīng)用較廣的一種組播路由協(xié)議。PIM-DM協(xié)議中使用擴(kuò)散與剪枝(flood and prune)的機理來建立組播樹。PIM-DM協(xié)議假定當(dāng)組播源開始發(fā)送組播數(shù)據(jù)報文時,網(wǎng)絡(luò)中的所有設(shè)備都需要接收該報文,因此報文被轉(zhuǎn)發(fā)給每一個設(shè)備。從設(shè)備上游接口接收到的報文都要經(jīng)過反向路徑轉(zhuǎn)發(fā)(Reverse Path Forwarding,RPF)檢查,沒有通過RPF檢查的報文將被丟棄。對于通過了RPF檢查的組播報文,設(shè)備根據(jù)報文的(S,G)對計算接口,其中S表示組播報文的源地址,G表示組播組的地址。如果計算出的接口不為空,則為該(S,G)對建立一個接口的表項,并且將該組播報文由接口轉(zhuǎn)發(fā);如果計算出的接口為空,則向RPF鄰居發(fā)送一個剪枝(Prune)報文,通知上游鄰居不要再向本接口轉(zhuǎn)發(fā)來自該(S,G)的組播報文。上游鄰居接收到剪枝報文以后,把發(fā)送該剪枝報文的下游接口記為剪枝狀態(tài)(Pruned),并設(shè)置一個剪枝狀態(tài)計時器。這樣就建立了一棵以組播源為根的組播轉(zhuǎn)發(fā)樹。
PIM-DM設(shè)備之間通過HELLO消息來發(fā)現(xiàn)鄰居。一旦PIM-DM設(shè)備啟動,PIM-DM設(shè)備就周期性地在每個配置了PIM-DM的接口上發(fā)送HELLO消息。HELLO消息有一個保持時間(Hello Hold Time)字段,這個時間參數(shù)定義了鄰居等待下一個HELLO消息的最長時間。如果鄰居在這個時間內(nèi)沒有收到另一個鄰居發(fā)送的HELLO消息,就會將這個設(shè)備從鄰居關(guān)系表中刪除。一般而言,PIM鄰居HELLO消息發(fā)送間隔為30秒,鄰居保持時間為HELLO消息發(fā)送間隔的3.5倍,即保持時間為105秒。因此,正常情況下,一個PIM-DM接口在105秒內(nèi)沒有檢測到鄰居的HELLO消息,才會宣布該鄰居斷開(down)。
上述為PIM-DM協(xié)議的基本原理。在以太網(wǎng)鏈路中,同一個共享網(wǎng)段中可能有多個PIM-DM鄰居同時存在。該情形下,一個PIM路由器收到其中一個鄰居發(fā)來的剪枝報文,是不能立刻對該接口進(jìn)行剪枝操作的,而是需要啟動剪枝未決定時器(Prune Pending Timer,PPT),來等待其他PIM鄰居的剪枝覆蓋(prune override,或稱剪枝否決)報文。在PPT超時且沒有收到其他PIM鄰居的剪枝覆蓋報文時才進(jìn)行剪枝。通過設(shè)置PPT方式進(jìn)行剪枝處理的現(xiàn)有技術(shù)存在剪枝延遲累加的問題。例如在多個路由器串聯(lián)的分支中,PIM-DM剪枝延遲累加的時間通常為PPT*(n-1)秒,n為路由器的個數(shù)。在以太網(wǎng)鏈路中,組播數(shù)據(jù)是在虛擬局域網(wǎng)(Virtual Local Area Network,VLAN)內(nèi)以廣播的方式轉(zhuǎn)發(fā),這更加消耗網(wǎng)絡(luò)帶寬資源和組播路由器的資源。
現(xiàn)有技術(shù)采用縮短PPT的等待時間以及HELLO報文的保持時間的技術(shù)方案,以期解決以太網(wǎng)鏈路剪枝處理延遲的問題。但是,發(fā)明人在實現(xiàn)本發(fā)明實施例過程中發(fā)現(xiàn),PPT的等待時間不能設(shè)置得太小,因為PIM接口需要等待其他PIM鄰居的剪枝覆蓋報文。此外,現(xiàn)有PIM鄰居的HELLO報文信息量較大,縮短HELLO報文的保持時間,可能導(dǎo)致設(shè)備頻繁處于收發(fā)HELLO報文的狀態(tài),從而影響設(shè)備的性能。一般PPT采用的合理時間為3秒,HELLO發(fā)送間隔為30秒。由此可見,現(xiàn)有技術(shù)在以太網(wǎng)鏈路中,同一共享網(wǎng)段組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲仍然較大。


發(fā)明內(nèi)容
本發(fā)明提供一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備,用以縮短共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲。
本發(fā)明提供了一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法,包括 獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表;所述協(xié)議無關(guān)組播鄰居列表包括各所述路由器的協(xié)議無關(guān)組播鄰居關(guān)系、以及各所述路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于表示是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù); 根據(jù)所述協(xié)議無關(guān)組播鄰居關(guān)系確定所述任一路由器的下游鄰居路由器數(shù)量,并根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
本發(fā)明還提供了一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置,包括 鄰居列表獲取模塊,用于獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表;所述協(xié)議無關(guān)組播鄰居列表包括各所述路由器的協(xié)議無關(guān)組播鄰居關(guān)系、以及各所述路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于表示是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù); 剪枝處理模塊,用于根據(jù)所述協(xié)議無關(guān)組播鄰居關(guān)系確定自身下游鄰居路由器數(shù)量,并根據(jù)所述下游鄰居路由器數(shù)量、以及所述各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
本發(fā)明實施例還提供了一種網(wǎng)絡(luò)設(shè)備,包括上述組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置。
本發(fā)明實施例組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備中,通過在PIM鄰居列表中記錄各路由器的PIM鄰居關(guān)系以及各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,使得當(dāng)路由器需要發(fā)起剪枝處理流程時,可根據(jù)該路由器的下游鄰居路由器數(shù)量以及該路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,進(jìn)行是否剪枝的決策,因此,縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。



為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明第一實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法流程圖; 圖2a為本發(fā)明第二實施例提供的普通檢測機制的實現(xiàn)方法流程圖; 圖2b為本發(fā)明第二實施例任一路由器進(jìn)行普通檢測的可能實現(xiàn)過程流程圖; 圖3a為本發(fā)明第三實施例提供的剪枝檢測機制的實現(xiàn)方法流程圖; 圖3b為本發(fā)明第三實施例接收到剪枝報文的路由器進(jìn)行剪枝檢測的可能實現(xiàn)過程流程圖; 圖4為本發(fā)明第四實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法應(yīng)用場景示意圖; 圖5為本發(fā)明第五實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法應(yīng)用場景示意圖; 圖6為本發(fā)明第六實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置的結(jié)構(gòu)示意圖。

具體實施例方式 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明第一實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法流程圖。如圖1所示的方法包括 步驟11、獲取共享網(wǎng)段屬于同一組播組的各路由器的PIM鄰居列表;該PIM鄰居列表包括各路由器的PIM鄰居關(guān)系、以及各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;任一路由器關(guān)于該組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,用于表示該路由器是否需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù)。
任一路由器關(guān)于某一組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,可為但不限于第一轉(zhuǎn)發(fā)標(biāo)識或第二轉(zhuǎn)發(fā)標(biāo)識。第一轉(zhuǎn)發(fā)標(biāo)識用于表示該路由器不需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù);第二轉(zhuǎn)發(fā)標(biāo)識用于表示該路由器需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù)。
步驟12、根據(jù)PIM鄰居列表中的PIM鄰居關(guān)系,確定任一路由器的下游鄰居路由器數(shù)量,并根據(jù)該路由器的下游鄰居路由器數(shù)量、以及該路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
在任一路由器接收到該路由器的下游鄰居路由器發(fā)送的剪枝報文時,該路由器在自身保存的PIM鄰居列表中,將發(fā)送剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,更新為第一轉(zhuǎn)發(fā)標(biāo)識。
在任一路由器的下游鄰居路由器的數(shù)量不為零、且該路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識均為第一轉(zhuǎn)發(fā)標(biāo)識時,則該路由器可立刻做出剪枝決策,如在該路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)組播數(shù)據(jù)的PIM接口。
在任一路由器的下游鄰居路由器的數(shù)量不為零、且該路由器至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,則該路由器可立刻做出不剪枝決策,如在該路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài)?;蛘?,在任一路由器的下游鄰居路由器的數(shù)量不為零、且該路由器至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,則該路由器也可不立刻做出不剪枝決策,而是在該路由器接收到下游鄰居路由器發(fā)送的剪枝報文時,該路由器與組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器確認(rèn),這些下游鄰居路由器實際是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),如果這些下游鄰居路由器實際需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),則此時該路由器可做出不剪枝決策,如在該路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中維持該PIM接口處于轉(zhuǎn)發(fā)狀態(tài);如果這些下游鄰居路由器實際不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),則此時該路由器可做出剪枝決策,如在該路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中移除該PIM接口,并更新該路由器的PIM鄰居列表。
本實施例組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法中,通過在PIM鄰居列表中記錄各路由器的PIM鄰居關(guān)系以及各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,使得當(dāng)路由器需要發(fā)起剪枝處理流程時,可根據(jù)該路由器的下游鄰居路由器數(shù)量以及該路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,進(jìn)行是否剪枝的決策,因此,縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
PIM鄰居快速檢測和持續(xù)更新,有利于保證路由器進(jìn)行快速剪枝處理決策。本發(fā)明實施例根據(jù)發(fā)起鄰居檢測和更新的主體不同,將快速鄰居檢測的機制分為普通檢測和剪枝檢測。其中,普通檢測由指定路由器定時發(fā)起,剪枝檢測可由收到剪枝報文的上游路由器發(fā)起;指定路由器用于定時維護(hù)共享網(wǎng)段的PIM鄰居列表,各路由器上還維護(hù)有各路由器自身的PIM鄰居列表。本發(fā)明實施例通過引入上述普通檢測機制和剪枝檢測機制,可快速發(fā)現(xiàn)鄰居,及時更新路由器維護(hù)的PIM鄰居列表,便于路由器進(jìn)行快速剪枝決策,從而進(jìn)一步縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
圖2a為本發(fā)明第二實施例提供的普通檢測機制的實現(xiàn)方法流程圖。如圖2a所示的方法包括 步驟21、在共享網(wǎng)段屬于同一組播組的各路由器中,以預(yù)設(shè)選舉規(guī)則選舉一指定路由器。
選舉規(guī)則可根據(jù)實際需要預(yù)先設(shè)置,例如可比較各路由器的優(yōu)先級,將優(yōu)先級最高的路由器選舉為指定路由器。如果存在多個優(yōu)先級相同的路由器,可比較這些路由器的IP地址,將IP地址最高的路由器選舉為指定路由器。
步驟22、指定路由器建立PIM鄰居列表,并組播建立的PIM鄰居列表,之后,指定路由器以預(yù)設(shè)時間間隔,定時組播指定路由器自身維護(hù)的PIM鄰居列表。
指定路由器用于初始建立和維系共享網(wǎng)段的PIM鄰居列表。指定路由器可采用現(xiàn)有PIM鄰居HELLO消息機制,初始建立共享網(wǎng)段的PIM鄰居列表。指定路由器維系共享網(wǎng)段的PIM鄰居列表的方式例如指定路由器定時在組播組組播指定路由器自身維護(hù)的PIM鄰居列表。
PIM鄰居列表包括各路由器的PIM鄰居關(guān)系、以及各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。任一路由器關(guān)于某一組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,用于表示該路由器是否需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù)。某一組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,可為第一轉(zhuǎn)發(fā)標(biāo)識或第二轉(zhuǎn)發(fā)標(biāo)識??蛇x的,在初始建立PIM鄰居列表時,可將各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識初始設(shè)置為第一轉(zhuǎn)發(fā)標(biāo)識,即初始認(rèn)為各路由器不需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù)。在后續(xù)通信過程中,任一路由器可根據(jù)接收到的下游鄰居路由器的報文類型,設(shè)置相應(yīng)下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。例如如果某一路由器接收到該路由器的某一下游鄰居路由器發(fā)送的嫁接(Graft)報文,說明該下游鄰居路由器需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù),則該路由器將發(fā)送嫁接報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識更新設(shè)置為第二轉(zhuǎn)發(fā)標(biāo)識,如用“1”表示。如果某一路由器接收到該路由器的某一下游鄰居路由器發(fā)送的剪枝報文,說明該下游鄰居路由器不需要轉(zhuǎn)發(fā)該組播組的組播數(shù)據(jù),則該路由器將發(fā)送剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為第一轉(zhuǎn)發(fā)標(biāo)識,如用“0”表示。
指定路由器可維護(hù)有鄰居查詢定時器(Neighbour Query Timer,NQT)。NQT定時的時長可根據(jù)實際需要設(shè)置,例如可將NQT定時的時長設(shè)置為1秒。NQT的作用是周期性觸發(fā)指定路由器組播指定路由器自身維護(hù)的PIM鄰居列表。指定路由器可以發(fā)送PIM鄰居查詢報文的方式,組播指定路由器自身維護(hù)的PIM鄰居列表,即指定路由器可在NQT的觸發(fā)下,定時發(fā)送PIM鄰居查詢報文。PIM協(xié)議報文可承載在IP報文之上,封裝在IP報文的“DATA”字段中。
為了與現(xiàn)有PIM協(xié)議報文格式兼容,PIM鄰居查詢報文的格式構(gòu)造示例如表1所示 表1
表1所示的PIM鄰居查詢報文的格式中的各字段的含義說明如下 “PIM Ver”字段占用4個比特(Bit),用于表示PIM協(xié)議的版本號,如設(shè)置數(shù)值為2; “Type”字段用于表示報文的格式。PIM鄰居查詢報文的類型可包括PIM鄰居普通查詢報文和PIM鄰居剪枝查詢報文,其中,PIM鄰居普通查詢報文由指定路由器發(fā)送,PIM鄰居剪枝查詢報文可由發(fā)起剪枝檢測的路由器發(fā)送。在“Type”字段可定義不同取值用于表示兩種不同類型的PIM鄰居檢測報文,例如可定義取值為“10”表示報文類型為PIM鄰居普通查詢報文;取值為“12”表示報文類型為PIM鄰居剪枝查詢報文。
“Reserved”字段保留字段。
“Checksum”字段校驗字段。
“NID”字段鄰居IP地址(Neighbour IP Address),占用32比特,對于PIM鄰居普通查詢報文,該字段用于填寫PIM鄰居的標(biāo)識,如PIM鄰居的IP地址;其中,NID1用于填寫發(fā)送報文的路由器的IP地址。NID2...NIDN分別用于填寫其它路由器的IP地址,N表示共享網(wǎng)段屬于同一組播組的路由器的總數(shù)量;可依照IP地址的大小,從小到大的順序排列。
“F”字節(jié)占用1比特,用于標(biāo)識NID1...NIDN中表示的路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。如某一路由器不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),可將“F”字節(jié)設(shè)置為“0”;如果該鄰居路由器需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),可將“F”字節(jié)設(shè)置為“1”。
PIM鄰居查詢報文的目的IP地址可設(shè)置為組播組的組播地址,如224.0.0.2。這樣共享網(wǎng)段屬于同一組播組的各路由器都可接收到該報文。
步驟23、任一路由器接收PIM鄰居列表,如果接收到的PIM鄰居列表沒有包含路由器自身記錄的實際鄰居信息時,更新PIM鄰居列表,并組播更新后的PIM鄰居列表。
任一路由器記錄的實際鄰居信息可包括該路由器的PIM鄰居關(guān)系,和/或,該路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。任一路由器接收到指定路由器定時組播的PIM鄰居普通查詢報文時,將進(jìn)行普通檢測。任一路由器進(jìn)行普通檢測的可能實現(xiàn)過程如圖2b所示,具體可包括 步驟231該路由器判斷收到PIM鄰居普通查詢報文的接口是否開啟PIM協(xié)議,如果該接口開啟了PIM協(xié)議,則執(zhí)行步驟232;如果該接口關(guān)閉了PIM協(xié)議,則執(zhí)行步驟235。
步驟232該路由器判斷該接口是否處于正常工作(UP)狀態(tài),如果處于正常工作(UP)狀態(tài),則執(zhí)行步驟233;如果處于非正常工作(Shutdown)狀態(tài),則執(zhí)行步驟234。
步驟233該路由器根據(jù)指定路由器發(fā)送的PIM鄰居普通查詢報文,更新該接口的PIM鄰居列表;結(jié)束。
如果該接口是剛開啟了PIM協(xié)議,則該路由器在發(fā)送遵循PIM協(xié)議的HELLO消息時,需通知其他路由器添加自身相關(guān)的鄰居信息。在該路由器根據(jù)指定路由器發(fā)送的PIM鄰居普通查詢報文,更新該接口的PIM鄰居列表時,如果該接口的PIM鄰居列表中維護(hù)有保持時間(Hello Hold Time)定時器,則將保持時間定時器更新為初始值,從而抑制現(xiàn)有PIM鄰居HELLO機制,即抑制路由器在保持時間定時器超時時,向共享網(wǎng)段發(fā)送HELLO消息,因此節(jié)省了該路由器維系PIM鄰居列表所需的資源。
步驟234該路由器通知其他路由器刪除與自身相關(guān)的鄰居信息,清空該接口下的PIM鄰居列表,并從組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中移除該接口;結(jié)束。
步驟235該路由器判斷該接口是否處于正常工作(UP)狀態(tài),如果處于正常工作(UP)狀態(tài),則執(zhí)行步驟236;如果處于非正常工作(Shutdown)狀態(tài),則執(zhí)行步驟238。
步驟236該路由器判斷收到的PIM鄰居查詢報文中是否存在該路由器的標(biāo)識,如果存在,執(zhí)行步驟237;否則,執(zhí)行步驟238。
步驟237該路由器通知其他路由器刪除與自身相關(guān)的鄰居信息,執(zhí)行步驟238。
步驟238如果該接口仍存在PIM鄰居列表,則清空該接口下的PIM鄰居列表;如果該接口的PIM鄰居列表已經(jīng)為空,則不進(jìn)行處理;結(jié)束。
當(dāng)前路由器可以組播PIM鄰居查詢應(yīng)答報文的方式,通知其他路由器刪除或添加自身相關(guān)的鄰居信息。為了與現(xiàn)有PIM協(xié)議報文格式兼容,PIM鄰居查詢應(yīng)答報文的格式構(gòu)造示例如表2所示 表2
表2所示的PIM鄰居查詢應(yīng)答報文的格式中的各字段的含義說明如下 “PIM Ver”字段占用4個比特(Bit),用于表示PIM協(xié)議的版本號,如設(shè)置數(shù)值為2; “Type”字段用于表示報文的格式。PIM鄰居查詢應(yīng)答報文的類型可包括PIM鄰居普通查詢應(yīng)答報文和PIM鄰居剪枝查詢應(yīng)答報文,其中,PIM鄰居普通查詢應(yīng)答報文為PIM鄰居普通查詢報文的響應(yīng)報文,PIM鄰居剪枝查詢應(yīng)答報文為PIM鄰居剪枝查詢報文的響應(yīng)報文。在“Type”字段可定義不同取值用于表示兩種不同類型的PIM鄰居查詢應(yīng)答報文,例如可定義取值為“11”表示報文類型為PIM鄰居普通查詢應(yīng)答報文;取值為“13”表示報文類型為PIM鄰居剪枝查詢應(yīng)答報文。
“Reserved”字段保留字段。
“Checksum”字段校驗字段。
“NID”字段占用32個比特,用于填寫發(fā)送該報文的路由器標(biāo)識,如發(fā)送該報文的路由器的IP地址。
“F”字節(jié)占用1比特,用于表示發(fā)送該報文的路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。如發(fā)送該報文的路由器不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),可將“F”字節(jié)設(shè)置為“0”;如果發(fā)送該報文的路由器需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),可將“F”字節(jié)設(shè)置為“1”。
“Operation Type”字段操作類型,取值為“0”和“1”;其中,“0”表示收到該報文的路由器需要刪除發(fā)送該報文的路由器相關(guān)的鄰居信息,如收到該報文的路由器刪除由“NID”字段標(biāo)識的PIM鄰居;“1”表示是收到該報文的路由器需要增加發(fā)送該報文的路由器相關(guān)的鄰居信息,如收到該報文的路由器維持或增加由“NID”字段標(biāo)識的PIM鄰居。
上述“F”字節(jié)和“Operation Type”字段的設(shè)置存在某些關(guān)聯(lián),例如如果“Operation Type”字段的值設(shè)置為“0”,則“F”字節(jié)的值也設(shè)置為“0”。
可選的,PIM鄰居查詢應(yīng)答報文的目的IP地址可設(shè)置為指定路由器的地址。指定路由器接收到該報文后,會更新指定路由器自身維護(hù)的PIM鄰居列表,并在后續(xù)NQT周期內(nèi)會組播更新后的pIM鄰居列表,從而更新共享網(wǎng)段屬于同一組播組的各路由器的PIM鄰居列表。
可選的,PIM鄰居查詢應(yīng)答報文的目的IP地址可設(shè)置為組播組的組播地址,如224.0.0.2。這樣共享網(wǎng)段屬于同一組播組的各路由器都可接收到該報文。如此處理的好處在于一方面,鄰居信息發(fā)生變化的路由器,可根據(jù)PIM鄰居查詢應(yīng)答報文,直接更新該共享網(wǎng)段屬于同一組播組的各路由器的PIM鄰居列表;另一方面,指定路由器也可接收到PIM鄰居查詢應(yīng)答報文,指定路由器根據(jù)該報文更新自身維護(hù)的PIM鄰居列表,并在后續(xù)NQT周期內(nèi)會組播更新后的PIM鄰居列表,從而從上述兩個方面共同保證了共享網(wǎng)段PIM鄰居列表的持續(xù)更新。
本實施例通過引入快速鄰居普通檢測機制直接并持續(xù)更新同一個共享網(wǎng)段各路由器維護(hù)的PIM鄰居列表,抑制現(xiàn)有技術(shù)的PIM鄰居HELLO消息機制,并可快速發(fā)現(xiàn)鄰居,便于路由器進(jìn)行快速剪枝決策,從而進(jìn)一步縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
圖3a為本發(fā)明第三實施例提供的剪枝檢測機制的實現(xiàn)方法流程圖。如圖3a所示的方法包括 步驟31假設(shè)某一路由器接收到該路由器的某一下游鄰居路由器發(fā)送的剪枝報文,該剪枝報文用于通知該下游鄰居路由器不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
步驟32該路由器在自身保存的PIM鄰居列表中,將發(fā)送剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,更新為第一轉(zhuǎn)發(fā)標(biāo)識,如將下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“0”。
步驟33該路由器根據(jù)更新后的PIM鄰居列表,確定該路由器的下游鄰居路由器數(shù)量,并根據(jù)該路由器的下游鄰居路由器數(shù)量以及該路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
對于下游鄰居路由器的數(shù)量不為零的任一路由器,如路由器A,當(dāng)路由器A接收到某一下游鄰居路由器發(fā)送的剪枝報文時,進(jìn)行剪枝檢測的處理流程可如圖3b所示,具體可包括 步驟331路由器A在自身維護(hù)的PIM鄰居列表中,將發(fā)送剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為第一轉(zhuǎn)發(fā)標(biāo)識,如設(shè)置為“0”。
步驟332路由器A確定該路由器的下游鄰居路由器數(shù)量,判斷鄰居數(shù)量是否等于1,如果鄰居數(shù)量等于1,執(zhí)行步驟333;否則,執(zhí)行步驟334。
步驟333路由器A立即進(jìn)行剪枝處理,如在路由器A已建立的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)組播數(shù)據(jù)的接口;如果路由器A存在上游鄰居路由器,則向上游鄰居路由器發(fā)送剪枝報文;結(jié)束。
步驟334路由器A確定組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器,如設(shè)置為“1”的下游鄰居路由器的數(shù)量。
步驟335路由器A判斷組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“1”的下游鄰居路由器的數(shù)量是否為0,如果是,執(zhí)行步驟333;否則,如果路由器A還沒有發(fā)出PIM鄰居剪枝查詢報文,則執(zhí)行步驟336。
步驟336路由器A生成并組播PIM鄰居剪枝查詢報文,該PIM鄰居剪枝查詢報文的“NID”字段中包括組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“1”的下游鄰居路由器的IP地址,“F”字節(jié)設(shè)置為“1”。
步驟337接收到PIM鄰居剪枝查詢報文的路由器,判斷該報文的“NID”字段是否包含自己的IP地址,如果是,執(zhí)行步驟339;否則,執(zhí)行步驟338。
步驟338接收到PIM鄰居剪枝查詢報文的路由器對該報文不進(jìn)行處理,結(jié)束。
步驟339接收到PIM鄰居剪枝查詢報文的路由器,判斷是否需要維護(hù)與發(fā)送PIM鄰居剪枝查詢報文的路由器的鄰居關(guān)系;如果需要維持該鄰居關(guān)系,執(zhí)行步驟3312;否則,執(zhí)行步驟3310。
步驟3310接收到PIM鄰居剪枝查詢報文的路由器,生成PIM鄰居剪枝查詢應(yīng)答報文,PIM鄰居剪枝查詢應(yīng)答報文的“operation type”字段設(shè)置為0和“F”字節(jié)設(shè)置為“0”,用于通知發(fā)送PIM鄰居剪枝查詢報文的路由器不需要維持鄰居關(guān)系,讓發(fā)送PIM鄰居剪枝查詢報文的路由器刪除與自己的鄰居關(guān)系。
步驟3311路由器A接收PIM鄰居剪枝查詢應(yīng)答報文,更新自身維護(hù)的PIM鄰居列表,即在路由器A的PIM鄰居列表中,刪除發(fā)送PIM鄰居剪枝查詢應(yīng)答報文的路由器的相關(guān)信息;執(zhí)行步驟332。
步驟3312接收到PIM鄰居剪枝查詢報文的路由器,判斷是否存在與自身連接的、需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)的接收者,如果存在,則執(zhí)行步驟3313;否則,執(zhí)行步驟3315。
步驟3313接收到PIM鄰居剪枝查詢報文的路由器,生成PIM鄰居剪枝查詢應(yīng)答報文,PIM鄰居剪枝查詢應(yīng)答報文的“operation type”字段設(shè)置為“1”和“F”字節(jié)設(shè)置為“1”,用于通知發(fā)送PIM鄰居剪枝查詢報文的路由器需要維持鄰居關(guān)系,且需要向自身轉(zhuǎn)發(fā)組播數(shù)據(jù)。
步驟3314路由器A接收PIM鄰居剪枝查詢報文,不進(jìn)行剪枝處理;結(jié)束。
步驟3315接收到PIM鄰居剪枝查詢報文的路由器,生成PIM鄰居剪枝查詢應(yīng)答報文,PIM鄰居剪枝查詢應(yīng)答報文的“operation type”字段設(shè)置為“1”和“F”字節(jié)設(shè)置為“0”,用于通知發(fā)送PIM鄰居剪枝查詢報文的路由器需要維持鄰居關(guān)系,但不需要向自身轉(zhuǎn)發(fā)組播數(shù)據(jù)。
步驟3316當(dāng)前路由器接收PIM鄰居剪枝查詢報文,更新自身維護(hù)的PIM鄰居列表,即在當(dāng)前路由器的PIM鄰居列表中,將發(fā)送PIM鄰居剪枝查詢應(yīng)答報文的路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“0”;結(jié)束。
本實施例通過引入快速鄰居剪枝檢測機制可快速發(fā)現(xiàn)鄰居,持續(xù)更新路由器維護(hù)的PIM鄰居列表,便于路由器進(jìn)行快速剪枝決策,從而進(jìn)一步縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
圖4為本發(fā)明第四實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法應(yīng)用場景示意圖。如圖4所示,本實施例應(yīng)用場景包括組播源和5個路由器,分別表示為R1、R2、R3、R4和R5,共享網(wǎng)段中屬于同一組播組的路由器有R2、R3和R4,各路由器之間的相對位置關(guān)系如圖4所示。在如4所示的應(yīng)用場景中可能存在的剪枝處理流程如下 (1)R4下游連接有接收者,表示為接收者1,接收者1接收組播源發(fā)出的組播數(shù)據(jù); (2)R2、R3和R4通過它們之間的共享網(wǎng)段形成PIM鄰居關(guān)系。假設(shè)R2、R3和R4中R3的優(yōu)先級最高,因此可選舉R3作為指定路由器。R3建立并維護(hù)PIM鄰居列表,以NQT為時間間隔,定時組播PIM鄰居普通查詢報文,用于維系該共享網(wǎng)段的PIM鄰居關(guān)系。R3組播的PIM鄰居普通查詢報文中包括R2、R3和R4的IP地址,假設(shè)PIM鄰居普通查詢報文中,R3對應(yīng)的“F”字節(jié)設(shè)置為“0”,R2和R4對應(yīng)的“F”字節(jié)均設(shè)置為“1”,用于表示R2和R4需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
(3)假設(shè)接收者1此時不需要接收組播源的組播數(shù)據(jù),則R4向共享網(wǎng)段組播剪枝報文。
(4)R2連接R3和R4的接口收到R4發(fā)出的剪枝報文,此時,R2檢測自身維護(hù)的PIM鄰居報文的鄰居數(shù),確定R2的PIM鄰居列表中有2個下游鄰居路由器,但是只有R4的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“1”,且收到的剪枝報文為R4發(fā)出,則R2更新自身維護(hù)的PIM鄰居列表,如將R4的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“0”,同時立刻剪枝,并向R1發(fā)送剪枝報文。
(5)R1收到R2發(fā)出的剪枝報文,此時,R1檢測自身維護(hù)的PIM鄰居報文的鄰居數(shù),確定R1的PIM鄰居列表中只有1個下游鄰居路由器R2,同時該剪枝報文也為R2發(fā)出,則R1更新自身維護(hù)的PIM鄰居列表,如將R2的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“0”,同時立刻剪枝。
這樣,在不到1秒的時間內(nèi),R1->R2->R4可以立刻剪枝,明顯縮短了剪枝所需的延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源,并節(jié)約了路由器的處理資源。
圖5為本發(fā)明第五實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法應(yīng)用場景示意圖。如圖5所示,本實施例應(yīng)用場景包括組播源和4個路由器,分別表示為R1、R2、R3和R4,共享網(wǎng)段中屬于同一組播組的路由器有R2、R3和R4,各路由器之間的相對位置關(guān)系如圖5所示;R3下游連接有接收者,表示為接收者1;R4下游也連接有接收者,表示為接收者2。在如5所示的應(yīng)用場景中可能存在的剪枝處理流程如下 (1)R3下游連接有接收者,表示為接收者1;R4下游連接有接收者,表示為接收者2;接收者1和接收者2均接收組播源發(fā)出的組播數(shù)據(jù)。
(2)R2、R3和R4通過它們之間的共享網(wǎng)段形成PIM鄰居關(guān)系。假設(shè)R2、R3和R4中R3的優(yōu)先級最高,因此可選舉R3作為指定路由器。R3建立并維護(hù)PIM鄰居列表,以NQT為時間間隔,定時組播PIM鄰居普通查詢報文,用于維系該共享網(wǎng)段的PIM鄰居關(guān)系。R3組播的PIM鄰居普通查詢報文中包括R2、R3和R4的IP地址,假設(shè)PIM鄰居普通查詢報文中,R2對應(yīng)的“F”字節(jié)設(shè)置為“1”,R4對應(yīng)的“F”字節(jié)設(shè)置為“1”,即分別表示R3和R4需要轉(zhuǎn)發(fā)該組播源的組播數(shù)據(jù)。
(3)假設(shè)接收者1此時不需要接收組播源的組播數(shù)據(jù),則R3向共享網(wǎng)段組播剪枝報文。
(4)R2連接R3和R4的接口收到R3發(fā)出的剪枝報文,此時,R2檢測自身維護(hù)的PIM鄰居報文的鄰居數(shù),確定R2的PIM鄰居列表中有2個下游鄰居路由器R3和R4,且R3和R4的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識設(shè)置為“1”,則R2更新R2自身維護(hù)的PIM鄰居列表中R3的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,如將R3的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識由“1”更新為“0”;并在共享網(wǎng)段組播PIM鄰居剪枝查詢報文,該PIM鄰居剪枝報文的NID字段中包括R4的相關(guān)信息。
(5)R4接收到R2發(fā)出的PIM鄰居剪枝查詢報文,發(fā)現(xiàn)R4下游還存在需要轉(zhuǎn)發(fā)該組播源的組播數(shù)據(jù)的接收者2,因此,向R2發(fā)送PIM鄰居剪枝應(yīng)答報文,該鄰居剪枝應(yīng)答報文的“Operation Type”字段和“F”位都設(shè)置為“1”,用于通知R4需要轉(zhuǎn)發(fā)該組播源的組播數(shù)據(jù)、R2需維持R4的PIM鄰居關(guān)系。
(6)R3接收到R2發(fā)出的PIM鄰居剪枝查詢報文,發(fā)現(xiàn)該PIM鄰居剪枝查詢報文的“NID”字段包含的信息不是R3相關(guān)的信息,因此,R3不對該PIM鄰居剪枝查詢報文進(jìn)行處理。
(7)R2接收到R4發(fā)出的PIM鄰居剪枝查詢應(yīng)答報文,發(fā)現(xiàn)R4還需要轉(zhuǎn)發(fā)該組播源的組播數(shù)據(jù),則維持PIM鄰居列表中關(guān)于R4相關(guān)信息不變;由于R4的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識不為“0”,因此R2不進(jìn)行剪枝處理。此時,組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑為組播源->R1->R2->R4->接收者2。
通過圖5的應(yīng)用實例可以看出,采用本發(fā)明實施例的技術(shù)方案,路由器可快速進(jìn)行是否剪枝的決策,縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,從而節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
圖6為本發(fā)明第六實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置的結(jié)構(gòu)示意圖。如圖6所示,組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置包括鄰居列表獲取模塊61和剪枝處理模塊62。
鄰居列表獲取模塊61用于獲取共享網(wǎng)段屬于同一組播組的各路由器的PIM鄰居列表;所述PIM鄰居列表包括各所述路由器的PIM鄰居關(guān)系、以及各所述路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于表示是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
剪枝處理模塊62用于根據(jù)所述PIM鄰居關(guān)系確定自身下游鄰居路由器數(shù)量,并根據(jù)所述下游鄰居路由器數(shù)量、以及所述各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
本實施例提供的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置表現(xiàn)實體不受限制,例如可具體為路由器。如果本實施例所述的裝置被選舉作為指定路由器,鄰居列表獲取模塊61具體可用于建立所述組播組的PIM鄰居列表。所述裝置還可包括定時組播模塊64。定時組播模塊64用于以預(yù)設(shè)時間間隔,定時組播所述裝置自身維護(hù)的所述PIM鄰居列表。如果本實施例所述的裝置不是指定路由器,則不包括定時組播模塊64??蛇x的,鄰居列表獲取模塊61可具體用于接收指定路由器組播的所述PIM鄰居列表。
可選的,所述裝置還可包括鄰居列表維護(hù)模塊63。鄰居列表維護(hù)模塊63用于維護(hù)所述裝置的PIM鄰居列表。
在上述技術(shù)方案的基礎(chǔ)上,可選的,鄰居列表維護(hù)模塊63具體可用于在所述PIM鄰居列表沒有包含所述裝置記錄的實際鄰居信息時,根據(jù)所述裝置記錄的實際鄰居信息,更新并保存所述PIM鄰居列表;所述裝置記錄的實際鄰居信息包括所述裝置實際記錄的PIM鄰居關(guān)系,和/或,所述裝置關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識。相應(yīng)的,所述裝置還可包括發(fā)送模塊65。發(fā)送模塊65用于組播所述裝置更新后的所述PIM鄰居列表,或者,向所述指定路由器發(fā)送更新后的所述PIM鄰居列表。
在上述技術(shù)方案的基礎(chǔ)上,可選的,鄰居列表維護(hù)模塊63還可具體用于在接收到所述裝置的下游鄰居路由器發(fā)送的剪枝報文時,在所述裝置自身保存的所述PIM鄰居列表中,將發(fā)送所述剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,更新為所述第一轉(zhuǎn)發(fā)標(biāo)識;所述第一轉(zhuǎn)發(fā)標(biāo)識用于表示所述裝置不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
在上述技術(shù)方案的基礎(chǔ)上,可選的,剪枝處理模塊62具體用于在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識均為所述第一轉(zhuǎn)發(fā)標(biāo)識時,在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口。
剪枝處理模塊62具體還可用于在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);或者,在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,如果接收到所述下游鄰居路由器發(fā)送的剪枝報文,則與組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器確認(rèn),所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器實際是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);如果實際需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),則在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);否則,移除所述接口。
在上述技術(shù)方案的基礎(chǔ)上,可選的,發(fā)送模塊65還可用于在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口之后,組播剪枝報文,用于通知所述裝置的上游鄰居路由器,所述裝置不需要接收所述組播組的所述組播數(shù)據(jù)。
本實施例在PIM鄰居列表中記錄各路由器的PIM鄰居關(guān)系以及各路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,使得本實施例所述裝置需要發(fā)起剪枝處理流程時,可根據(jù)自身下游鄰居路由器數(shù)量以及各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,進(jìn)行是否剪枝的決策,因此,縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。本實施例所述裝置可具體實現(xiàn)為路由器,其工作機理可參見圖1-圖5對應(yīng)實施例的記載,在此不再贅述。
本發(fā)明實施例還提供了一種網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備包括上述組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置。該網(wǎng)絡(luò)設(shè)備具體表現(xiàn)實體不受限制,例如該網(wǎng)絡(luò)設(shè)備可具體為一交換機、路由器或具有路由功能的其他類型設(shè)備等。
本領(lǐng)域普通技術(shù)人員可以理解附圖只是一個實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
本領(lǐng)域普通技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述分布于實施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法,其特征在于,包括
獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表;所述協(xié)議無關(guān)組播鄰居列表包括各所述路由器的協(xié)議無關(guān)組播鄰居關(guān)系、以及各所述路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于表示是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);
根據(jù)所述協(xié)議無關(guān)組播鄰居關(guān)系確定任一路由器的下游鄰居路由器數(shù)量,并根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理之前,還包括
在所述任一路由器接收到所述任一路由器的下游鄰居路由器發(fā)送的剪枝報文時,所述任一路由器在自身保存的所述協(xié)議無關(guān)組播鄰居列表中,將發(fā)送所述剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,更新為第一轉(zhuǎn)發(fā)標(biāo)識;所述第一轉(zhuǎn)發(fā)標(biāo)識用于表示不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理,包括
在所述任一路由器的下游鄰居路由器的數(shù)量不為零、且所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識均為第一轉(zhuǎn)發(fā)標(biāo)識時,在所述任一路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理,還包括
在所述任一路由器的下游鄰居路由器的數(shù)量不為零、且所述任一路由器至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,在所述任一路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);所述第二轉(zhuǎn)發(fā)標(biāo)識用于表示需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);或者,
在所述任一路由器的下游鄰居路由器的數(shù)量不為零、且所述任一路由器至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,如果所述任一路由器接收到所述下游鄰居路由器發(fā)送的剪枝報文,則所述任一路由器與組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器確認(rèn),所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器實際是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);如果所述任一路由器實際需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),則在所述任一路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);否則,移除所述接口。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,在所述任一路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口之后,還包括
所述任一路由器組播剪枝報文,用于通知所述任一路由器的上游鄰居路由器,所述任一路由器不需要接收所述組播組的組播數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表,包括
在所述共享網(wǎng)段屬于同一組播組的各路由器中,以預(yù)設(shè)選舉規(guī)則選舉一指定路由器;
所述指定路由器建立所述組播組的協(xié)議無關(guān)組播鄰居列表,并組播所述協(xié)議無關(guān)組播鄰居列表;
所述任一路由器接收并維護(hù)所述協(xié)議無關(guān)組播鄰居列表。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述指定路由器組播所述協(xié)議無關(guān)組播鄰居列表,包括
所述指定路由器以預(yù)設(shè)時間間隔,定時組播所述指定路由器維護(hù)的所述協(xié)議無關(guān)組播鄰居列表。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述任一路由器接收并維護(hù)所述協(xié)議無關(guān)組播鄰居列表,包括
所述任一路由器接收所述協(xié)議無關(guān)組播鄰居列表;
所述任一路由器在所述協(xié)議無關(guān)組播鄰居列表沒有包含所述任一路由器記錄的實際鄰居信息時,根據(jù)所述任一路由器記錄的實際鄰居信息,更新所述協(xié)議無關(guān)組播鄰居列表;所述任一路由器記錄的實際鄰居信息包括所述任一路由器實際記錄的協(xié)議無關(guān)組播鄰居關(guān)系,和/或,所述任一路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;
所述任一路由器保存并組播更新后的所述協(xié)議無關(guān)組播鄰居列表,或者,所述任一路由器保存并向所述指定路由器發(fā)送更新后的所述協(xié)議無關(guān)組播鄰居列表。
9.一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置,其特征在于,包括
鄰居列表獲取模塊,用于獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表;所述協(xié)議無關(guān)組播鄰居列表包括各所述路由器的協(xié)議無關(guān)組播鄰居關(guān)系、以及各所述路由器關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于表示是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);
剪枝處理模塊,用于根據(jù)所述協(xié)議無關(guān)組播鄰居關(guān)系確定自身下游鄰居路由器數(shù)量,并根據(jù)所述下游鄰居路由器數(shù)量、以及所述各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括
鄰居列表維護(hù)模塊,用于維護(hù)所述裝置的協(xié)議無關(guān)組播鄰居列表。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,還包括
所述鄰居列表維護(hù)模塊,具體用于在接收到所述裝置的下游鄰居路由器發(fā)送的剪枝報文時,在所述裝置自身保存的所述協(xié)議無關(guān)組播鄰居列表中,將發(fā)送所述剪枝報文的下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,更新為第一轉(zhuǎn)發(fā)標(biāo)識;所述第一轉(zhuǎn)發(fā)標(biāo)識用于表示所述裝置不需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,
所述剪枝處理模塊,具體用于在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識均為所述第一轉(zhuǎn)發(fā)標(biāo)識時,在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,移除用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,
所述剪枝處理模塊,具體用于在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);所述第二轉(zhuǎn)發(fā)標(biāo)識用于表示需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);或者,
所述剪枝處理模塊,具體用于在所述裝置的下游鄰居路由器的數(shù)量不為零、且所述裝置至少一個下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識時,如果接收到所述下游鄰居路由器發(fā)送的剪枝報文,則與組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器確認(rèn),所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識為第二轉(zhuǎn)發(fā)標(biāo)識的下游鄰居路由器實際是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);如果實際需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù),則在所述裝置的組播數(shù)據(jù)轉(zhuǎn)發(fā)表項中,維持用于向下游轉(zhuǎn)發(fā)所述組播數(shù)據(jù)的接口處于轉(zhuǎn)發(fā)狀態(tài);否則,移除所述接口。
14.根據(jù)權(quán)利要求10所述的裝置,其特征在于,
所述鄰居列表維護(hù)模塊,具體用于在所述協(xié)議無關(guān)組播鄰居列表沒有包含所述裝置記錄的實際鄰居信息時,根據(jù)所述裝置記錄的實際鄰居信息,更新并保存所述協(xié)議無關(guān)組播鄰居列表;所述裝置記錄的實際鄰居信息包括所述裝置實際記錄的協(xié)議無關(guān)組播鄰居關(guān)系,和/或,所述裝置關(guān)于所述組播組的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;
所述裝置還包括發(fā)送模塊,用于組播所述裝置更新后的所述協(xié)議無關(guān)組播鄰居列表。
15.根據(jù)權(quán)利要求9-14任一所述的裝置,其特征在于,
所述鄰居列表獲取模塊,具體用于建立所述組播組的協(xié)議無關(guān)組播鄰居列表;
所述裝置還包括定時組播模塊,用于以預(yù)設(shè)時間間隔,定時組播所述裝置自身維護(hù)的所述協(xié)議無關(guān)組播鄰居列表。
16.根據(jù)權(quán)利要求9-14任一所述的裝置,其特征在于,
所述鄰居列表獲取模塊,具體用于接收指定路由器組播的所述協(xié)議無關(guān)組播鄰居列表,所述指定路由器由所述共享網(wǎng)段屬于同一組播組的各路由器以預(yù)設(shè)選舉規(guī)則選舉得到。
17.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括如權(quán)利要求9-16任一所述的組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理裝置。
全文摘要
本發(fā)明提供了一種組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理方法、裝置和網(wǎng)絡(luò)設(shè)備。該方法包括獲取共享網(wǎng)段屬于同一組播組的各路由器的協(xié)議無關(guān)組播鄰居列表;所述協(xié)議無關(guān)組播鄰居列表包括各所述路由器的協(xié)議無關(guān)組播鄰居關(guān)系、以及各所述路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識;所述組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識用于是否需要轉(zhuǎn)發(fā)所述組播組的組播數(shù)據(jù);根據(jù)所述協(xié)議無關(guān)組播鄰居關(guān)系確定所述任一路由器的下游鄰居路由器數(shù)量,并根據(jù)所述任一路由器的下游鄰居路由器數(shù)量、以及所述任一路由器的各下游鄰居路由器的組播數(shù)據(jù)轉(zhuǎn)發(fā)標(biāo)識,對所述組播數(shù)據(jù)的轉(zhuǎn)發(fā)路徑進(jìn)行剪枝處理。本發(fā)明縮短了共享網(wǎng)段中組播數(shù)據(jù)轉(zhuǎn)發(fā)路徑的剪枝處理延遲,節(jié)省了網(wǎng)絡(luò)帶寬資源和組播路由器的資源消耗。
文檔編號H04L12/18GK101764756SQ20101000421
公開日2010年6月30日 申請日期2010年1月14日 優(yōu)先權(quán)日2010年1月14日
發(fā)明者楊敬民 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南郑县| 谢通门县| 鄂尔多斯市| 弋阳县| 荔波县| 江华| 中牟县| 中山市| 梁平县| 石台县| 宁城县| 平原县| 永安市| 灵丘县| 太康县| 普格县| 黄大仙区| 浦县| 石屏县| 台北市| 永州市| 商河县| 焉耆| 临高县| 旺苍县| 长沙市| 烟台市| 翼城县| 平定县| 六安市| 平阳县| 信宜市| 崇文区| 亳州市| 五寨县| 嵊州市| 怀来县| 江孜县| 通许县| 盐津县| 桐柏县|