專利名稱::組播轉(zhuǎn)發(fā)路徑的查詢方法、中間節(jié)點(diǎn)和管理節(jié)點(diǎn)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明實(shí)施例涉及組播網(wǎng)絡(luò)通信技術(shù),尤其涉及一種組播轉(zhuǎn)發(fā)路徑的查詢方法、中間節(jié)點(diǎn)和管理節(jié)點(diǎn)。
背景技術(shù):
:組播技術(shù)在IP網(wǎng)絡(luò)中應(yīng)用廣泛,主要應(yīng)用于視頻點(diǎn)播、視頻會(huì)議等服務(wù)。協(xié)議無關(guān)組播(ProtocolInd印endentMulticast,簡(jiǎn)稱PIM)協(xié)議是目前較為典型的一種組播協(xié)議。按照轉(zhuǎn)發(fā)機(jī)制的不同,PIM協(xié)議又可以分為密集模式(DenseMode,簡(jiǎn)稱DM)和稀疏模式(SparseMode,簡(jiǎn)稱SM)兩種。PM-DM協(xié)議主要是通過擴(kuò)散-剪枝(Flooding-Prune)機(jī)制構(gòu)建一個(gè)組播源(Source)節(jié)點(diǎn)到接收者節(jié)點(diǎn)之間的最短路徑樹(ShortestPathTree,簡(jiǎn)稱SPT)來轉(zhuǎn)發(fā)組播流,如圖1所示為現(xiàn)有基于PM-匿協(xié)議的組播網(wǎng)絡(luò)架構(gòu)圖,其中箭頭所示的路徑為組播源節(jié)點(diǎn)和接收者節(jié)點(diǎn)之間的SPT。在基于PIM-SM協(xié)議的組播網(wǎng)絡(luò)中,通常還預(yù)先設(shè)定有匯聚點(diǎn)(RendezvousPoint,簡(jiǎn)稱RP),RP是PIM組播網(wǎng)絡(luò)中的關(guān)鍵網(wǎng)絡(luò)設(shè)備。RP是某個(gè)或某些組播組對(duì)應(yīng)的組播轉(zhuǎn)發(fā)樹的根節(jié)點(diǎn),即起點(diǎn)。接收者節(jié)點(diǎn)所直連路由器可稱為接收者指定路由器(ReceiverDesignatedRouter,簡(jiǎn)稱RDR),RP與RDR之間的單播路由轉(zhuǎn)發(fā)路徑最短,其中,路徑最短具體可以是指根據(jù)路徑成本(cost)計(jì)算確定最短路徑,可采用開放式最短路徑優(yōu)先(OpenShortestPathFirst,簡(jiǎn)稱0SPF)協(xié)議確定。RP與RDR之間的組播轉(zhuǎn)發(fā)樹可稱為匯聚樹(RPTree,RPT),RPT又可稱為共享樹(ShareTree)。以發(fā)送組播數(shù)據(jù)報(bào)文的第一臺(tái)組播轉(zhuǎn)發(fā)網(wǎng)絡(luò)設(shè)備,即源指定路由器(SourceDesignatedRouter,簡(jiǎn)稱SDR)為根,SDR與RP之間的單播路由轉(zhuǎn)發(fā)路徑最短的組播轉(zhuǎn)發(fā)樹也可稱為SPT。如圖2所示,SDR與RP之間箭頭所示的路徑為SPT,RP與連接接收者節(jié)點(diǎn)的RDR之間箭頭所示的路徑為RPT。在PIM-SM協(xié)議的組播應(yīng)用中,組播源需要先將組播數(shù)據(jù)通過SDR所連接的SPT發(fā)送到RP,然后由RP通過RPT將組播數(shù)據(jù)轉(zhuǎn)發(fā)給組播接收者的RDR,最后發(fā)送給接收者節(jié)點(diǎn)。當(dāng)組播路徑建立起來之后,可以再切換至如圖1中所示的組播源節(jié)點(diǎn)與接收者節(jié)點(diǎn)之間的SPT。所以在PIM-SM協(xié)議架構(gòu)下,組播轉(zhuǎn)發(fā)路徑并不一定是組播源節(jié)點(diǎn)和接收者節(jié)點(diǎn)之間的最短路徑。組播路徑跟蹤用來跟蹤組播數(shù)據(jù)從第一跳路由器到最后一跳路由器所經(jīng)過的路徑。如果某路由器有一個(gè)接口的IP地址與指定地址在同一個(gè)網(wǎng)段內(nèi),具備組播功能,且能夠向該網(wǎng)段轉(zhuǎn)發(fā)特定組播源發(fā)來的組播流,則稱該路由器為最后一跳路由器。第一跳路由器是與組播源直連的路由器?,F(xiàn)有技術(shù)中,在啟用PIM組播服務(wù)的網(wǎng)絡(luò)中,為了進(jìn)行網(wǎng)絡(luò)管理,排查網(wǎng)絡(luò)故障,網(wǎng)絡(luò)管理員需要實(shí)時(shí)了解實(shí)際的組播轉(zhuǎn)發(fā)路徑。目前用于確定組播轉(zhuǎn)發(fā)路徑的技術(shù)有組播路徑跟蹤(Multicasttraceroute,簡(jiǎn)稱MTRACERT)技術(shù)。組播路徑跟蹤的一般流程是由查詢器向最后一跳路由器(Last-hopRouter)發(fā)送查詢(Query)報(bào)文;最后一跳路由器在收到的查詢報(bào)文后加上本地響應(yīng)數(shù)據(jù)塊,轉(zhuǎn)換成請(qǐng)求(Request)報(bào)文,查找到上游鄰居后向其單播發(fā)送該請(qǐng)求報(bào)文;最后一跳路由器到組播源之間的每一跳都在請(qǐng)求報(bào)文之后附加一個(gè)響應(yīng)數(shù)據(jù)塊,并向其上游鄰居單播轉(zhuǎn)發(fā);第一跳路由器在收到請(qǐng)求報(bào)文后,將其報(bào)文類型改為響應(yīng)(Response)報(bào)文,向查詢器單播發(fā)送完整的響應(yīng)報(bào)文,從而使查詢器獲知從最后一條路由器至第一跳路由器之間的組播轉(zhuǎn)發(fā)路徑。其中,第一跳路由器通常就是組播源直連的路由器。在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題該查詢方案的失敗率高,組播轉(zhuǎn)發(fā)路徑上如果有一臺(tái)路由器出現(xiàn)故障,則第一跳路由器就將無法收到請(qǐng)求報(bào)文,也就無法回復(fù)響應(yīng)報(bào)文,則該次查詢失敗,較高的失敗率導(dǎo)致對(duì)組播轉(zhuǎn)發(fā)路徑查詢的可靠性低。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種組播轉(zhuǎn)發(fā)路徑的查詢方法、中間節(jié)點(diǎn)和管理節(jié)點(diǎn),以提高組播轉(zhuǎn)發(fā)路徑查詢的可靠性。本發(fā)明實(shí)施例提供了一種組播轉(zhuǎn)發(fā)路徑的查詢方法,包括中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文;所述中間節(jié)點(diǎn)形成響應(yīng)報(bào)文,將從所述查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為所述響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收所述查詢報(bào)文的接口地址設(shè)置在所述響應(yīng)報(bào)文的組播源地址字段中;所述中間節(jié)點(diǎn)根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;所述中間節(jié)點(diǎn)向所述管理節(jié)點(diǎn)發(fā)送所述響應(yīng)報(bào)文,以便所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢的中間節(jié)點(diǎn),包括查詢報(bào)文接收模塊,用于接收來自管理節(jié)點(diǎn)的查詢報(bào)文;響應(yīng)報(bào)文形成模塊,用于形成響應(yīng)報(bào)文,將從所述查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為所述響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收所述查詢報(bào)文的接口地址設(shè)置在所述響應(yīng)報(bào)文的組播源地址字段中;跳數(shù)值更新模塊,用于根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;響應(yīng)報(bào)文發(fā)送模塊,用于向所述管理節(jié)點(diǎn)發(fā)送所述響應(yīng)報(bào)文,以便所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢的管理節(jié)點(diǎn),包括查詢報(bào)文產(chǎn)生模塊,用于當(dāng)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;匯聚點(diǎn)地址查詢模塊,用于當(dāng)判斷出所述路徑查詢命令中包含組播組地址時(shí),根據(jù)所述組播組地址在本地預(yù)存的匯聚點(diǎn)集合中查詢獲取對(duì)應(yīng)的匯聚點(diǎn)地址;匯聚點(diǎn)信息設(shè)置模塊,用于將所述查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),且將所述匯聚點(diǎn)地址設(shè)置在所述查詢報(bào)文的匯聚點(diǎn)地址字段中;管理地址設(shè)置模塊,用于在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在所述查詢報(bào)文的管理地址字段中;目的IP地址設(shè)置模塊,用于在所述逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為所述查詢報(bào)文的目的IP地址;查詢報(bào)文發(fā)送模塊,用于發(fā)送所述查詢報(bào)文;路徑信息記錄模塊,用于當(dāng)接收到響應(yīng)報(bào)文解析所述響應(yīng)報(bào)文的跳數(shù)字段、組播源地址字段和第一標(biāo)識(shí)位,并將解析到的跳數(shù)值、地址和第一標(biāo)識(shí)位值作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。采用本發(fā)明實(shí)施例的技術(shù)方案,可以逐跳記錄中間節(jié)點(diǎn)與管理節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑,有效提高了路徑查詢的可靠性,更便于網(wǎng)絡(luò)管理員及時(shí)和準(zhǔn)確的獲知組播轉(zhuǎn)發(fā)路徑信息。另外,通過設(shè)置第一標(biāo)識(shí)位,還可以進(jìn)一步查詢基于PM-SM的RPT路徑。為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有基于PIM-DM協(xié)議的組播網(wǎng)絡(luò)架構(gòu)圖;圖2為現(xiàn)有基于PIM-SM協(xié)議的組播網(wǎng)絡(luò)架構(gòu)圖;圖3為本發(fā)明實(shí)施例一提供的組播轉(zhuǎn)發(fā)路徑的查詢方法的流程圖;圖4為本發(fā)明實(shí)施例一中管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文方法的流程圖;圖5為本發(fā)明實(shí)施例二提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文方法的流程圖;圖6為本發(fā)明實(shí)施例二提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中中間節(jié)點(diǎn)處理查詢報(bào)文方法的流程圖;圖7為本發(fā)明實(shí)施例三提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文方法的流程圖;圖8為本發(fā)明實(shí)施例三提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中中間節(jié)點(diǎn)產(chǎn)生響應(yīng)報(bào)文方法的流程圖;圖9為本發(fā)明實(shí)施例三提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中中間節(jié)點(diǎn)處理查詢報(bào)文方法的流程圖;圖10為本發(fā)明實(shí)施例四所基于的組播網(wǎng)絡(luò)架構(gòu)示意圖;圖11為本發(fā)明實(shí)施例四提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文方法的流程圖;圖12為本發(fā)明實(shí)施例四提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中中間節(jié)點(diǎn)處理查詢報(bào)文方法的流程圖;圖13為本發(fā)明實(shí)施例五提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中管理節(jié)點(diǎn)記錄組播轉(zhuǎn)發(fā)路徑信息方法的流程圖;圖14為本發(fā)明實(shí)施例六提供的實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢方法的中間節(jié)點(diǎn)的結(jié)構(gòu)示意圖;圖15為本發(fā)明實(shí)施例七提供的實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢方法的管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖。具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一圖3為本發(fā)明實(shí)施例一提供的組播轉(zhuǎn)發(fā)路徑的查詢方法的流程圖,本實(shí)施例的方法具體包括如下步驟步驟301、中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文;步驟302、中間節(jié)點(diǎn)形成響應(yīng)報(bào)文,將從查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收查詢報(bào)文的接口地址設(shè)置在響應(yīng)報(bào)文的組播源地址字段中;步驟303、中間節(jié)點(diǎn)根據(jù)查詢報(bào)文設(shè)置響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;該跳數(shù)值用于指示該中間節(jié)點(diǎn)與查詢起點(diǎn)之間的跳數(shù)關(guān)系,若查詢起點(diǎn)為管理節(jié)點(diǎn),則應(yīng)將跳數(shù)值加一,若查詢起點(diǎn)為指定路由器,則可以保持跳數(shù)值不變。步驟304、中間節(jié)點(diǎn)向管理節(jié)點(diǎn)發(fā)送響應(yīng)報(bào)文,以便管理節(jié)點(diǎn)根據(jù)響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。本實(shí)施例的技術(shù)方案是基于路徑跟蹤技術(shù)來實(shí)現(xiàn)的,即沿中間節(jié)點(diǎn)組成的組播轉(zhuǎn)發(fā)路徑逐跳發(fā)送查詢報(bào)文來查詢組播轉(zhuǎn)發(fā)路徑。在本實(shí)施例中,進(jìn)一步采用每一跳中間節(jié)點(diǎn)在接收到查詢報(bào)文之后均產(chǎn)生并向管理節(jié)點(diǎn)返回響應(yīng)報(bào)文的技術(shù)手段,使得管理節(jié)點(diǎn)可以記錄組播轉(zhuǎn)發(fā)路徑中從管理節(jié)點(diǎn)至每一跳中間節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑信息,提高了路徑查詢的可靠性。即使出現(xiàn)某個(gè)中間節(jié)點(diǎn)故障的問題,也可以及時(shí)發(fā)現(xiàn),并準(zhǔn)確定位故障的中間節(jié)點(diǎn)。在本實(shí)施例中,所謂管理節(jié)點(diǎn),即網(wǎng)絡(luò)管理員所在的節(jié)點(diǎn),通過該管理節(jié)點(diǎn)輸入路徑查詢命令,觸發(fā)組播轉(zhuǎn)發(fā)路徑查詢。典型的路徑查詢命令至少包括待查詢節(jié)點(diǎn)地址,待查詢節(jié)點(diǎn)地址通常可以為組播源地址。當(dāng)管理節(jié)點(diǎn)獲取到路徑查詢命令,且識(shí)別到待查詢節(jié)點(diǎn)地址為組播源地址時(shí),如圖4所示,執(zhí)行下述步驟來產(chǎn)生查詢報(bào)文步驟401、當(dāng)管理節(jié)點(diǎn)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;步驟402、管理節(jié)點(diǎn)將路徑查詢命令中的組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中;查詢報(bào)文可以是基于PM協(xié)議所實(shí)現(xiàn)的PM報(bào)文,其中通常包括組播源地址字段、組播組地址字段、指定路由器地址字段、管理地址字段和跳數(shù)字段等。上述地址字段分別用于記錄組播源地址、組播組地址、指定路由器地址和管理節(jié)點(diǎn)的地址。指定路由器是接收者節(jié)點(diǎn)直接相連的路由器,也是組播轉(zhuǎn)發(fā)路徑的最后一跳節(jié)點(diǎn)。跳數(shù)字段用于記錄跳數(shù)值,即中間節(jié)點(diǎn)距離指定路由器節(jié)點(diǎn)之間的跳數(shù),初始時(shí)默認(rèn)設(shè)置為零。初始時(shí)若可以獲知組播組地址和指定路由器地址,則填入查詢報(bào)文中的相應(yīng)位置,若無法獲知,則可以將組播組地址設(shè)置為全零,即"O.0.0.0"。無法獲知指定路由器地址時(shí)則可以默認(rèn)管理節(jié)點(diǎn)即為指定路由器,將管理節(jié)點(diǎn)的地址設(shè)置在查詢報(bào)文的指定路由器字段中。步驟403、管理節(jié)點(diǎn)根據(jù)組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)(ReversePathForwarding,簡(jiǎn)稱RPF)表中查詢獲取本機(jī)指向組播源的出接口地址,將本機(jī)指向組播源的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中;步驟404a、管理節(jié)點(diǎn)在RPF表中查詢獲取指向組播源的鄰居接口地址,并將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;上述RPF表是通過單播路由、靜態(tài)組播路由綜合優(yōu)選后記錄在本地并進(jìn)行維護(hù)的數(shù)據(jù)庫,該數(shù)據(jù)庫用于檢查組播源入口是否合法,以確認(rèn)從該入口進(jìn)來的組播數(shù)據(jù)流是否應(yīng)該被接受并轉(zhuǎn)發(fā)。該RPF表是基于現(xiàn)有技術(shù)已經(jīng)可以實(shí)現(xiàn)的,在此不再贅述。RPF表中至少記錄有下列對(duì)應(yīng)關(guān)系,即組播源、本機(jī)指向組播源的出接口地址和指向組播源的鄰居接口地址。本機(jī)指向組播源的出接口地址是本機(jī)可連通組播源的一個(gè)接口的地址,指向組播源的鄰居接口地址是本機(jī)的鄰居節(jié)點(diǎn)的一個(gè)接口的地址,本機(jī)可通過該接口從鄰居節(jié)點(diǎn)連通組播源,該鄰居節(jié)點(diǎn)也就是本機(jī)通過指向組播源的出接口地址所連接的鄰居節(jié)點(diǎn)。承載該查詢報(bào)文的IP報(bào)文頭部通常包括目的IP地址和源IP地址等信息,源IP地址可以默認(rèn)設(shè)置在該管理節(jié)點(diǎn)的地址,即查詢報(bào)文中管理地址字段中的地址。步驟405、管理節(jié)點(diǎn)根據(jù)目的IP地址單播發(fā)送查詢報(bào)文至上述的鄰居節(jié)點(diǎn)。該鄰居節(jié)點(diǎn)即中間節(jié)點(diǎn),接收到查詢報(bào)文后可執(zhí)行上述的步驟301步驟304。為繼續(xù)進(jìn)行組播轉(zhuǎn)發(fā)路徑的查詢,中間節(jié)點(diǎn)在接收到來自管理節(jié)點(diǎn)的查詢報(bào)文之后還執(zhí)行下述步驟,如圖3所示步驟305、中間節(jié)點(diǎn)判斷查詢報(bào)文中的組播源地址是否為本機(jī)直連網(wǎng)絡(luò)主機(jī)地址,即判斷該組播源是否在本機(jī)直連的網(wǎng)絡(luò)中,若是,則該中間節(jié)點(diǎn)即是組播源的直連路由器,本次路徑查詢結(jié)束,否則執(zhí)行步驟306a;在上述步驟中,當(dāng)中間節(jié)點(diǎn)因與組播源直連而使得本次路徑查詢正常結(jié)束時(shí),則中間節(jié)點(diǎn)進(jìn)一步產(chǎn)生另一響應(yīng)報(bào)文,可以是將自身接收到的查詢報(bào)文的跳數(shù)值加二后設(shè)置到響應(yīng)報(bào)文中,將自身與組播源直連的接口地址設(shè)置為響應(yīng)報(bào)文的源IP地址,其他地址字段參數(shù)不變,將管理節(jié)點(diǎn)地址字段的地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,從而向管理節(jié)點(diǎn)單播發(fā)送該響應(yīng)報(bào)文。發(fā)送該響應(yīng)報(bào)文的步驟同樣適用于后續(xù)實(shí)施例中當(dāng)中間節(jié)點(diǎn)與組播源直連,本次路徑查詢結(jié)束的情況。步驟306a、中間節(jié)點(diǎn)將查詢報(bào)文中的跳數(shù)值加一;步驟307、中間節(jié)點(diǎn)根據(jù)組播源地址在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址,并將鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;步驟308、中間節(jié)點(diǎn)單播發(fā)送查詢報(bào)文,根據(jù)更新后的目的IP地址,該查詢報(bào)文將發(fā)送至下一跳的中間節(jié)點(diǎn)。在中間節(jié)點(diǎn)對(duì)查詢報(bào)文的處理過程中,除跳數(shù)值和目的IP地址之外,其他字段的參數(shù)不變,逐跳進(jìn)行發(fā)送。逐跳的中間節(jié)點(diǎn)在接收到查詢報(bào)文之后反復(fù)執(zhí)行步驟301步驟308,均根據(jù)查詢報(bào)文管理地址字段中的地址將響應(yīng)報(bào)文單播發(fā)送回管理節(jié)點(diǎn),且跳數(shù)值遞增,供管理節(jié)點(diǎn)記錄組播轉(zhuǎn)發(fā)路徑信息。當(dāng)管理節(jié)點(diǎn)接收到中間節(jié)點(diǎn)返回的響應(yīng)報(bào)文后可以進(jìn)行記錄,管理節(jié)點(diǎn)解析響應(yīng)報(bào)文的跳數(shù)字段和組播源地址字段,并將解析到的跳數(shù)值和地址作為組播轉(zhuǎn)發(fā)路徑信息進(jìn)行記錄。11具體的,管理節(jié)點(diǎn)可以在產(chǎn)生查詢報(bào)文時(shí)即預(yù)先建立堆棧來存儲(chǔ)組播轉(zhuǎn)發(fā)路徑信息,該堆棧至少包括跳數(shù)值項(xiàng)和節(jié)點(diǎn)地址項(xiàng),節(jié)點(diǎn)地址項(xiàng)用于存儲(chǔ)從響應(yīng)報(bào)文的組播源地址字段中解析出的地址。對(duì)于每一跳的中間節(jié)點(diǎn)而言,其將本機(jī)接收該查詢報(bào)文的接口地址設(shè)置在響應(yīng)報(bào)文的組播源地址字段中,所以每個(gè)響應(yīng)報(bào)文組播源地址字段中記錄了逐跳中間節(jié)點(diǎn)的地址。管理節(jié)點(diǎn)可以分別記錄每一跳中間節(jié)點(diǎn)的地址,且根據(jù)跳數(shù)值記錄該中間節(jié)點(diǎn)是第幾跳的節(jié)點(diǎn)。采用本實(shí)施例的技術(shù)方案,可以逐跳記錄中間節(jié)點(diǎn)與管理節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑,有效提高了路徑查詢的可靠性,更便于網(wǎng)絡(luò)管理員及時(shí)和準(zhǔn)確的獲知組播轉(zhuǎn)發(fā)路徑信息。實(shí)施例二圖5為本發(fā)明實(shí)施例二提供的組播轉(zhuǎn)發(fā)路徑的查詢方法中管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文方法的流程圖,本實(shí)施例可以基于實(shí)施例一實(shí)現(xiàn),且進(jìn)一步包括當(dāng)路徑查詢命令中包含指定路由器地址的情況,則管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文的步驟具體包括步驟401、當(dāng)管理節(jié)點(diǎn)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;步驟402、管理節(jié)點(diǎn)將路徑查詢命令中的組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中;步驟403、管理節(jié)點(diǎn)根據(jù)組播源地址在預(yù)存的RPF表中查詢獲取本機(jī)指向組播源的出接口地址,將本機(jī)指向組播源的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中;在本實(shí)施例中,上述實(shí)施例一中的步驟404a替換為執(zhí)行下述步驟404b:步驟404b、管理節(jié)點(diǎn)判斷路徑查詢命令中是否包含指定路由器地址,若是,則將指定路由器地址設(shè)置在查詢報(bào)文的指定路由器字段中,且將查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為指定路由器標(biāo)識(shí),將指定路由器地址設(shè)置為目的IP地址;上述步驟中的第二標(biāo)識(shí)位是用于指示當(dāng)前的查詢報(bào)文是否為發(fā)送給指定路由器的,包括指定路由器標(biāo)識(shí)和非指定路由器標(biāo)識(shí)兩種取值,可以用"1"、"0"來進(jìn)行標(biāo)識(shí)。若判斷出路徑查詢命令中不包含指定路由器地址,則將第二標(biāo)識(shí)位設(shè)置為非指定路由器標(biāo)識(shí),后續(xù)執(zhí)行過程與實(shí)施例一相同。步驟405、管理節(jié)點(diǎn)發(fā)送查詢報(bào)文,根據(jù)目的IP地址,該查詢報(bào)文將發(fā)送至指定路由器。指定路由器作為中間節(jié)點(diǎn)接收到該查詢報(bào)文時(shí),根據(jù)查詢報(bào)文設(shè)置響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值的步驟可以執(zhí)行下述操作步3031、中間節(jié)點(diǎn)識(shí)別查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若否,則將查詢報(bào)文中的跳數(shù)值加一后設(shè)置在響應(yīng)報(bào)文的跳數(shù)字段中,若是,則將查詢報(bào)文中的跳數(shù)值設(shè)置到響應(yīng)報(bào)文的跳數(shù)字段中作為跳數(shù)值。中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之后,該指定路由器處理該查詢報(bào)文再發(fā)送的過程,如圖6所示,具體為執(zhí)行下述操作步驟305、中間節(jié)點(diǎn)判斷查詢報(bào)文中的組播源地址是否為本機(jī)直連網(wǎng)絡(luò)主機(jī)地址,即判斷該組播源是否在本機(jī)直連的網(wǎng)絡(luò)中,若是,則該中間節(jié)點(diǎn)即是組播源的直連路由器,本次路徑查詢結(jié)束,否則執(zhí)行步驟306b;步驟306b、中間節(jié)點(diǎn)判斷查詢報(bào)文的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若是,則設(shè)置查詢報(bào)文的跳數(shù)值保持不變,并將第二標(biāo)識(shí)位變更為非指定路由器標(biāo)識(shí),若否,則設(shè)置查詢報(bào)文的跳數(shù)值加一;步驟307、中間節(jié)點(diǎn)根據(jù)查詢報(bào)文中的組播源地址在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址,將鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;步驟308、中間節(jié)點(diǎn)單播發(fā)送查詢報(bào)文。在本實(shí)施例中,管理節(jié)點(diǎn)仍然會(huì)接收到逐跳中間節(jié)點(diǎn)返回的響應(yīng)報(bào)文,包括指定路由器返回的響應(yīng)報(bào)文。管理節(jié)點(diǎn)解析響應(yīng)報(bào)文的跳數(shù)字段和組播源地址字段,并將解析到的跳數(shù)值和地址作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。由于指定路由器在處理查詢報(bào)文和響應(yīng)報(bào)文時(shí)保持其跳數(shù)值不變,因此管理節(jié)點(diǎn)可以依次記錄各中間節(jié)點(diǎn)到指定路由器之間的跳數(shù)。實(shí)施例三本發(fā)明實(shí)施例三提供的組播轉(zhuǎn)發(fā)路徑的查詢方法,本實(shí)施例可以上述實(shí)施例一或?qū)嵤├榛A(chǔ),且進(jìn)一步包括查詢基于PIM-SM協(xié)議的RPT路徑的方法。本實(shí)施例中,中間節(jié)點(diǎn)形成響應(yīng)報(bào)文之后,還包括當(dāng)中間節(jié)點(diǎn)判斷出查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),將響應(yīng)報(bào)文的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí)。若判斷出第一標(biāo)識(shí)位為非共享樹標(biāo)識(shí),則將響應(yīng)報(bào)文中的第一標(biāo)識(shí)位設(shè)置為非共享樹標(biāo)識(shí),實(shí)際上即保持當(dāng)前響應(yīng)報(bào)文與當(dāng)前查詢報(bào)文的第一標(biāo)識(shí)位一致。在中間節(jié)點(diǎn)接收到來自管理節(jié)點(diǎn)的查詢報(bào)文之前還包括管理節(jié)點(diǎn)產(chǎn)生查詢報(bào)文的步驟,如圖7所示,具體流程如下步驟501、當(dāng)管理節(jié)點(diǎn)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;步驟502、當(dāng)管理節(jié)點(diǎn)判斷出路徑查詢命令中包含組播組地址時(shí),根據(jù)組播組地址在本地預(yù)存的匯聚點(diǎn)集合中查詢獲取對(duì)應(yīng)的匯聚點(diǎn)地址;步驟503、管理節(jié)點(diǎn)將查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),且將匯聚點(diǎn)地址設(shè)置在查詢報(bào)文的匯聚點(diǎn)地址字段中;本實(shí)施例所采用的PIM報(bào)文中進(jìn)一步增加了第一標(biāo)識(shí)位和匯聚點(diǎn)地址字段,第一標(biāo)識(shí)位可以為共享樹標(biāo)識(shí)或非共享樹標(biāo)識(shí),用于指示該查詢報(bào)文是查詢RPT,還是查詢SPT,具體可以用"1"、"0"進(jìn)行標(biāo)識(shí)。步驟504、管理節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中;步驟505、管理節(jié)點(diǎn)在RPF表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;在RPF表中,通常也可以查詢到各節(jié)點(diǎn)指向匯聚點(diǎn)的相關(guān)接口地址。步驟506、管理節(jié)點(diǎn)發(fā)送查詢報(bào)文。在上述步驟502中,當(dāng)管理節(jié)點(diǎn)判斷出路徑查詢命令中包含組播組地址時(shí),在本地預(yù)存的匯聚點(diǎn)集合中可以查詢?cè)摻M播組對(duì)應(yīng)的匯聚點(diǎn)地址。由于網(wǎng)絡(luò)管理員通常難以直接獲知匯聚點(diǎn)的地址,所以可以通過組播組地址作為查詢匯聚點(diǎn)地址的依據(jù),識(shí)別到路徑查詢命令中包含組播組地址即相當(dāng)于識(shí)別到包含匯聚點(diǎn)地址。當(dāng)管理節(jié)點(diǎn)識(shí)別到組播組地址時(shí),可以在匯聚點(diǎn)集合(RP-set)中查詢?cè)摻M播組對(duì)應(yīng)的匯聚點(diǎn)的地址,"RP-set"信息是本地儲(chǔ)存的整網(wǎng)組播組與RP對(duì)應(yīng)關(guān)系的信息集合。在本實(shí)施例中,具體是以匯聚點(diǎn)地址作為組播源地址發(fā)送查詢報(bào)文,從而實(shí)現(xiàn)RPT轉(zhuǎn)發(fā)路徑的查詢。當(dāng)中間節(jié)點(diǎn)接收到該查詢報(bào)文之后依然可以執(zhí)行上述實(shí)施例一中的步驟301步驟304,返回響應(yīng)報(bào)文。在中間節(jié)點(diǎn)產(chǎn)生響應(yīng)報(bào)文時(shí),需要將從查詢報(bào)文的第一標(biāo)識(shí)位解析獲取的共享樹標(biāo)識(shí)設(shè)置在響應(yīng)報(bào)文的第一標(biāo)識(shí)位中?;蛘?,更為優(yōu)選的是響應(yīng)報(bào)文不用另行生成,而是基于查詢報(bào)文更改參數(shù)獲得的,即上述步驟302具體為執(zhí)行下述操作中間節(jié)點(diǎn)將查詢報(bào)文中的報(bào)文類型標(biāo)識(shí)從查詢變更為響應(yīng),將變更后的查詢報(bào)文作為響應(yīng)報(bào)文;中間節(jié)點(diǎn)將解析到的管理地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收查詢報(bào)文的接口地址設(shè)置在響應(yīng)報(bào)文的組播源地址字段中。在PIM協(xié)議報(bào)文中可以包括報(bào)文類型位,通過變更報(bào)文類型位的標(biāo)識(shí)即可以區(qū)分該報(bào)文為查詢報(bào)文還是為響應(yīng)報(bào)文。報(bào)文類型標(biāo)識(shí)可以包括"查詢"、"響應(yīng)"等,可以用具體的"0"、"1"參數(shù)來表示。在上述技術(shù)方案的基礎(chǔ)上,管理節(jié)點(diǎn)根據(jù)響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息具體可以為管理節(jié)點(diǎn)解析響應(yīng)報(bào)文的跳數(shù)字段、組播源地址字段和第一標(biāo)識(shí)位,并將解析到的跳數(shù)值、地址和第一標(biāo)識(shí)位值作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。在本實(shí)施例中,管理節(jié)點(diǎn)預(yù)設(shè)的堆棧中可以增加第一標(biāo)識(shí)位項(xiàng),用于記錄響應(yīng)報(bào)文中的第一標(biāo)識(shí)位,通過第一標(biāo)識(shí)位的區(qū)分,可以獲知所記錄的地址是管理節(jié)點(diǎn)到RP之間的中間節(jié)點(diǎn)的地址,還是管理節(jié)點(diǎn)到組播源之間的中間節(jié)點(diǎn)的地址。在本實(shí)施例中,在中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文,已發(fā)送了一個(gè)響應(yīng)報(bào)文之后,如圖8所示,還可以包括下述步驟步驟601、當(dāng)中間節(jié)點(diǎn)判斷出查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從查詢報(bào)文中解析獲取匯聚點(diǎn)地址;在步驟601中,若第一標(biāo)識(shí)位為非共享樹標(biāo)識(shí)時(shí),相應(yīng)地也不存在匯聚點(diǎn)地址,中間節(jié)點(diǎn)無須對(duì)匯聚點(diǎn)地址字段進(jìn)行識(shí)別。步驟602、當(dāng)中間節(jié)點(diǎn)判斷出匯聚點(diǎn)地址為本機(jī)的接口地址時(shí)形成另一個(gè)響應(yīng)報(bào)文,將查詢報(bào)文的跳數(shù)值加二后設(shè)置在當(dāng)前響應(yīng)報(bào)文的跳數(shù)字段中,將匯聚點(diǎn)地址設(shè)置在當(dāng)前響應(yīng)報(bào)文的組播源地址字段中,將查詢報(bào)文中的管理地址設(shè)置為當(dāng)前響應(yīng)報(bào)文的目的IP地址,并發(fā)送當(dāng)前響應(yīng)報(bào)文。在上述技術(shù)方案中,若匯聚點(diǎn)地址為該中間節(jié)點(diǎn)本機(jī)的接口地址時(shí),即該中間節(jié)點(diǎn)為匯聚點(diǎn)的直連路由器,該中間節(jié)點(diǎn)和匯聚點(diǎn)之間還存在一跳的關(guān)系,所以應(yīng)該將跳數(shù)值加二,將匯聚點(diǎn)地址作為一跳組播轉(zhuǎn)發(fā)路徑信息進(jìn)行記錄。中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之后所進(jìn)行的對(duì)查詢報(bào)文再封裝發(fā)送的過程可以如圖9所示,包括如下步驟步驟701、當(dāng)中間節(jié)點(diǎn)判斷出查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從查詢報(bào)文中解析獲取匯聚點(diǎn)地址;步驟702、中間節(jié)點(diǎn)判斷匯聚點(diǎn)地址是否為本機(jī)的接口地址,若是,則執(zhí)行步驟703,若否,則執(zhí)行步驟704;步驟703、中間節(jié)點(diǎn)將查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),根據(jù)查詢報(bào)文中包含的組播源地址在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址,將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,將查詢報(bào)文的跳數(shù)值加二,而后執(zhí)行步驟705;步驟704、中間節(jié)點(diǎn)將查詢報(bào)文的跳數(shù)值加一,根據(jù)匯聚點(diǎn)地址在預(yù)存的RPF表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,而后執(zhí)行步驟705;步驟705、中間節(jié)點(diǎn)發(fā)送查詢報(bào)文。采用上述技術(shù)方案,中間節(jié)點(diǎn)在對(duì)查詢報(bào)文進(jìn)行處理時(shí)區(qū)分為多種情況,首先判斷本機(jī)是否直連匯聚點(diǎn),若是,則將第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),以便指示后續(xù)查詢的是匯聚點(diǎn)到組播源之間的路徑。在上述步驟502中,當(dāng)管理節(jié)點(diǎn)判斷出路徑查詢命令中包含組播組地址之后,還可以包括管理節(jié)點(diǎn)判斷路徑查詢命令中是否包含組播源地址,若是,則將組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中,若否,則可以設(shè)置組播源地址為全零。因此,在查詢報(bào)文中可能包含組播源地址,也可能未包含組播源地址。若步驟703中不能從查詢報(bào)文中解析獲取組播源地址,則說明本次只需查詢RPT,本次路徑查詢至匯聚點(diǎn)即結(jié)束。本實(shí)施例的技術(shù)方案同樣可以適用于實(shí)施例二,即有確知的指定路由器的情況,通過設(shè)置相應(yīng)的第二標(biāo)識(shí)位即可實(shí)現(xiàn)。實(shí)施例四本發(fā)明實(shí)施例四提供的組播轉(zhuǎn)發(fā)路徑的查詢方法,分別介紹了實(shí)際應(yīng)用中優(yōu)選的實(shí)施情況。在具體應(yīng)用中,包括幾種查詢需求查詢組播網(wǎng)絡(luò)中的SPT;查詢基于PIM-SM協(xié)議的RPT以及RP與組播源節(jié)點(diǎn)之間的SPT。在此基礎(chǔ)上,還分為是否需要指定確定的指定路由器,若不指定,則可以將管理節(jié)點(diǎn)默認(rèn)為指定路由器。上述不同的查詢需求可以通過輸入不同的路徑查詢命令來區(qū)分對(duì)于僅查詢SPT的情況,路徑查詢命令中至少包括組播源地址,組播組地址和指定路由器地址為可選項(xiàng)。一種命令格式可以為"mtraceroutesource_ip[gourp_ip][dr_ip],,其中,"sourcejp"代表組播源地址,"[gourp_ip]"代表組播組地址,"[dr_ip]"代表指定路由器地址,斜體代表為可選項(xiàng)。對(duì)于查詢基于PIM-SM協(xié)議的RPT和SPT的情況,路徑查詢命令中至少包括組播組地址,組播源地址和指定路由器地址為可選項(xiàng)。由于網(wǎng)絡(luò)管理員通常難以直接獲知匯聚點(diǎn)地址,所以路徑查詢命令中至少包括可作為查詢匯聚點(diǎn)地址依據(jù)的組播組地址。一種命令格式可以為"mtraceroutegroup_ip[source_ip][dr_ip],,其中,"group_ip"代表組播組地址。在本實(shí)施例中所采用的查詢和響應(yīng)報(bào)文可以基于PIM協(xié)議報(bào)文實(shí)現(xiàn),PIM協(xié)議報(bào)15文由IP報(bào)文來承載,P頂協(xié)議報(bào)文的格式如表1所示表l001234567+_+_+_+_+_+_+_+-lP頂ver|Type+_+_+_+_+_+_+_+-+_+_+_+_+_+_+_+-+_+_+_+_+_+_+_+-+_+_+_+_+_+_+_+-+_+_+_+_+_+_+_+-IHopNumber+_+_+_+_+_+_+_+-189012345678.+_+_+_+_+_+_+_+_+_+_+—HopLimit.+_+_+_+_+_+_+_+_+_+_+—SourceAddress.+_+_+_+_+_+_+_+_+_+_+—GroupAddress.+_+_+_+_+_+_+_+_+_+_+—AdminAddress.+_+_+_+_+_+_+_+_+_+_+—RPAddress.+_+_+_+_+_+_+_+_+_+_+—|R|D|Reserve.+_+_+_+_+_+_+_+_+_+_+—239012345678901■+_+_+_+_+_+_+.+_+_+_+_+■Checksum.+_+_+_+_+■+IO"則該報(bào)文為查詢報(bào)文其中,"PMver"代表PIM版本號(hào),占用4比特(bit)"Type"代表報(bào)文的具體類型含義,占用4bits,"TYPE(request),以單播形式發(fā)送,"TYPE=ll"則該報(bào)文為應(yīng)答報(bào)文(r印ly),以單播形式發(fā)送;"HopLimit"代表跳數(shù)限制的計(jì)數(shù)值,占用8bits,跳數(shù)限制計(jì)數(shù)值的最大值可以人為設(shè)定,例如設(shè)定為"255";"Checksum"代表校驗(yàn)和,占用16bits。校驗(yàn)和字段存儲(chǔ)校驗(yàn)和,當(dāng)該P(yáng)IM協(xié)議報(bào)文中的報(bào)文類型、地址字段、跳數(shù)字段等信息發(fā)生變化時(shí),都需要重新計(jì)算校驗(yàn)和,以保證報(bào)文信息的正確性。"SourceAddress"代表組播源地址字段,占用32bits;"GroupAddress"代表組播組地址字段,占用32bits;"RPAddress"代表匯聚點(diǎn)地址字段,占用32bits;"AdminAddress"代表管理地址字段,占用32bits;"HopNumber"代表跳數(shù)字段,占用8bits,跳數(shù)字段記錄查詢報(bào)文的跳數(shù)值;"R"代表第一標(biāo)識(shí)位,占用lbit。"R"置為"1"時(shí)代表共享樹標(biāo)識(shí),表示該報(bào)文為(*,G)路徑RPT查詢報(bào)文,"R"置為"O"時(shí)代表非共享樹標(biāo)識(shí),表示該報(bào)文為(S,G)路徑SPT查詢報(bào)文,其中(S,G)的二元組表示(組播源,組播組),"*"表示為全部值;"D"代表第二標(biāo)識(shí)位,占用lbit,"D"置為"l"時(shí)代表指定路由器標(biāo)識(shí),表示本機(jī)要作為接收者的指定路由器(DR)來發(fā)起組播轉(zhuǎn)發(fā)路徑查詢,"D"置為"O"時(shí)代表非指定路由器標(biāo)識(shí),表示本機(jī)只是組播轉(zhuǎn)發(fā)路徑的中間節(jié)點(diǎn),可忽略該標(biāo)識(shí)位。"Reserve"為保留項(xiàng),占用22bits。基于PIM協(xié)議報(bào)文實(shí)現(xiàn)的技術(shù)方案,使本實(shí)施例的技術(shù)方案具有良好的兼容性?;谏鲜鲈O(shè)定情況,本實(shí)施例所執(zhí)行的組播轉(zhuǎn)發(fā)路徑的查詢方法以圖IO所示的組播網(wǎng)絡(luò)為例進(jìn)行說明,如圖10所示,該組播網(wǎng)絡(luò)中包括路由器R1R6,其中,Rl為組播源的直連路由器,R6為接收者的直連路由器,也就是指定路由器,R5為管理節(jié)點(diǎn)。本實(shí)施例的方法如圖11所示,具體包括下述步驟16步驟11、管理節(jié)點(diǎn)接收網(wǎng)絡(luò)管理員輸入的路徑查詢命令,產(chǎn)生PIM協(xié)議報(bào)文,將報(bào)文類型設(shè)置為"TYPE=IO",作為查詢報(bào)文,初始時(shí)查詢報(bào)文中跳數(shù)字段的跳數(shù)值設(shè)置為零;步驟12、管理節(jié)點(diǎn)判斷該路徑查詢命令中是否包含組播組地址,即相當(dāng)于判斷是否可獲知匯聚點(diǎn)地址而查詢RPT路徑,針對(duì)上述實(shí)施例所描述的命令格式,具體是判斷路徑查詢命令中出現(xiàn)的第一個(gè)地址是否為組播組地址,若是,則執(zhí)行步驟18,否則執(zhí)行步驟13;在具體應(yīng)用中,判斷路徑查詢命令中是否包含組播組地址的實(shí)現(xiàn)方式有多種,例如,按照上述提供的命令格式,若判斷出第一個(gè)出現(xiàn)的地址是組播組地址則認(rèn)為包含組播組地址,或者,還可以是判斷路徑查詢命令的特定字段中是否包含組播組地址。步驟13、管理節(jié)點(diǎn)將查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為非共享樹標(biāo)識(shí),將路徑查詢命令中的組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中,由于路徑查詢命令中不包含組播組地址,按照設(shè)定的命令格式規(guī)則,則該路徑查詢命令中應(yīng)包括組播源地址,而后執(zhí)行步驟14;步驟14、管理節(jié)點(diǎn)判斷該路徑查詢命令中是否包含指定路由器地址,若是,則執(zhí)行步驟110,否則執(zhí)行步驟15;步驟15、管理節(jié)點(diǎn)將查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為非指定路由器標(biāo)識(shí),根據(jù)組播源地址在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址;步驟16、管理節(jié)點(diǎn)判斷指向組播源的鄰居接口地址是否為本機(jī)接口地址,若是,則證明該管理節(jié)點(diǎn)即為組播源的直連路由器,本次路徑查詢結(jié)束,否則執(zhí)行步驟17;步驟17、管理節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取本機(jī)指向組播源的出接口地址,將本機(jī)指向組播源的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中且設(shè)置為該查詢報(bào)文的源IP地址,并將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,而后向該鄰居節(jié)點(diǎn)單播發(fā)送該查詢報(bào)文,觸發(fā)中間節(jié)點(diǎn)執(zhí)行下述的步驟21213,且本次發(fā)送查詢報(bào)文的操作結(jié)束,在本步驟發(fā)送的查詢報(bào)文中,若能夠從路徑查詢命令獲取組播組地址則可以填寫組播組地址,也可以填寫為全零,指定路由器地址字段和匯聚點(diǎn)地址字段可以填寫為全零;步驟18、管理節(jié)點(diǎn)將查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),將組播組地址設(shè)置在查詢報(bào)文的組播組地址字段中,根據(jù)組播組地址從本地預(yù)存的匯聚點(diǎn)集合中查詢?cè)摻M播組對(duì)應(yīng)的匯聚點(diǎn)地址,且將匯聚點(diǎn)地址設(shè)置在查詢報(bào)文的匯聚點(diǎn)地址字段中,而后執(zhí)行步驟19;步驟19、管理節(jié)點(diǎn)判斷該路徑查詢命令中是否包含指定路由器地址,若是,則執(zhí)行步驟110,否則執(zhí)行步驟112;步驟110、管理節(jié)點(diǎn)識(shí)別指定路由器地址是否為本機(jī)接口地址,若是則執(zhí)行步驟113,否則執(zhí)行步驟111;步驟111、管理節(jié)點(diǎn)將查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為指定路由器標(biāo)識(shí),在預(yù)存的RPF表中查詢獲取本機(jī)指向指定路由器的出接口地址,并將本機(jī)指向指定路由器的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中,且將指定路由器地址設(shè)置在查詢報(bào)文的指定路由器字段中,并將指定路由器地址設(shè)置為查詢報(bào)文的目的IP地址,源IP地址可以設(shè)置為本機(jī)17指向指定路由器的出接口地址,而后向指定路由器單播發(fā)送該查詢報(bào)文,觸發(fā)中間節(jié)點(diǎn)執(zhí)行下述的步驟21213,且本次發(fā)送查詢報(bào)文的操作結(jié)束;步驟112、管理節(jié)點(diǎn)將查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為非指定路由器標(biāo)識(shí),而后執(zhí)行步驟113;步驟113、管理節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并判斷該鄰居接口地址是否為本機(jī)接口地址,若是,則證明該管理節(jié)點(diǎn)即為RP,執(zhí)行步驟115,若否,則執(zhí)行步驟114;本步驟中,RPF表中對(duì)于本地的直連網(wǎng)絡(luò),指向其上主機(jī)的RPF鄰居節(jié)點(diǎn)為空,即表中的地址為"O.0.0.0"。步驟114、管理節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中,且將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為該查詢報(bào)文的目的IP地址,源IP地址可以設(shè)置為本機(jī)指向匯聚點(diǎn)的出接口地址,而后向鄰居節(jié)點(diǎn)單播發(fā)送該查詢報(bào)文,觸發(fā)中間節(jié)點(diǎn)執(zhí)行下述的步驟21213,且本次發(fā)送查詢報(bào)文的操作結(jié)束;步驟115、管理節(jié)點(diǎn)判斷路徑查詢命令中是否包含組播源地址,若是,則表示應(yīng)繼續(xù)查詢RP和組播源之間的SPT,應(yīng)繼續(xù)執(zhí)行步驟116,若否,則表示只查詢RPT,本次查詢結(jié)束;步驟116、管理節(jié)點(diǎn)將查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),在預(yù)存的RPF表中查詢獲取本機(jī)指向組播源的出接口地址,并將本機(jī)指向組播源的出接口地址設(shè)置在查詢報(bào)文的管理地址字段中;步驟117、管理節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址,并將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,源IP地址可以設(shè)置為本機(jī)指向組播源的出接口地址,而后向鄰居節(jié)點(diǎn)單播發(fā)送該查詢報(bào)文,觸發(fā)中間節(jié)點(diǎn)執(zhí)行下述的步驟21213,且本次發(fā)送查詢報(bào)文的操作結(jié)束。RPF表中對(duì)于本地的直連網(wǎng)絡(luò),指向其上主機(jī)的RPF鄰居節(jié)點(diǎn)為空,即表中的地址為"O.0.0.o",據(jù)此可以判斷出指定路由器地址、匯聚點(diǎn)地址或組播源地址是否為本機(jī)的直連地址。上述步驟中未特別提及的地址字段可以設(shè)置為全零。在上述流程中,為了排除網(wǎng)絡(luò)其他因素干擾結(jié)果的正確性,對(duì)于每一次查詢,管理節(jié)點(diǎn)可以間隔發(fā)送多個(gè)相同的查詢報(bào)文,例如,發(fā)送三個(gè),發(fā)送間隔可以為0.5秒。基于上述技術(shù)方案,中間節(jié)點(diǎn)接收到查詢報(bào)文后的操作可以如圖12所示,包括如下流程步驟21、中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文;步驟22、中間節(jié)點(diǎn)形成響應(yīng)報(bào)文,即可以將PIM協(xié)議報(bào)文中的報(bào)文類型設(shè)置為"TYPE=ll",作為響應(yīng)報(bào)文,中間節(jié)點(diǎn)將從查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收該查詢報(bào)文的接口地址設(shè)置在響應(yīng)報(bào)文的組播源地址字段中,且可以將該接口地址設(shè)置為響應(yīng)報(bào)文的源IP地址;步驟23、中間節(jié)點(diǎn)識(shí)別查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若否,則將查詢報(bào)文中的跳數(shù)值加一后設(shè)置在響應(yīng)報(bào)文的跳數(shù)字段中,隨后向管理節(jié)點(diǎn)發(fā)送該響應(yīng)報(bào)文,且執(zhí)行步驟25,若是,則該中間節(jié)點(diǎn)即指定路由器,將查詢報(bào)文中的跳數(shù)值設(shè)置到響18應(yīng)報(bào)文的跳數(shù)字段中作為跳數(shù)值,隨后向管理節(jié)點(diǎn)發(fā)送該響應(yīng)報(bào)文,且執(zhí)行步驟24;步驟24、中間節(jié)點(diǎn)重新封裝查詢報(bào)文,即保持查詢報(bào)文中的跳數(shù)值不變,且將查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為非指定路由器標(biāo)識(shí),而后執(zhí)行步驟26;步驟25、中間節(jié)點(diǎn)重新封裝查詢報(bào)文,即將查詢報(bào)文中的跳數(shù)值加一,而后執(zhí)行步驟26;步驟26、中間節(jié)點(diǎn)識(shí)別該查詢報(bào)文中的第一標(biāo)識(shí)位是否為共享樹標(biāo)識(shí),若否,則執(zhí)行步驟210,若是,則執(zhí)行步驟27;步驟27、中間節(jié)點(diǎn)識(shí)別該查詢報(bào)文中的匯聚點(diǎn)地址是否為本機(jī)接口地址,若是,則將查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),執(zhí)行步驟29,若否,則執(zhí)行步驟28;步驟28、中間節(jié)點(diǎn)根據(jù)匯聚點(diǎn)地址在預(yù)存的RPF表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,源IP地址可以設(shè)置為該中間節(jié)點(diǎn)接收查詢報(bào)文的接口地址,除跳數(shù)字段外,查詢報(bào)文中的其他字段參數(shù)不變,而后向匯聚點(diǎn)單播發(fā)送該查詢報(bào)文,該中間節(jié)點(diǎn)的操作結(jié)束;步驟29、中間節(jié)點(diǎn)產(chǎn)生另一響應(yīng)報(bào)文,可以是將查詢報(bào)文中的報(bào)文類型設(shè)置為"響應(yīng)",將從查詢報(bào)文中解析到的管理地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,將查詢報(bào)文中的匯聚點(diǎn)地址設(shè)置到組播源地址字段中,且將該查詢報(bào)文中的跳數(shù)值加二,相當(dāng)于將該中間報(bào)文第一次產(chǎn)生的響應(yīng)報(bào)文的跳數(shù)值再加一,將本機(jī)接收該查詢報(bào)文的地址設(shè)置為源IP地址,向管理節(jié)點(diǎn)單播發(fā)送該響應(yīng)報(bào)文,繼續(xù)執(zhí)行步驟210;步驟210、中間節(jié)點(diǎn)判斷查詢報(bào)文中是否包含組播源地址,若是,則執(zhí)行步驟211,否則本次路徑查詢操作結(jié)束;步驟211、中間節(jié)點(diǎn)在預(yù)存的RPF表中查詢獲取指向組播源的鄰居接口地址;步驟212、中間節(jié)點(diǎn)判斷指向組播源的鄰居接口地址是否為本機(jī)的接口地址,若是,則本次路徑查詢終止,若否,則繼續(xù)執(zhí)行步驟213;步驟213、中間節(jié)點(diǎn)將鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,查詢報(bào)文中的跳數(shù)值加一或加二,即采用該中間節(jié)點(diǎn)最后的響應(yīng)報(bào)文中的跳數(shù)值,源IP地址可以設(shè)置為中間節(jié)點(diǎn)接收查詢報(bào)文的接口地址,而后向組播源單播發(fā)送該查詢報(bào)文,該中間節(jié)點(diǎn)的操作結(jié)束。上述步驟21213將重復(fù)執(zhí)行,直到判斷出到達(dá)匯聚點(diǎn)直連的路由器或者到達(dá)組播源直連的路由器為止。在上述技術(shù)方案中,每個(gè)中間節(jié)點(diǎn)接收到查詢報(bào)文時(shí),若識(shí)別到第一標(biāo)識(shí)位為共享樹標(biāo)識(shí),還可以首先對(duì)查詢報(bào)文信息的正確性進(jìn)行檢查,即確認(rèn)查詢報(bào)文中攜帶的組播組地址與匯聚點(diǎn)地址的對(duì)應(yīng)關(guān)系與本機(jī)維護(hù)的匯聚點(diǎn)集合中的信息是否一致,若不一致則丟棄該查詢報(bào)文,如果一致則繼續(xù)按照上述的流程執(zhí)行。采用該技術(shù)方案,可以對(duì)組播轉(zhuǎn)發(fā)路徑上的組播組與匯聚點(diǎn)對(duì)應(yīng)信息進(jìn)行一致性驗(yàn)證,確定網(wǎng)絡(luò)中匯聚點(diǎn)信息通告正確。實(shí)施例五在上述各實(shí)施例技術(shù)方案的基礎(chǔ)上,為記錄組播轉(zhuǎn)發(fā)路徑信息,管理節(jié)點(diǎn)在發(fā)起查詢報(bào)文時(shí)可以建立堆棧。該堆棧至少包括跳數(shù)值項(xiàng)(HopNumber)、節(jié)點(diǎn)地址項(xiàng)(Hop-IP)和第一標(biāo)識(shí)位項(xiàng)(R-bit),初始時(shí),管理節(jié)點(diǎn)首先將當(dāng)前查詢報(bào)文中的跳數(shù)值、管理地址和第一標(biāo)識(shí)位項(xiàng)記錄在堆棧中。管理節(jié)點(diǎn)在接收到每個(gè)響應(yīng)報(bào)文之后即解析其中的跳數(shù)字段記錄為跳數(shù)值,解析其中的組播源地址項(xiàng)記錄在節(jié)點(diǎn)地址項(xiàng)中,解析其中的第一標(biāo)識(shí)位記錄在第一標(biāo)識(shí)位項(xiàng)中。優(yōu)選的是,在建立堆棧的同時(shí)建立一個(gè)與跳數(shù)值項(xiàng)相關(guān)聯(lián)的跳數(shù)計(jì)數(shù)器(hop)。跳數(shù)計(jì)數(shù)器初始設(shè)置為一,當(dāng)接收到一個(gè)響應(yīng)報(bào)文時(shí)即將跳數(shù)計(jì)數(shù)器重置為當(dāng)前記錄的跳數(shù)值加一。由于響應(yīng)報(bào)文可能不是按照各跳中間節(jié)點(diǎn)的順序接收到的,所以堆棧操作具體可以執(zhí)行下述步驟,如圖13所示步驟31、管理節(jié)點(diǎn)在發(fā)送查詢報(bào)文時(shí)建立堆棧,并啟動(dòng)跳數(shù)計(jì)數(shù)器,判斷查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若是,則設(shè)定跳數(shù)計(jì)數(shù)器的初始值為零,執(zhí)行步驟33,否則執(zhí)行步驟32;步驟32、管理節(jié)點(diǎn)將查詢報(bào)文中的跳數(shù)值記錄在堆棧的跳數(shù)值項(xiàng)中,將查詢報(bào)文管理地址字段中的地址記錄在堆棧的節(jié)點(diǎn)地址項(xiàng)中,將查詢報(bào)文第一標(biāo)識(shí)位的值記錄在堆棧的第一標(biāo)識(shí)位項(xiàng)中,設(shè)定跳數(shù)計(jì)數(shù)器的初始值等于查詢報(bào)文中的跳數(shù)值加一,或者也可以設(shè)置為與查詢報(bào)文的跳數(shù)值一致;步驟33、當(dāng)管理節(jié)點(diǎn)接收到響應(yīng)報(bào)文時(shí),判斷響應(yīng)報(bào)文中的跳數(shù)值是否大于跳數(shù)計(jì)數(shù)器的值,若是,則執(zhí)行步驟34,若否,則執(zhí)行步驟36;步驟34、管理節(jié)點(diǎn)計(jì)算響應(yīng)報(bào)文中的跳數(shù)值與跳數(shù)計(jì)數(shù)器值之間的差值;步驟35、管理節(jié)點(diǎn)根據(jù)差值記錄組播轉(zhuǎn)發(fā)路徑信息,各條組播轉(zhuǎn)發(fā)路徑信息的跳數(shù)值項(xiàng)以一為單位遞增至當(dāng)前響應(yīng)報(bào)文中的跳數(shù)值,在最后一條組播轉(zhuǎn)發(fā)路徑信息中記錄當(dāng)前響應(yīng)報(bào)文中的組播源地址和第一標(biāo)識(shí)位值,且將跳數(shù)計(jì)數(shù)器值更新為當(dāng)前響應(yīng)報(bào)文中的跳數(shù)值;若差值僅為一的話,即相當(dāng)于新建了一條組播轉(zhuǎn)發(fā)路徑信息。例如,原有記錄的組播轉(zhuǎn)發(fā)路徑信息為(HopNumber、Hop-IP、R-bit),接收到響應(yīng)報(bào)文對(duì)應(yīng)的組播轉(zhuǎn)發(fā)路徑信息為(HopNumber+n、Hop-IP、R-bit),則依次記錄(HopNumber+1、*、*)、......、(HopNumber+n_l、*、*)、(HopNumber+n、Hop-IP、R_bit),瑕微計(jì)數(shù)器值更新為"HopNumber+n+1"。步驟36、管理節(jié)點(diǎn)根據(jù)當(dāng)前的響應(yīng)報(bào)文中的跳數(shù)值將該響應(yīng)報(bào)文中的組播源地址和第一標(biāo)識(shí)位分別記錄至堆棧的節(jié)點(diǎn)地址項(xiàng)和第一標(biāo)識(shí)位項(xiàng)中,且保持跳數(shù)計(jì)數(shù)器的值不變。上述所設(shè)定的跳數(shù)計(jì)數(shù)器可以與組播源地址相關(guān)聯(lián),也可以與匯聚點(diǎn)地址相關(guān)聯(lián),可以取決于查詢報(bào)文的第一標(biāo)識(shí)位是否為共享樹標(biāo)識(shí)。當(dāng)指定組播源地址時(shí),則將跳數(shù)計(jì)數(shù)器與組播源地址相關(guān)聯(lián);當(dāng)不指定組播源地址時(shí),則將跳數(shù)計(jì)數(shù)器與匯聚點(diǎn)地址相關(guān)聯(lián)。在接收到響應(yīng)報(bào)文時(shí),還可以執(zhí)行下述操作判斷響應(yīng)報(bào)文中的組播源地址與跳數(shù)計(jì)數(shù)器關(guān)聯(lián)的地址是否匹配一致時(shí),若一致,則搜索堆棧中是否存在節(jié)點(diǎn)地址項(xiàng)等未記錄的諸如(HopNumber、*、*)的項(xiàng),若不存在未記錄的項(xiàng),則直接終止跳數(shù)計(jì)數(shù)器,路徑查詢結(jié)束,若存在未記錄的項(xiàng),則可以繼續(xù)等待響應(yīng)報(bào)文。進(jìn)一步可以為跳數(shù)計(jì)數(shù)器設(shè)定時(shí)間上限值,例如設(shè)定為30秒,當(dāng)查過時(shí)間上限值時(shí),即認(rèn)為查詢無結(jié)果,結(jié)束本次查詢過程。還可以為跳數(shù)計(jì)數(shù)器的值設(shè)定跳數(shù)上限值,例如設(shè)定為255,當(dāng)達(dá)到跳數(shù)上限值時(shí),即認(rèn)為不存在可達(dá)到組播源或匯聚點(diǎn)的路徑,結(jié)束本次查詢過程。則上述的查詢過程不僅可以正常終止,也可以由于計(jì)時(shí)或計(jì)數(shù)超值而終止。在20管理節(jié)點(diǎn)發(fā)起路徑查詢時(shí),可以對(duì)應(yīng)啟動(dòng)計(jì)時(shí)器(mtrace-timer),每當(dāng)管理節(jié)點(diǎn)接收到響應(yīng)報(bào)文時(shí)即重置該計(jì)時(shí)器的數(shù)值。當(dāng)計(jì)時(shí)達(dá)到設(shè)定值時(shí)仍未收到響應(yīng)報(bào)文,則可以認(rèn)為是超時(shí),需終止本次路徑查詢。具體應(yīng)用中,可以設(shè)定計(jì)時(shí)上限為30秒,并可以設(shè)計(jì)當(dāng)一次達(dá)到計(jì)時(shí)上限時(shí)重啟計(jì)時(shí)器,在兩次達(dá)到計(jì)時(shí)上限時(shí)才終止路徑查詢。在上述步驟中,當(dāng)搜索堆棧中存在節(jié)點(diǎn)地址項(xiàng)等未記錄項(xiàng)時(shí),也可以重啟一次計(jì)時(shí)器。在本發(fā)明上述實(shí)施例的基礎(chǔ)上,還可以進(jìn)一步在查詢報(bào)文中增加計(jì)數(shù)字段,用于存儲(chǔ)跳數(shù)限制的計(jì)數(shù)值(HopLimit)。管理節(jié)點(diǎn)在發(fā)起查詢報(bào)文時(shí),在查詢報(bào)文的計(jì)數(shù)字段中設(shè)置初始計(jì)數(shù)值。初始計(jì)數(shù)值可以為人為設(shè)定數(shù)值或其他固定值,例如可默認(rèn)為"255"。當(dāng)中間節(jié)點(diǎn)接收到查詢報(bào)文,且在發(fā)送查詢報(bào)文之前,還包括中間節(jié)點(diǎn)判斷查詢報(bào)文計(jì)數(shù)字段中的計(jì)數(shù)值是否低于設(shè)定門限值,若是則丟棄查詢報(bào)文,若否,則將查詢報(bào)文中的計(jì)數(shù)值減一。該設(shè)定門限值通常可以為"零"。采用上述技術(shù)方案,當(dāng)查詢報(bào)文發(fā)送的跳數(shù)已經(jīng)達(dá)到足夠大的數(shù)值時(shí),可能形成了路由環(huán)路,或者由于故障而無法找到正確的路徑,即可以認(rèn)為拓?fù)渲幸呀?jīng)存在路由問題。通過設(shè)置逐跳遞減的計(jì)數(shù)值,可以在發(fā)生路由問題時(shí)及時(shí)終止路徑查詢,避免為網(wǎng)絡(luò)增加額外的負(fù)擔(dān)。以圖10所示的組播網(wǎng)絡(luò)為例,當(dāng)指定組播源地址"192.168.1.IO",且不指定指定路由器地址,從管理節(jié)點(diǎn)的接口地址"192.168.8.l"發(fā)起查詢時(shí),堆棧所記錄的組播轉(zhuǎn)發(fā)路徑信息如表2所示,路徑為R5-R4-R1,組播組地址可以為"229.1.2.3":表2跳數(shù)值項(xiàng)節(jié)點(diǎn)地址項(xiàng)第一標(biāo)識(shí)位項(xiàng)3192.168.1.1002192.168.2.101192.168.7.100192.168.7.20當(dāng)指定組播源地址"192.168.1.10",且指定指定路由器地址"192.168.6.2",從管理節(jié)點(diǎn)的接口地址"192.168.8.l"發(fā)起查詢時(shí),堆棧所記錄的組播轉(zhuǎn)發(fā)路徑信息如表3所示,路徑為R6-R3-R2-R1,組播組地址可以為"229.1.2.3":表3跳數(shù)值項(xiàng)節(jié)點(diǎn)地址項(xiàng)第一標(biāo)識(shí)位項(xiàng)4192.168.1.100<table>tableseeoriginaldocumentpage22</column></row><table>上述技術(shù)方案可適用于PIM-DM協(xié)議架構(gòu)下查詢SPT。當(dāng)指定組播組地址為"229.1.2.3",組播源地址"192.168.1.IO",且不指定指定路由器地址,從管理節(jié)點(diǎn)的接口地址"192.168.8.l"發(fā)起查詢時(shí),堆棧所記錄的組播轉(zhuǎn)發(fā)路徑信息如表4所示,路徑為R5-R4-R3-R2-R1:表4<table>tableseeoriginaldocumentpage22</column></row><table>當(dāng)指定組播組地址為"229.1.2.3",組播源地址"192.168.1.IO",且指定指定路由器地址為"192.168.6.2",從管理節(jié)點(diǎn)的接口地址"192.168.8.l"發(fā)起查詢時(shí),堆棧所記錄的組播轉(zhuǎn)發(fā)路徑信息如表5所示,路徑為R6-R3-R2-R1:表5<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>上述技術(shù)方案可適用于PIM-SM協(xié)議架構(gòu)下查詢RPT+SPT。采用本發(fā)明各實(shí)施例的技術(shù)方案,逐跳節(jié)點(diǎn)實(shí)時(shí)響應(yīng)以返回本機(jī)的地址信息,一方面,可以避免由于某一個(gè)中間節(jié)點(diǎn)故障導(dǎo)致的整個(gè)路徑查詢操作失敗,即使出現(xiàn)故障節(jié)點(diǎn),也可以準(zhǔn)確定位;另一方面,現(xiàn)有技術(shù)采取逐跳增加本機(jī)的組播信息,最后由第一跳路由器匯總發(fā)送響應(yīng)報(bào)文的方式,這種方式的缺陷是由于最大報(bào)文長(zhǎng)度有限制,比如以太網(wǎng)最大報(bào)文只能有1500字節(jié),限制了一個(gè)報(bào)文中能反映的組播路徑信息,如果采用分片報(bào)文傳遞一次查詢信息,則增加了路由器處理分片報(bào)文的負(fù)擔(dān),本發(fā)明的技術(shù)方案,每個(gè)中間節(jié)點(diǎn)僅反饋本機(jī)的地址信息,受最大報(bào)文長(zhǎng)度限制的影響小。另外,本發(fā)明各實(shí)施例的技術(shù)方案不僅可以查詢管理節(jié)點(diǎn)或組播接收者與組播源之間的最短路徑樹,還可以便捷的查詢管理節(jié)點(diǎn)或組播接收者與匯聚點(diǎn)之間的共享樹,以及匯聚點(diǎn)與組播源之間的最短路徑樹,解決了現(xiàn)有技術(shù)中由于基于PIM-SM協(xié)議的"RPT+SPT"與最短路徑樹往往不重合,難以直接查詢的問題,降低了網(wǎng)絡(luò)管理員管理網(wǎng)絡(luò)、排查網(wǎng)絡(luò)故障的難度,能真實(shí)反應(yīng)實(shí)際的組播轉(zhuǎn)發(fā)路徑。由于基于PIM-SM協(xié)議在初始時(shí)能夠通過"RPT+SPT"路徑轉(zhuǎn)發(fā)成功后才切換至組播源至組播接收者之間的最短路徑樹,所以"RPT+SPT"路徑的正確識(shí)別可以提高組播轉(zhuǎn)發(fā)業(yè)務(wù)的可靠性。采用本發(fā)明實(shí)施例的技術(shù)方案,可以指定網(wǎng)絡(luò)中任何一臺(tái)路由器作為指定路由器進(jìn)行到組播源的最短路徑樹和共享樹的路徑信息獲取。還可以對(duì)組播轉(zhuǎn)發(fā)路徑上的組播組與匯聚點(diǎn)對(duì)應(yīng)信息進(jìn)行一致性驗(yàn)證,確定網(wǎng)絡(luò)中匯聚點(diǎn)信息通告正確。從而真正做到只在管理節(jié)點(diǎn)上進(jìn)行操作,即可獲知整個(gè)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)的組播轉(zhuǎn)發(fā)路徑信息,包括最短路徑樹及共享樹,提高了網(wǎng)絡(luò)中組播業(yè)務(wù)的可控性和可維護(hù)性,大幅降低維護(hù)成本和難度。實(shí)施例六圖14為本發(fā)明實(shí)施例六提供的實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢的中間節(jié)點(diǎn)的結(jié)構(gòu)示意圖,該中間節(jié)點(diǎn)可以是組播轉(zhuǎn)發(fā)網(wǎng)絡(luò)中的網(wǎng)元設(shè)備,具體是路由器設(shè)備。該中間節(jié)點(diǎn)包括查詢報(bào)文接收模塊141、響應(yīng)報(bào)文形成模塊142、跳數(shù)值更新模塊143和響應(yīng)報(bào)文發(fā)送模塊144。其中,查詢報(bào)文接收模塊141用于接收來自管理節(jié)點(diǎn)的查詢報(bào)文;響應(yīng)報(bào)文形成模塊142用于形成響應(yīng)報(bào)文,將從所述查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為所述響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收所述查詢報(bào)文的接口地址設(shè)置在所述響應(yīng)報(bào)文的組播源地址字段中;跳數(shù)值更新模塊143用于根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;響應(yīng)報(bào)文發(fā)送模塊144用于向所述管理節(jié)點(diǎn)發(fā)送所述響應(yīng)報(bào)文,以便所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。在本實(shí)施例的基礎(chǔ)上,跳數(shù)值更新模塊優(yōu)選的是包括第二標(biāo)識(shí)位識(shí)別單元、第一跳數(shù)值設(shè)置單元和第二跳數(shù)值設(shè)置單元。其中,第二標(biāo)識(shí)位識(shí)別單元用于識(shí)別所述查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí);第一跳數(shù)值設(shè)置單元用于當(dāng)識(shí)別到所述查詢報(bào)文中的第二標(biāo)識(shí)位不是指定路由器標(biāo)識(shí)時(shí),將查詢報(bào)文中的跳數(shù)值加一后設(shè)置在響應(yīng)報(bào)文的跳數(shù)字段中;第二跳數(shù)值設(shè)置單元用于當(dāng)識(shí)別到所述查詢報(bào)文中的第二標(biāo)識(shí)位為指定路由器標(biāo)識(shí)時(shí),將所述查詢報(bào)文中的跳數(shù)值設(shè)置到響應(yīng)報(bào)文的跳數(shù)字段中作為跳數(shù)值。該中間節(jié)點(diǎn)還可以進(jìn)一步包括第一標(biāo)識(shí)位判斷模塊145和第一標(biāo)識(shí)位設(shè)置模塊146。其中,第一標(biāo)識(shí)位判斷模塊145用于判斷所述查詢報(bào)文的第一標(biāo)識(shí)位是否為共享樹標(biāo)識(shí);第一標(biāo)識(shí)位設(shè)置模塊146用于當(dāng)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),將所述響應(yīng)報(bào)文的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí)。在上述結(jié)構(gòu)的基礎(chǔ)上,該中間節(jié)點(diǎn)還可以包括匯聚點(diǎn)地址解析模塊147、本機(jī)接口判斷模塊148和匯聚點(diǎn)響應(yīng)報(bào)文形成模塊149。其中,匯聚點(diǎn)地址解析模塊147用于當(dāng)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從所述查詢報(bào)文中解析獲取匯聚點(diǎn)地址;本機(jī)接口判斷模塊148用于判斷所述匯聚點(diǎn)地址是否為本機(jī)的接口地址;匯聚點(diǎn)響應(yīng)報(bào)文形成模塊149用于當(dāng)判斷出所述匯聚點(diǎn)地址為本機(jī)的接口地址時(shí)形成響應(yīng)報(bào)文,將查詢報(bào)文的跳數(shù)值加二后設(shè)置在當(dāng)前響應(yīng)報(bào)文的跳數(shù)字段中,將匯聚點(diǎn)地址設(shè)置在當(dāng)前響應(yīng)報(bào)文的組播源地址字段中,將查詢報(bào)文中的管理地址設(shè)置為當(dāng)前響應(yīng)報(bào)文的目的IP地址,并將當(dāng)前響應(yīng)報(bào)文提供給所述響應(yīng)報(bào)文發(fā)送模塊144進(jìn)行發(fā)送。該中間節(jié)點(diǎn)還可以包括查詢報(bào)文第一處理模塊1410、查詢報(bào)文第二處理模塊1411和發(fā)送模塊1412。其中,查詢報(bào)文第一處理模塊1410用于當(dāng)判斷出所述匯聚點(diǎn)地址為本機(jī)的接口地址時(shí),將所述查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),根據(jù)所述查詢報(bào)文中包含的組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向組播源的鄰居接口地址,將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,將查詢報(bào)文的跳數(shù)值加二;查詢報(bào)文第二處理模塊1411用于當(dāng)判斷出所述匯聚點(diǎn)地址不是本機(jī)的接口地址時(shí),將所述查詢報(bào)文的跳數(shù)值加一,根據(jù)所述匯聚點(diǎn)地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;發(fā)送模塊1412用于發(fā)送所述查詢報(bào)文。本發(fā)明實(shí)施例所提供的中間節(jié)點(diǎn)可以執(zhí)行本發(fā)明實(shí)施例提供的組播轉(zhuǎn)發(fā)路徑的查詢方法,作為中間節(jié)點(diǎn)包括方法中涉及的相應(yīng)功能模塊。采用本實(shí)施例的技術(shù)方案,可以逐跳記錄中間節(jié)點(diǎn)與管理節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑,有效提高了路徑查詢的可靠性,更便于網(wǎng)絡(luò)管理員及時(shí)和準(zhǔn)確的獲知組播轉(zhuǎn)發(fā)路徑信息。另外,通過設(shè)置第一標(biāo)識(shí)位,還可以進(jìn)一步查詢基于PIM-SM協(xié)議的RPT路徑。實(shí)施例七圖15為本發(fā)明實(shí)施例七提供的實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢方法的管理節(jié)點(diǎn)的結(jié)構(gòu)示意圖。該管理節(jié)點(diǎn)可以是組播轉(zhuǎn)發(fā)網(wǎng)絡(luò)中發(fā)起路徑查詢的網(wǎng)元設(shè)備。該管理節(jié)點(diǎn)包括查詢報(bào)文產(chǎn)生模塊151、匯聚點(diǎn)地址查詢模塊152、匯聚點(diǎn)信息設(shè)置模塊153、管理地址設(shè)置模塊154、目的IP地址設(shè)置模塊155、查詢報(bào)文發(fā)送模塊156和路徑信息記錄模塊157。其中,查詢報(bào)文產(chǎn)生模塊151用于當(dāng)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;匯聚點(diǎn)地址查詢模塊152用于當(dāng)判斷出所述路徑查詢命令中包含組播組地址時(shí),根據(jù)所述組播組地址在本地預(yù)存的匯聚點(diǎn)集合中查詢獲取對(duì)應(yīng)的匯聚點(diǎn)地址;匯聚點(diǎn)信息設(shè)置模塊153用于將所述查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),且將所述匯聚點(diǎn)地址設(shè)置在所述查詢報(bào)文的匯聚點(diǎn)地址字段中;管理地址設(shè)置模塊154用于在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在所述查詢報(bào)文的管理地址字段中;目的IP地址設(shè)置模塊155用于在所述逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為所述查詢報(bào)文的目的IP地址;查詢報(bào)文發(fā)送模塊156用于發(fā)送所述查詢報(bào)文;路徑信息記錄模塊157用于當(dāng)接收到響應(yīng)報(bào)文解析所述響應(yīng)報(bào)文的跳數(shù)字段、組播源地址字段和第一標(biāo)識(shí)位,并將解析到的跳數(shù)值、地址和第一標(biāo)識(shí)位值作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。在上述技術(shù)方案的基礎(chǔ)上,該管理節(jié)點(diǎn)還可以包括組播源地址設(shè)置模塊,用于當(dāng)判斷出所述路徑查詢命令中包含組播源地址時(shí),將所述組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中。本發(fā)明實(shí)施例所提供的管理節(jié)點(diǎn)可以執(zhí)行本發(fā)明實(shí)施例提供的組播轉(zhuǎn)發(fā)路徑的查詢方法,作為管理節(jié)點(diǎn)包括方法中涉及的相應(yīng)功能模塊。采用本實(shí)施例的技術(shù)方案,可以逐跳記錄中間節(jié)點(diǎn)與管理節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑,有效提高了路徑查詢的可靠性,更便于網(wǎng)絡(luò)管理員及時(shí)和準(zhǔn)確的獲知組播轉(zhuǎn)發(fā)路徑信息。另外,通過設(shè)置第一標(biāo)識(shí)位,還可以進(jìn)一步查詢基于PIM-SM協(xié)議的RPT路徑。本發(fā)明的技術(shù)方案可以完全兼容目前的PIM-SM協(xié)議相關(guān)標(biāo)準(zhǔn),改動(dòng)量少,部署方便,簡(jiǎn)捷。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。2權(quán)利要求一種組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,包括中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文;所述中間節(jié)點(diǎn)形成響應(yīng)報(bào)文,將從所述查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為所述響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收所述查詢報(bào)文的接口地址設(shè)置在所述響應(yīng)報(bào)文的組播源地址字段中;所述中間節(jié)點(diǎn)根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;所述中間節(jié)點(diǎn)向所述管理節(jié)點(diǎn)發(fā)送所述響應(yīng)報(bào)文,以便所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。2.根據(jù)權(quán)利要求1所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述中間節(jié)點(diǎn)根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值包括所述中間節(jié)點(diǎn)識(shí)別所述查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若否,則將查詢報(bào)文中的跳數(shù)值加一后設(shè)置在響應(yīng)報(bào)文的跳數(shù)字段中,若是,則將所述查詢報(bào)文中的跳數(shù)值設(shè)置到響應(yīng)報(bào)文的跳數(shù)字段中作為跳數(shù)值。3.根據(jù)權(quán)利要求1所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之后,還包括所述中間節(jié)點(diǎn)判斷所述查詢報(bào)文的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí),若是,則設(shè)置查詢報(bào)文的跳數(shù)值保持不變,并將第二標(biāo)識(shí)位變更為非指定路由器標(biāo)識(shí),若否,則設(shè)置查詢報(bào)文的跳數(shù)值加一;所述中間節(jié)點(diǎn)根據(jù)所述查詢報(bào)文中的組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向組播源的鄰居接口地址,將所述鄰居接口地址設(shè)置為所述查詢報(bào)文的目的IP地址;所述中間節(jié)點(diǎn)發(fā)送所述查詢報(bào)文。4.根據(jù)權(quán)利要求1或2或3所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息包括所述管理節(jié)點(diǎn)解析所述響應(yīng)報(bào)文的跳數(shù)字段和組播源地址字段,并將解析到的跳數(shù)值和地址作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。5.根據(jù)權(quán)利要求2或3所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之前,還包括當(dāng)所述管理節(jié)點(diǎn)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;所述管理節(jié)點(diǎn)將所述路徑查詢命令中的組播源地址設(shè)置在所述查詢報(bào)文的組播源地址字段中;所述管理節(jié)點(diǎn)根據(jù)所述組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取本機(jī)指向組播源的出接口地址,將本機(jī)指向組播源的出接口地址設(shè)置在所述查詢報(bào)文的管理地址字段中;所述管理節(jié)點(diǎn)判斷所述路徑查詢命令中是否包含指定路由器地址,若是,則將所述指定路由器地址設(shè)置在查詢報(bào)文的指定路由器字段中,且將所述查詢報(bào)文中的第二標(biāo)識(shí)位設(shè)置為指定路由器標(biāo)識(shí),將所述指定路由器地址設(shè)置為目的IP地址;所述管理節(jié)點(diǎn)發(fā)送所述查詢報(bào)文。6.根據(jù)權(quán)利要求1所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述中間節(jié)點(diǎn)形成響應(yīng)報(bào)文之后,還包括當(dāng)所述中間節(jié)點(diǎn)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),將所述響應(yīng)報(bào)文的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí)。7.根據(jù)權(quán)利要求6所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之后,還包括當(dāng)所述中間節(jié)點(diǎn)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從所述查詢報(bào)文中解析獲取匯聚點(diǎn)地址;當(dāng)所述中間節(jié)點(diǎn)判斷出所述匯聚點(diǎn)地址為本機(jī)的接口地址時(shí)形成響應(yīng)報(bào)文,將查詢報(bào)文的跳數(shù)值加二后設(shè)置在當(dāng)前響應(yīng)報(bào)文的跳數(shù)字段中,將匯聚點(diǎn)地址設(shè)置在當(dāng)前響應(yīng)報(bào)文的組播源地址字段中,將查詢報(bào)文中的管理地址設(shè)置為當(dāng)前響應(yīng)報(bào)文的目的IP地址,并發(fā)送當(dāng)前響應(yīng)報(bào)文。8.根據(jù)權(quán)利要求6所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之后,還包括當(dāng)所述中間節(jié)點(diǎn)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從所述查詢報(bào)文中解析獲取匯聚點(diǎn)地址;所述中間節(jié)點(diǎn)判斷所述匯聚點(diǎn)地址是否為本機(jī)的接口地址,若是,則將所述查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),根據(jù)所述查詢報(bào)文中包含的組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向組播源的鄰居接口地址,將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,將查詢報(bào)文的跳數(shù)值加二;若否,則將所述查詢報(bào)文的跳數(shù)值加一,根據(jù)所述匯聚點(diǎn)地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;所述中間節(jié)點(diǎn)發(fā)送所述查詢報(bào)文。9.根據(jù)權(quán)利要求6或7或8所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息包括所述管理節(jié)點(diǎn)解析所述響應(yīng)報(bào)文的跳數(shù)字段、組播源地址字段和第一標(biāo)識(shí)位,并將解析到的跳數(shù)值、地址和第一標(biāo)識(shí)位值作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。10.根據(jù)權(quán)利要求6或7或8所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文之前,還包括當(dāng)所述管理節(jié)點(diǎn)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;當(dāng)所述管理節(jié)點(diǎn)判斷出所述路徑查詢命令中包含組播組地址時(shí),根據(jù)所述組播組地址在本地預(yù)存的匯聚點(diǎn)集合中查詢獲取對(duì)應(yīng)的匯聚點(diǎn)地址;所述管理節(jié)點(diǎn)將所述查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),且將所述匯聚點(diǎn)地址設(shè)置在所述查詢報(bào)文的匯聚點(diǎn)地址字段中;所述管理節(jié)點(diǎn)在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在所述查詢報(bào)文的管理地址字段中;所述管理節(jié)點(diǎn)在所述逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為所述查詢報(bào)文的目的IP地址;所述管理節(jié)點(diǎn)發(fā)送所述查詢報(bào)文。11.根據(jù)權(quán)利要求10所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,當(dāng)所述管理節(jié)點(diǎn)判斷出所述路徑查詢命令中包含組播組地址之后,還包括所述管理節(jié)點(diǎn)判斷所述路徑查詢命令中是否包含組播源地址,若是,則將所述組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中。12.根據(jù)權(quán)利要求6或7或8所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息包括步驟31、所述管理節(jié)點(diǎn)在產(chǎn)生查詢報(bào)文時(shí)建立堆棧,并啟動(dòng)跳數(shù)計(jì)數(shù)器;步驟32、所述管理節(jié)點(diǎn)將所述查詢報(bào)文中的跳數(shù)值記錄在堆棧的跳數(shù)值項(xiàng)中,將查詢報(bào)文管理地址字段中的地址記錄在堆棧的節(jié)點(diǎn)地址項(xiàng)中,將查詢報(bào)文第一標(biāo)識(shí)位的值記錄在堆棧的第一標(biāo)識(shí)位項(xiàng)中,設(shè)定跳數(shù)計(jì)數(shù)器的初始值等于查詢報(bào)文中的跳數(shù)值加一;步驟33、當(dāng)所述管理節(jié)點(diǎn)接收到響應(yīng)報(bào)文時(shí),判斷所述響應(yīng)報(bào)文中的跳數(shù)值是否大于所述跳數(shù)計(jì)數(shù)器的值,若是,則執(zhí)行步驟34,若否,則執(zhí)行步驟36;步驟34、所述管理節(jié)點(diǎn)計(jì)算所述響應(yīng)報(bào)文中的跳數(shù)值與所述跳數(shù)計(jì)數(shù)器值之間的差值;步驟35、所述管理節(jié)點(diǎn)根據(jù)所述差值記錄組播轉(zhuǎn)發(fā)路徑信息,各條組播轉(zhuǎn)發(fā)路徑信息的跳數(shù)值項(xiàng)以一為單位遞增至當(dāng)前響應(yīng)報(bào)文中的跳數(shù)值,在最后一條組播轉(zhuǎn)發(fā)路徑信息中記錄當(dāng)前響應(yīng)報(bào)文中的組播源地址和第一標(biāo)識(shí)位值,且將所述跳數(shù)計(jì)數(shù)器值更新為當(dāng)前響應(yīng)報(bào)文中的跳數(shù)值;步驟36、所述管理節(jié)點(diǎn)根據(jù)當(dāng)前的響應(yīng)報(bào)文中的跳數(shù)值將該響應(yīng)報(bào)文中的組播源地址和第一標(biāo)識(shí)位值分別記錄至堆棧的節(jié)點(diǎn)地址項(xiàng)和第一標(biāo)識(shí)位項(xiàng)中,且保持跳數(shù)計(jì)數(shù)器的值不變。13.根據(jù)權(quán)利要求12所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,當(dāng)所述管理節(jié)點(diǎn)接收到響應(yīng)報(bào)文時(shí),還包括所述管理節(jié)點(diǎn)判斷所述響應(yīng)報(bào)文中的組播源地址或匯聚點(diǎn)地址與跳數(shù)計(jì)數(shù)器關(guān)聯(lián)的地址是否匹配一致,若是則搜索堆棧中是否存在未記錄的節(jié)點(diǎn)地址項(xiàng),若存在未記錄的節(jié)點(diǎn)地址項(xiàng),則繼續(xù)等待響應(yīng)報(bào)文,若不存在則路徑查詢結(jié)束。14.根據(jù)權(quán)利要求3或8所述的組播轉(zhuǎn)發(fā)路徑的查詢方法,其特征在于,所述中間節(jié)點(diǎn)發(fā)送所述查詢報(bào)文之前,還包括所述中間節(jié)點(diǎn)判斷所述查詢報(bào)文計(jì)數(shù)字段中的計(jì)數(shù)值是否低于設(shè)定門限值,若是則丟棄所述查詢報(bào)文,若否,則將所述查詢報(bào)文中的計(jì)數(shù)值減一。15.—種實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢的中間節(jié)點(diǎn),其特征在于,包括查詢報(bào)文接收模塊,用于接收來自管理節(jié)點(diǎn)的查詢報(bào)文;響應(yīng)報(bào)文形成模塊,用于形成響應(yīng)報(bào)文,將從所述查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為所述響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收所述查詢報(bào)文的接口地址設(shè)置在所述響應(yīng)報(bào)文的組播源地址字段中;跳數(shù)值更新模塊,用于根據(jù)所述查詢報(bào)文設(shè)置所述響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;響應(yīng)報(bào)文發(fā)送模塊,用于向所述管理節(jié)點(diǎn)發(fā)送所述響應(yīng)報(bào)文,以便所述管理節(jié)點(diǎn)根據(jù)所述響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。16.根據(jù)權(quán)利要求15所述的中間節(jié)點(diǎn),其特征在于,所述跳數(shù)值更新模塊包括第二標(biāo)識(shí)位識(shí)別單元,用于識(shí)別所述查詢報(bào)文中的第二標(biāo)識(shí)位是否為指定路由器標(biāo)識(shí);第一跳數(shù)值設(shè)置單元,用于當(dāng)識(shí)別到所述查詢報(bào)文中的第二標(biāo)識(shí)位不是指定路由器標(biāo)識(shí)時(shí),將查詢報(bào)文中的跳數(shù)值加一后設(shè)置在響應(yīng)報(bào)文的跳數(shù)字段中;第二跳數(shù)值設(shè)置單元,用于當(dāng)識(shí)別到所述查詢報(bào)文中的第二標(biāo)識(shí)位為指定路由器標(biāo)識(shí)時(shí),將所述查詢報(bào)文中的跳數(shù)值設(shè)置到響應(yīng)報(bào)文的跳數(shù)字段中作為跳數(shù)值。17.根據(jù)權(quán)利要求15所述的中間節(jié)點(diǎn),其特征在于,還包括第一標(biāo)識(shí)位判斷模塊,用于判斷所述查詢報(bào)文的第一標(biāo)識(shí)位是否為共享樹標(biāo)識(shí);第一標(biāo)識(shí)位設(shè)置模塊,用于當(dāng)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),將所述響應(yīng)報(bào)文的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí)。18.根據(jù)權(quán)利要求17所述的中間節(jié)點(diǎn),其特征在于,還包括匯聚點(diǎn)地址解析模塊,用于當(dāng)判斷出所述查詢報(bào)文的第一標(biāo)識(shí)位為共享樹標(biāo)識(shí)時(shí),從所述查詢報(bào)文中解析獲取匯聚點(diǎn)地址;本機(jī)接口判斷模塊,用于判斷所述匯聚點(diǎn)地址是否為本機(jī)的接口地址;匯聚點(diǎn)響應(yīng)報(bào)文形成模塊,用于當(dāng)判斷出所述匯聚點(diǎn)地址為本機(jī)的接口地址時(shí)形成響應(yīng)報(bào)文,將查詢報(bào)文的跳數(shù)值加二后設(shè)置在當(dāng)前響應(yīng)報(bào)文的跳數(shù)字段中,將匯聚點(diǎn)地址設(shè)置在當(dāng)前響應(yīng)報(bào)文的組播源地址字段中,將查詢報(bào)文中的管理地址設(shè)置為當(dāng)前響應(yīng)報(bào)文的目的IP地址,并將當(dāng)前響應(yīng)報(bào)文提供給所述響應(yīng)報(bào)文發(fā)送模塊進(jìn)行發(fā)送。19.根據(jù)權(quán)利要求17所述的中間節(jié)點(diǎn),其特征在于,還包括查詢報(bào)文第一處理模塊,用于當(dāng)判斷出所述匯聚點(diǎn)地址為本機(jī)的接口地址時(shí),將所述查詢報(bào)文中的第一標(biāo)識(shí)位變更為非共享樹標(biāo)識(shí),根據(jù)所述查詢報(bào)文中包含的組播源地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向組播源的鄰居接口地址,將指向組播源的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址,將查詢報(bào)文的跳數(shù)值加二;查詢報(bào)文第二處理模塊,用于當(dāng)判斷出所述匯聚點(diǎn)地址不是本機(jī)的接口地址時(shí),將所述查詢報(bào)文的跳數(shù)值加一,根據(jù)所述匯聚點(diǎn)地址在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為查詢報(bào)文的目的IP地址;發(fā)送模塊,用于發(fā)送所述查詢報(bào)文。20.—種實(shí)現(xiàn)組播轉(zhuǎn)發(fā)路徑查詢方法的管理節(jié)點(diǎn),其特征在于,包括查詢報(bào)文產(chǎn)生模塊,用于當(dāng)接收到路徑查詢命令時(shí)產(chǎn)生查詢報(bào)文;匯聚點(diǎn)地址查詢模塊,用于當(dāng)判斷出所述路徑查詢命令中包含組播組地址時(shí),根據(jù)所述組播組地址在本地預(yù)存的匯聚點(diǎn)集合中查詢獲取對(duì)應(yīng)的匯聚點(diǎn)地址;匯聚點(diǎn)信息設(shè)置模塊,用于將所述查詢報(bào)文中的第一標(biāo)識(shí)位設(shè)置為共享樹標(biāo)識(shí),且將所述匯聚點(diǎn)地址設(shè)置在所述查詢報(bào)文的匯聚點(diǎn)地址字段中;管理地址設(shè)置模塊,用于在預(yù)存的逆向路徑轉(zhuǎn)發(fā)表中查詢獲取本機(jī)指向匯聚點(diǎn)的出接口地址,并將本機(jī)指向匯聚點(diǎn)的出接口地址設(shè)置在所述查詢報(bào)文的管理地址字段中;目的IP地址設(shè)置模塊,用于在所述逆向路徑轉(zhuǎn)發(fā)表中查詢獲取指向匯聚點(diǎn)的鄰居接口地址,并將指向匯聚點(diǎn)的鄰居接口地址設(shè)置為所述查詢報(bào)文的目的IP地址;查詢報(bào)文發(fā)送模塊,用于發(fā)送所述查詢報(bào)文;路徑信息記錄模塊,用于當(dāng)接收到響應(yīng)報(bào)文解析所述響應(yīng)報(bào)文的跳數(shù)字段、組播源地址字段和第一標(biāo)識(shí)位,并將解析到的跳數(shù)值、地址和第一標(biāo)識(shí)位值作為組播轉(zhuǎn)發(fā)路徑信息記錄在堆棧中。21.根據(jù)權(quán)利要求20所述的管理節(jié)點(diǎn),其特征在于,還包括組播源地址設(shè)置模塊,用于當(dāng)判斷出所述路徑查詢命令中包含組播源地址時(shí),將所述組播源地址設(shè)置在查詢報(bào)文的組播源地址字段中。全文摘要本發(fā)明提供一種組播轉(zhuǎn)發(fā)路徑的查詢方法、中間節(jié)點(diǎn)和管理節(jié)點(diǎn)。該方法包括中間節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的查詢報(bào)文;形成響應(yīng)報(bào)文,將從查詢報(bào)文管理地址字段中解析到的管理地址設(shè)置為響應(yīng)報(bào)文的目的IP地址,將本機(jī)接收查詢報(bào)文的接口地址設(shè)置在響應(yīng)報(bào)文的組播源地址字段中;根據(jù)查詢報(bào)文設(shè)置響應(yīng)報(bào)文跳數(shù)字段中的跳數(shù)值;向管理節(jié)點(diǎn)發(fā)送響應(yīng)報(bào)文,以便管理節(jié)點(diǎn)根據(jù)響應(yīng)報(bào)文記錄組播轉(zhuǎn)發(fā)路徑信息。采用本發(fā)明實(shí)施例的技術(shù)方案,可以逐跳記錄中間節(jié)點(diǎn)與管理節(jié)點(diǎn)之間的組播轉(zhuǎn)發(fā)路徑,有效提高了路徑查詢的可靠性,更便于網(wǎng)絡(luò)管理員及時(shí)和準(zhǔn)確的獲知組播轉(zhuǎn)發(fā)路徑信息。文檔編號(hào)H04L29/12GK101789900SQ20091022651公開日2010年7月28日申請(qǐng)日期2009年11月19日優(yōu)先權(quán)日2009年11月19日發(fā)明者楊敬民,王秀文申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司