本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法及裝置。
背景技術(shù):
在點到多點(英文:point to multiple point,簡稱:P2MP)的數(shù)據(jù)傳輸方式中,通常會使用到相容樹(英文:inclusive tree)和選擇樹(英文:selective tree)這兩種轉(zhuǎn)發(fā)樹,來將組播數(shù)據(jù)流從一個節(jié)點轉(zhuǎn)發(fā)到多個節(jié)點。
在采用inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流的方式中,多個組播數(shù)據(jù)流通過一個P2MP隧道進行轉(zhuǎn)發(fā)。P2MP隧道的源地址為inclusive tree的根節(jié)點的地址,P2MP隧道的目的地址為多個提供商邊緣(英文:provider edge,簡稱:PE)節(jié)點的地址。連接有組播接收者的PE節(jié)點向其連接的組播接收者轉(zhuǎn)發(fā)與組播接收者對應(yīng)的組播數(shù)據(jù)流。未連接組播接收者的PE節(jié)點丟棄接收到的組播數(shù)據(jù)流。inclusive tree包括的轉(zhuǎn)發(fā)節(jié)點,比如提供商(英文:provider,簡稱:P)節(jié)點,只需要保存1個P2MP隧道信息,路徑開銷較小。
具體來說,若多個組播數(shù)據(jù)流通過一個inclusive tree進行轉(zhuǎn)發(fā),則多個組播數(shù)據(jù)流中的每個組播流均需經(jīng)由inclusive tree轉(zhuǎn)發(fā)至inclusive tree包括的PE節(jié)點。若inclusive tree中的某個PE節(jié)點未連接與某個組播數(shù)據(jù)流對應(yīng)的組播接收者,該某個組播數(shù)據(jù)流也會被轉(zhuǎn)發(fā)至該某個PE節(jié)點。采用inclusive tree轉(zhuǎn)發(fā)某個組播數(shù)據(jù)流,某個組播數(shù)據(jù)流將會被轉(zhuǎn)發(fā)至未連接與該某個組播數(shù)據(jù)流對應(yīng)的組播接收者的PE節(jié)點,存在帶寬浪費。
在采用selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流的方式中,某個組播數(shù)據(jù)流通過某一P2MP隧道進行轉(zhuǎn)發(fā)。該某個組播數(shù)據(jù)流只會被轉(zhuǎn)發(fā)至連接了與該某個組播數(shù)據(jù)流對應(yīng)的組播接收者的PE節(jié)點,相較于采用inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流的方式,有助于避免帶寬浪費。但是,相較于采用inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流 的方式,selective tree包括的轉(zhuǎn)發(fā)節(jié)點需要保存較多的P2MP隧道信息,路徑開銷較大。
現(xiàn)有技術(shù)中,選擇inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流,會存在帶寬浪費的問題,選擇或selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流會存在路徑開銷大的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法及裝置,有助于節(jié)省帶寬和降低路徑開銷。
本發(fā)明實施例提供的具體技術(shù)方案如下:
第一方面,提供了一種組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法,包括:
根節(jié)點獲取inclusive tree的路徑總開銷,所述inclusive tree的路徑總開銷為所述inclusive tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和,所述節(jié)點路徑開銷為所述轉(zhuǎn)發(fā)節(jié)點與所述轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷;
所述根節(jié)點獲取組播數(shù)據(jù)流的路徑開銷浪費比以及所述組播數(shù)據(jù)流的帶寬值,所述路徑開銷浪費比為采用selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流時所浪費的路徑開銷與所述inclusive tree的路徑總開銷的比值;
所述根節(jié)點將所述組播數(shù)據(jù)流的帶寬值與所述路徑開銷浪費比相乘,獲得所述組播數(shù)據(jù)流的帶寬開銷浪費值;
若所述組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,則所述根節(jié)點選擇所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。
在上述第一方面的第一種可能的實現(xiàn)方式中,還包括:
若所述組播數(shù)據(jù)流的帶寬開銷浪費值小于或等于預(yù)設(shè)值,則所述根節(jié)點選擇所述inclusive tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。
結(jié)合上述第一方面或第一方面的第一種可能的實現(xiàn)方式中,還提供了第一方面的第二種可能的實現(xiàn)方式,所述根節(jié)點獲取inclusive tree的路徑總開銷包括:
所述根節(jié)點獲取所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,所述 路徑信息包括所述轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為增加了加入所述inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的所述inclusive tree中的轉(zhuǎn)發(fā)節(jié)點,或者所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為刪除了退出所述inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的所述inclusive tree中的轉(zhuǎn)發(fā)節(jié)點;
所述根節(jié)點根據(jù)所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,生成所述inclusive tree的路徑總開銷。
結(jié)合上述第一方面、第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式,還提供了第一方面的第三種可能的實現(xiàn)方式,所述根節(jié)點獲取所述組播數(shù)據(jù)流的路徑開銷浪費比包括:
所述根節(jié)點根據(jù)所述selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,獲取所述selective tree的路徑總開銷,所述selective tree的路徑總開銷為所述selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;
所述根節(jié)點根據(jù)所述inclusive tree的路徑總開銷與所述selective tree的路徑總開銷的差值,獲取所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流所浪費的路徑開銷;
所述根節(jié)點根據(jù)所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流所浪費的路徑開銷與所述inclusive tree的路徑總開銷的比值,獲取所述路徑開銷浪費比。
結(jié)合上述第一方面、第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式,還提供了第一方面的第四種可能的實現(xiàn)方式,所述根節(jié)點獲取所述組播數(shù)據(jù)流的路徑開銷浪費比包括;
所述根節(jié)點獲得預(yù)設(shè)的差值,所述預(yù)設(shè)的差值為所述inclusive tree的路徑總開銷與所述selective tree的路徑總開銷的差值,所述selective tree的路徑總開銷為所述selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;
所述根節(jié)點根據(jù)所述預(yù)設(shè)的差值以及所述selective tree中新增分支對應(yīng)的節(jié)點路徑開銷,獲得更新后的差值,所述selective tree中新增分支對應(yīng)的節(jié)點路徑開銷為所述selective tree中加入的轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷或所述selective tree中退出的轉(zhuǎn)發(fā)的節(jié)點路徑開銷;
所述根節(jié)點根據(jù)所述更新后的差值,獲得所述路徑開銷浪費比,所述路徑開銷浪費比為所述更新后的差值與所述inclusive tree的路徑總開銷的比值。
第二方面,提供了一種組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置,包括:
總開銷獲取單元,用于獲取inclusive tree的路徑總開銷,所述inclusive tree的路徑總開銷為所述inclusive tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和,所述節(jié)點路徑開銷為所述轉(zhuǎn)發(fā)節(jié)點與所述轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷;
浪費比獲取單元,用于獲取所述組播數(shù)據(jù)流的路徑開銷浪費比,所述路徑開銷浪費比為采用selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流時所浪費的路徑開銷與所述inclusive tree的路徑總開銷的比值;
帶寬獲取單元,用于獲取所述組播數(shù)據(jù)流的帶寬值;
浪費值獲取單元,用于將所述組播數(shù)據(jù)流的帶寬值與所述路徑開銷浪費比相乘,獲得所述組播數(shù)據(jù)流的帶寬開銷浪費值;
第一選擇單元,用于在所述組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,選擇所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。
在上述第二方面的第一種可能的實現(xiàn)方式中,還包括:
第二選擇單元,用于在所述組播數(shù)據(jù)流的帶寬開銷浪費值小于或等于預(yù)設(shè)值,選擇所述inclusive tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。
結(jié)合上述第二方面或第二方面的第一種可能的實現(xiàn)方式,還提供了第二方面的第二種可能的實現(xiàn)方式,所述總開銷獲取單元具體用于:
獲取所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,所述路徑信息包括所述轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為增加了加入inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的所述inclusive tree中的轉(zhuǎn)發(fā)節(jié)點,或者所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為刪除了退出inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的所述inclusive tree中的轉(zhuǎn)發(fā)節(jié)點;
根據(jù)所述inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,生成所述inclusive tree的路徑總開銷。
結(jié)合上述第二方面、第二方面的第一種可能的實現(xiàn)方式或第二方面的第 二種可能的實現(xiàn)方式,還提供了第二方面的第三種可能的實現(xiàn)方式,所述浪費比獲取單元具體用于:
根據(jù)所述selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,獲取所述selective tree的路徑總開銷,所述selective tree的路徑總開銷為所述selective tree中轉(zhuǎn)發(fā)節(jié)點間的節(jié)點路徑開銷的總和;
根據(jù)所述inclusive tree的路徑總開銷與所述selective tree的路徑總開銷的差值,獲取所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流所浪費的路徑開銷;
根據(jù)所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流所浪費的路徑開銷與所述inclusive tree的路徑總開銷的比值,獲取所述路徑開銷浪費比。
結(jié)合上述第二方面、第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的實現(xiàn)方式,還提供了第二方面的第四種可能的實現(xiàn)方式,所述浪費比獲取單元具體用于:
獲得預(yù)設(shè)的差值,所述預(yù)設(shè)的差值為所述inclusive tree的路徑總開銷與所述selective tree的路徑總開銷的差值,所述selective tree的路徑總開銷為所述selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;
根據(jù)所述預(yù)設(shè)的差值以及所述selective tree中新增分支對應(yīng)的節(jié)點路徑開銷,獲得更新后的差值,所述selective tree中新增分支對應(yīng)的節(jié)點路徑開銷為所述selective tree中加入的轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷或所述selective tree中退出的轉(zhuǎn)發(fā)的節(jié)點路徑開銷;
根據(jù)所述更新后的差值,獲得所述路徑開銷浪費比,所述路徑開銷浪費比為所述更新后的差值與所述inclusive tree的路徑總開銷的比值。
基于上述技術(shù)方案,本發(fā)明實施例中,根節(jié)點獲取組播數(shù)據(jù)流的路徑開銷浪費比和帶寬值,然后將帶寬值與路徑開銷浪費比相乘來生成組播數(shù)據(jù)流的帶寬開銷浪費值;若組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,則所述根節(jié)點選擇selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流。本發(fā)明實施例中的根節(jié)點在為組播數(shù)據(jù)流選擇轉(zhuǎn)發(fā)樹的過程中,綜合考慮了組播數(shù)據(jù)流所對應(yīng)的selective tree對于帶寬的節(jié)省和selective tree的路徑總開銷,有助于節(jié)省帶寬和降低路徑開銷, 還有助于避免用于轉(zhuǎn)發(fā)組播數(shù)據(jù)流的轉(zhuǎn)發(fā)樹轉(zhuǎn)換過程中,可能出現(xiàn)的系統(tǒng)資源負荷過大。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法的流程圖;
圖2為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法的流程圖;
圖4為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法的流程圖;
圖5為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置的硬件構(gòu)成示意圖。
具體實施方式
本發(fā)明實施例提供了組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法及裝置,以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
以圖2中所示出inclusive tree為例,圖2中,組播數(shù)據(jù)流包括三個,分別是組播數(shù)據(jù)流(S,G1)、組播數(shù)據(jù)流(S,G2)和組播數(shù)據(jù)流(S,G3);其中組播數(shù)據(jù)流(S,G1)的帶寬為5M,組播數(shù)據(jù)流(S,G2)的帶寬為4M,組播數(shù)據(jù)流(S,G3)的帶寬為3M。inclusive tree的轉(zhuǎn)發(fā)節(jié)點包括:節(jié)點P1、節(jié)點P2、節(jié)點P3、節(jié)點PE1、節(jié)點PE3、節(jié)點PE4、節(jié)點PE5和節(jié)點PE6。在這些轉(zhuǎn)發(fā)節(jié)點中,節(jié)點PE1連接組播源,即節(jié)點PE1可以作為inclusive tree的根節(jié) 點。節(jié)點PE3、節(jié)點PE4、節(jié)點PE5和節(jié)點PE6可以作為接收節(jié)點,即節(jié)點PE3、節(jié)點PE4、節(jié)點PE5和節(jié)點PE6可分別連接組播接收者。
inclusive tree的各轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷值包括兩種,一種用相鄰的轉(zhuǎn)發(fā)節(jié)點間的實線表示,相鄰的轉(zhuǎn)發(fā)節(jié)點間的實線用于表示節(jié)點路徑開銷值為1。另一種用相鄰的轉(zhuǎn)發(fā)節(jié)點間的虛線表示,相鄰的轉(zhuǎn)發(fā)節(jié)點間的虛線用于表示節(jié)點路徑開銷值為10。例如,節(jié)點PE3的節(jié)點路徑開銷是節(jié)點PE3和節(jié)點P1間路徑的路徑開銷,節(jié)點P1是節(jié)點PE3的父節(jié)點。節(jié)點PE3的節(jié)點路徑開銷值為1,節(jié)點PE3的節(jié)點路徑開銷值可通過節(jié)點PE3和節(jié)點P1間的實線表示。節(jié)點PE6的節(jié)點路徑開銷是節(jié)點PE6和節(jié)點P3間路徑的路徑開銷,節(jié)點P3是節(jié)點PE6的父節(jié)點。節(jié)點PE6的節(jié)點路徑開銷值為10,節(jié)點PE6的節(jié)點路徑開銷值可通過節(jié)點PE6和節(jié)點P3間的虛線表示。
某一組播數(shù)據(jù)流的帶寬開銷浪費量是采用inclusive tree轉(zhuǎn)發(fā)該某一組播數(shù)據(jù)流,該某一組播數(shù)據(jù)流所經(jīng)由不必要的路徑與該某一組播數(shù)據(jù)流的帶寬的乘積。比如,若采用inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流(S,G2),由于節(jié)點PE3和節(jié)點PE4都沒有連接組播數(shù)據(jù)流(S,G2)對應(yīng)的組播接收者,所以,節(jié)點PE3和節(jié)點P1間的路徑屬于不必要的路徑,節(jié)點PE4和節(jié)點P1間的路徑屬于不必要的路徑。組播數(shù)據(jù)流(S,G2)的帶寬為4M。組播數(shù)據(jù)流(S,G2)的帶寬開銷浪費量為4M×2=8M;以此類推,可以得出組播數(shù)據(jù)流(S,G1)的帶寬開銷浪費量為5M×0=0M;組播數(shù)據(jù)流(S,G3)的帶寬開銷浪費量為3M×2=6M;
如果選擇使用selective tree進行轉(zhuǎn)發(fā)的預(yù)設(shè)值為7M,則需要將帶寬開銷浪費量為8M的組播數(shù)據(jù)流(S,G2)由采用inclusive tree轉(zhuǎn)發(fā)轉(zhuǎn)換為采用selective tree轉(zhuǎn)發(fā)。由于組播數(shù)據(jù)流(S,G2)經(jīng)由節(jié)點P1、節(jié)點PE5、節(jié)點P2、節(jié)點P3和節(jié)點PE6轉(zhuǎn)發(fā),所以,組播數(shù)據(jù)流(S,G2)所對應(yīng)的selective tree的路徑總開銷值為節(jié)點P1的路徑開銷(節(jié)點P1的路徑開銷值為1)、節(jié)點PE5的路徑開銷(節(jié)點PE5的路徑開銷值為1)、節(jié)點P2的路徑開銷(節(jié)點P2的路徑開銷值為10)、節(jié)點P3的路徑開銷(節(jié)點P3的路徑開銷值為10) 和節(jié)點PE6的路徑開銷(節(jié)點PE6的路徑開銷值為10)的和,即,組播數(shù)據(jù)流(S,G2)所對應(yīng)的selective tree的路徑總開銷值為32。若組播數(shù)據(jù)流(S,G2)采用其對應(yīng)selective tree進行轉(zhuǎn)發(fā),整個網(wǎng)絡(luò)會維護一個路徑開銷值為32的selective tree,從而大大的增加了系統(tǒng)資源負荷。
下面結(jié)合圖1,對本發(fā)明實施例提供的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇方法進行說明。
本發(fā)明實施例中提及的根節(jié)點為inclusive tree和selective tree所共有的根節(jié)點,具體可以為連接組播源的PE節(jié)點。
S11、根節(jié)點獲取inclusive tree的路徑總開銷,inclusive tree的路徑總開銷為inclusive tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和,節(jié)點路徑開銷為轉(zhuǎn)發(fā)節(jié)點與所述轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷。
在本發(fā)明實施例中,在考慮組播數(shù)據(jù)流所對應(yīng)的selective tree對于帶寬的節(jié)省的同時,還兼顧了該selective tree的路徑總開銷值。通過將路徑開銷值較小的selective tree所對應(yīng)的組播數(shù)據(jù)流通過selective tree進行轉(zhuǎn)發(fā)的方式,來避免在組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的轉(zhuǎn)換時,有可能出現(xiàn)的系統(tǒng)資源負荷過大的問題。
在本發(fā)明實施例中,首先在inclusive tree的根節(jié)點獲取inclusive tree的路徑總開銷;本發(fā)明實施例中的相容樹路徑總開銷即為inclusive tree中各個轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和。在本發(fā)明實施例中,節(jié)點路徑開銷具體是指某個轉(zhuǎn)發(fā)節(jié)點與該轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷。
可選的,根節(jié)點可以通過為inclusive tree的轉(zhuǎn)發(fā)節(jié)點構(gòu)建對應(yīng)的路徑信息的方式來獲得inclusive tree的路徑總開銷;具體的,根節(jié)點獲取inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,路徑信息包括轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為增加了加入inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的inclusive tree中的轉(zhuǎn)發(fā)節(jié)點,或者inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為刪除了退出inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的inclusive tree中的轉(zhuǎn)發(fā)節(jié)點;
根節(jié)點根據(jù)inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,生成inclusive tree的路徑總開銷。
這樣,每當(dāng)一個新的轉(zhuǎn)發(fā)節(jié)點加入inclusive tree后,根節(jié)點就會建立與該轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息;當(dāng)有轉(zhuǎn)發(fā)節(jié)點退出inclusive tree時,根節(jié)點也會刪除與該節(jié)點對應(yīng)的路徑信息,從而實現(xiàn)路徑信息的增量更新;由于路徑信息中有對應(yīng)節(jié)點的節(jié)點路徑開銷,從而,根節(jié)點根據(jù)當(dāng)前的路徑信息,就可以計算得出當(dāng)前的整個inclusive tree的路徑總開銷。
以圖2為例,inclusive tree中各轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷分別為:
節(jié)點P1的節(jié)點路徑開銷值為1,節(jié)點P2的節(jié)點路徑開銷值為10、節(jié)點P3的節(jié)點路徑開銷值為10,節(jié)點PE3的節(jié)點路徑開銷值為1,節(jié)點PE4的節(jié)點路徑開銷值為1,節(jié)點PE5的節(jié)點路徑開銷值為1,節(jié)點PE6的節(jié)點路徑開銷值為10。圖2中inclusive tree的路徑總開銷為34。
S12、根節(jié)點獲取組播數(shù)據(jù)流的路徑開銷浪費比以及組播數(shù)據(jù)流的帶寬值,路徑開銷浪費比為采用selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流時所浪費的路徑開銷與inclusive tree的路徑總開銷的比值;
本發(fā)明實施例中組播數(shù)據(jù)流的路徑開銷浪費比其含義為,組播數(shù)據(jù)流采用selective tree進行轉(zhuǎn)發(fā)時所浪費的路徑開銷在inclusive tree路徑總開銷中的比重。如果比重較高,則表示該組播數(shù)據(jù)流使用selective tree進行轉(zhuǎn)發(fā)所增加的路徑開銷較?。蝗绻戎剌^小,則表示該組播數(shù)據(jù)流使用selective tree進行轉(zhuǎn)發(fā)所增加的路徑開銷較大。以圖2所示的網(wǎng)絡(luò)結(jié)構(gòu)為例,獲取組播數(shù)據(jù)流的路徑開銷浪費比的步驟具體可以如圖3所示,包括:
S21、根節(jié)點根據(jù)selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,獲取selective tree的路徑總開銷,selective tree的路徑總開銷為selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;
如圖2所示,inclusive tree的路徑總開銷為34。各組播數(shù)據(jù)流所對應(yīng)的selective tree所需的徑開銷分別為:組播數(shù)據(jù)流(S,G1)所對應(yīng)的selective tree中的轉(zhuǎn)發(fā)節(jié)點與inclusive tree相同,具體的,組播數(shù)據(jù)流(S,G1)所對應(yīng)的selective tree的路徑總開銷為節(jié)點P1、節(jié)點P2、節(jié)點P3、節(jié)點PE3、節(jié)點PE4、節(jié)點PE5和節(jié)點PE6的節(jié)點路徑開銷值之和,即組播數(shù)據(jù)流(S,G1)所對應(yīng) 的selective tree的路徑總開銷為34。
同理,可以得出,組播數(shù)據(jù)流(S,G2)所對應(yīng)的selective tree的路徑總開銷為32;組播數(shù)據(jù)流(S,G3)所對應(yīng)的selective tree的路徑總開銷為3。
S22、根節(jié)點根據(jù)inclusive tree的路徑總開銷與selective tree的路徑總開銷的差值,獲取selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流所浪費的路徑開銷;
根節(jié)點通過計算inclusive tree的路徑總開銷與selective tree的路徑總開銷的差值,可以得到各組播數(shù)據(jù)流以selective tree的方式進行轉(zhuǎn)發(fā)時所浪費的路徑開銷為:
組播數(shù)據(jù)流(S,G1)以selective tree的方式進行轉(zhuǎn)發(fā)時所浪費的路徑開銷為34-34=0。組播數(shù)據(jù)流(S,G2)以selective tree的方式進行轉(zhuǎn)發(fā)時所浪費的路徑開銷為34-32=2。組播數(shù)據(jù)流(S,G3)以selective tree的方式進行轉(zhuǎn)發(fā)時所浪費的路徑開銷為34-3=31。
S23、根節(jié)點根據(jù)selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流所浪費的路徑開銷與inclusive tree的路徑總開銷的比值,獲取路徑開銷浪費比。
本發(fā)明實施例通過獲取組播數(shù)據(jù)流的路徑開銷浪費比的方式,來量化各個組播數(shù)據(jù)流在以selective tree的方式進行轉(zhuǎn)發(fā)時對于路徑開銷增加的影響程度。
各組播數(shù)據(jù)流的路徑開銷浪費比為:組播數(shù)據(jù)流(S,G1)的路徑開銷浪費比為0,組播數(shù)據(jù)流(S,G2)的路徑開銷浪費比為2/34,組播數(shù)據(jù)流(S,G3)的路徑開銷浪費比為31/34。
可選的,根節(jié)點獲取組播數(shù)據(jù)流的路徑開銷浪費比,具體步驟還可以如圖4所示,包括;
S31、根節(jié)點獲得預(yù)設(shè)的差值,預(yù)設(shè)的差值為inclusive tree的路徑總開銷與selective tree的路徑總開銷的差值,selective tree的路徑總開銷為selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;
當(dāng)有接收節(jié)點加入或退出時,會影響到組播數(shù)據(jù)流的selective tree的結(jié)構(gòu),進而導(dǎo)致組播數(shù)據(jù)流的選擇樹的路徑總開銷的改變。根節(jié)點需要通過重 新計算組播數(shù)據(jù)流的路徑開銷浪費比值,來確定變化后的selective tree所對應(yīng)的組播數(shù)據(jù)流是否需要采用變化后的selective tree進行轉(zhuǎn)發(fā)。
以組播數(shù)據(jù)流的selective tree的樹結(jié)構(gòu)的變化為增量變化為例,對本發(fā)明實施例提供的方法進行說明??蛇x的,預(yù)設(shè)差值可為inclusive tree路徑總開銷與變化前的selective tree路徑總開銷的差值。
S32、根節(jié)點根據(jù)預(yù)設(shè)的差值以及selective tree中新增分支對應(yīng)的節(jié)點路徑開銷,獲得更新后的差值,selective tree中新增分支對應(yīng)的節(jié)點路徑開銷為selective tree中加入的轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷或selective tree中退出的轉(zhuǎn)發(fā)的節(jié)點路徑開銷;
由于組播數(shù)據(jù)流的selective tree中有數(shù)據(jù)流的接收節(jié)點加入或退出時,會新增或刪除路徑分支,所以通過將新增或刪除路徑分支的路徑開銷與原有的差值記錄進行加減計算,獲得更新后的差值。即可得到inclusive tree路徑總開銷與組播數(shù)據(jù)流更新后selective tree的路徑總開銷的差值。
S33、根節(jié)點根據(jù)更新后的差值,獲得路徑開銷浪費比,路徑開銷浪費比為更新后的差值與inclusive tree的路徑總開銷的比值。
通過將差值記錄中所記錄的,inclusive tree路徑總開銷與組播數(shù)據(jù)流的選擇樹路徑總開銷的差值與inclusive tree路徑總開銷進行比值計算,即可得到路徑開銷浪費比。
可選的,在本發(fā)明實施例中,根據(jù)數(shù)據(jù)流接收節(jié)點在selective tree中的新增分支的路徑開銷,增量更新差值記錄,可以采用遍歷的方式來進行,具體的可以包括:
當(dāng)selective tree中有接收節(jié)點加入時,自接收節(jié)點向selective tree的根節(jié)點進行遍歷,當(dāng)被遍歷的轉(zhuǎn)發(fā)節(jié)點的子節(jié)點集為非空時結(jié)束遍歷,子節(jié)點集用于記錄轉(zhuǎn)發(fā)節(jié)點所包括的selective tree子節(jié)點,遍歷的操作包括更新與被遍歷轉(zhuǎn)發(fā)節(jié)點對應(yīng)的子節(jié)點集。
對于每個轉(zhuǎn)發(fā)節(jié)點,通過該轉(zhuǎn)發(fā)節(jié)點的子節(jié)點集來表示該節(jié)點所包括的子節(jié)點。若轉(zhuǎn)發(fā)節(jié)點的子節(jié)點集不為空,則該轉(zhuǎn)發(fā)節(jié)點有子節(jié)點,該轉(zhuǎn)發(fā)節(jié) 點為selective tree中已存在的轉(zhuǎn)發(fā)節(jié)點。如果該轉(zhuǎn)發(fā)節(jié)點的子節(jié)點集為空,則該轉(zhuǎn)發(fā)節(jié)點沒有子節(jié)點,該轉(zhuǎn)發(fā)節(jié)點為selective tree新增的轉(zhuǎn)發(fā)節(jié)點。
本發(fā)明實施例中,進行遍歷的目的在于,首先通過轉(zhuǎn)發(fā)節(jié)點的子節(jié)點集來判斷遍歷的節(jié)點是否為新增轉(zhuǎn)發(fā)節(jié)點,從而可以通過新增轉(zhuǎn)發(fā)節(jié)點的點路徑開銷值來更新差值記錄,此外,通過更新被遍歷節(jié)點對應(yīng)的子節(jié)點集,從而可以當(dāng)組播數(shù)據(jù)流的selective tree中再有后續(xù)數(shù)據(jù)流的接收節(jié)點加入時,可以將已遍歷過的轉(zhuǎn)發(fā)節(jié)點識別為selective tree的已有轉(zhuǎn)發(fā)節(jié)點
遍歷的操作具體可以包括:更新與被遍歷轉(zhuǎn)發(fā)節(jié)點對應(yīng)的子節(jié)點集;根據(jù)新增子節(jié)點集所對應(yīng)轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷值,更新差值記錄。
S13、根節(jié)點將組播數(shù)據(jù)流的帶寬值與路徑開銷浪費比相乘,獲得組播數(shù)據(jù)流的帶寬開銷浪費值;
本發(fā)明實施例還將組播數(shù)據(jù)流的帶寬值與路徑開銷浪費比相乘計算,這樣,取得組播數(shù)據(jù)流的帶寬和組播數(shù)據(jù)流路徑開銷浪費之間的平衡,有助于避免在組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的轉(zhuǎn)換過程中出現(xiàn)的系統(tǒng)資源負荷過大的問題。
組播數(shù)據(jù)流的帶寬值是指該組播數(shù)據(jù)流的帶寬所對應(yīng)的數(shù)值,比如組播數(shù)據(jù)流(S,G1)的帶寬為5M,那么其帶寬值為5;以此類推,組播數(shù)據(jù)流(S,G2)的帶寬值為4,組播數(shù)據(jù)流(S,G3)的帶寬值為3。
在本發(fā)明實施例中,將某一組播數(shù)據(jù)流的帶寬值作為體現(xiàn)當(dāng)該組播數(shù)據(jù)流采用selective tree轉(zhuǎn)發(fā)時帶寬浪費程度的參數(shù)值。將該組播數(shù)據(jù)流的路徑開銷浪費比作為體現(xiàn)當(dāng)該組播數(shù)據(jù)流采用selective tree轉(zhuǎn)發(fā)時路徑開銷浪費程度的參數(shù)值。通過這兩個參數(shù)值的乘積來體現(xiàn)當(dāng)該組播數(shù)據(jù)流采用selective tree轉(zhuǎn)發(fā)時,帶寬浪費程度和路徑開銷浪費程度的綜合影響。
以圖2中的網(wǎng)絡(luò)結(jié)構(gòu)為例,各組播數(shù)據(jù)流的帶寬開銷浪費值為:
組播數(shù)據(jù)流(S,G1)的帶寬開銷浪費值為:5*(0/34)=0。
組播數(shù)據(jù)流(S,G2)的帶寬開銷浪費值為:4*(2/34)=0.235。
組播數(shù)據(jù)流(S,G3)的帶寬開銷浪費值為:3*(31/34)=2.74。
S14、若組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,則根節(jié)點選擇selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流。
在獲知了各組播數(shù)據(jù)流的帶寬開銷浪費值后,根節(jié)點可通過一個預(yù)設(shè)值來確定采用何種轉(zhuǎn)發(fā)樹轉(zhuǎn)發(fā)組播數(shù)據(jù)流。在本發(fā)明實施例中,預(yù)設(shè)值的數(shù)值可以根據(jù)本領(lǐng)域人員的經(jīng)驗或經(jīng)過有限次的實驗來確定,在此并不做具體的限定。
以圖2中的網(wǎng)絡(luò)結(jié)構(gòu)為例,當(dāng)預(yù)設(shè)值是1時,根據(jù)各帶寬開銷浪費值:組播數(shù)據(jù)流(S,G1)的帶寬開銷浪費值為:5*(0/34)=0、組播數(shù)據(jù)流(S,G2)的帶寬開銷浪費值為:4*(2/34)=0.235,以及,組播數(shù)據(jù)流(S,G3)的帶寬開銷浪費值為:3*(31/34)=2.74??梢缘弥捎诮M播數(shù)據(jù)流(S,G3)的帶寬開銷浪費值為2.74,超出了預(yù)設(shè)值,所以根節(jié)點采用selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流(S,G3)。
S14之后,本發(fā)明提供的實施例還包括:若組播數(shù)據(jù)流的帶寬開銷浪費值小于或等于預(yù)設(shè)值,則根節(jié)點選擇inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流。
若組播數(shù)據(jù)流的帶寬開銷浪費值小于或等于預(yù)設(shè)值,則根節(jié)點選擇inclusive tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流。比如,組播數(shù)據(jù)流(S,G1)和組播數(shù)據(jù)流(S,G2)的帶寬開銷浪費值均小于預(yù)設(shè)值,所以,根節(jié)點采用inclusive tree來轉(zhuǎn)發(fā)組播數(shù)據(jù)流(S,G1)和組播數(shù)據(jù)流(S,G2)。
本發(fā)明的上述實施例中,根節(jié)點可預(yù)存儲有用于標(biāo)識inclusive tree的標(biāo)識符和用于標(biāo)識selective tree的標(biāo)識符。根節(jié)點在確定用inclusive tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識inclusive tree的標(biāo)識符添加至所述某一組播數(shù)據(jù)流。同理,根節(jié)點在確定用selective tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識selective tree的標(biāo)識符添加至所述某一組播數(shù)據(jù)流中。
本發(fā)明的上述實施例中,如果inclusive tree和selective tree包括的轉(zhuǎn)發(fā)節(jié)點采用標(biāo)簽實現(xiàn)組播數(shù)據(jù)流的轉(zhuǎn)發(fā),則根節(jié)點還可保存與inclusive tree對應(yīng)的標(biāo)簽和與selective tree對應(yīng)地標(biāo)簽。相應(yīng)地,inclusive tree包括的所有轉(zhuǎn)發(fā)節(jié)點(除了作為接收節(jié)點的PE外)中的每個轉(zhuǎn)發(fā)節(jié)點均會配置有與inclusive tree對應(yīng)的標(biāo)簽,具體地可以為與用于標(biāo)識inclusive tree的標(biāo)識符對應(yīng)的標(biāo)簽。 selective tree包括的所有轉(zhuǎn)發(fā)節(jié)點(除了作為接收節(jié)點的PE外)中的每個轉(zhuǎn)發(fā)節(jié)點均會配置有與selective tree對應(yīng)的標(biāo)簽,具體地可以為與用于標(biāo)識selective tree的標(biāo)識符對應(yīng)的標(biāo)簽。根節(jié)點在確定用inclusive tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識inclusive tree的標(biāo)識符和根節(jié)點保存的與inclusive tree對應(yīng)的標(biāo)簽添加至所述某一組播數(shù)據(jù)流。inclusive tree包括的轉(zhuǎn)發(fā)節(jié)點根據(jù)接收到的所述某一組播數(shù)據(jù)流中的用于標(biāo)識inclusive tree的標(biāo)識符進行標(biāo)簽交換操作,在此不再贅述。同理,根節(jié)點在確定用selective tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識selective tree的標(biāo)識符和根節(jié)點保存的與selective tree對應(yīng)的標(biāo)簽添加至所述某一組播數(shù)據(jù)流中。selective tree包括的轉(zhuǎn)發(fā)節(jié)點根據(jù)接收到的所述某一組播數(shù)據(jù)流中的用于標(biāo)識selective tree的標(biāo)識符進行標(biāo)簽交換操作,在此不再贅述。
本發(fā)明實施例提供的方法中,根節(jié)點在考慮組播數(shù)據(jù)流所對應(yīng)的selective tree對于帶寬的節(jié)省的同時,還兼顧了該selective tree的路徑總開銷值。根節(jié)點將路徑開銷值較小的selective tree所對應(yīng)的組播數(shù)據(jù)流,通過selective tree進行轉(zhuǎn)發(fā),避免組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的切換過程中可能出現(xiàn)的系統(tǒng)資源負荷過大的問題。
本發(fā)明實施例還提供了一種組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置。如圖5所示,組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置包括總開銷獲取單元11、浪費比獲取單元12、帶寬獲取單元13、浪費值獲取單元14和第一選擇單元15。
總開銷獲取單元11用于獲取inclusive tree的路徑總開銷,inclusive tree的路徑總開銷為inclusive tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和,節(jié)點路徑開銷為轉(zhuǎn)發(fā)節(jié)點與轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷。
本發(fā)明實施例中的相容樹路徑總開銷即為inclusive tree中各個轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和。在本發(fā)明實施例中,節(jié)點路徑開銷具體是指某個轉(zhuǎn)發(fā)節(jié)點與該轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷。
可選的,總開銷獲取單元11可以通過為inclusive tree的轉(zhuǎn)發(fā)節(jié)點構(gòu)建對應(yīng)的路徑信息的方式來獲得inclusive tree的路徑總開銷;具體的,總開銷獲取 單元11獲取inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,路徑信息包括轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為增加了加入inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的inclusive tree中的轉(zhuǎn)發(fā)節(jié)點,或者inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點為刪除了退出inclusive tree的轉(zhuǎn)發(fā)節(jié)點后獲得的inclusive tree中的轉(zhuǎn)發(fā)節(jié)點??傞_銷獲取單元11根據(jù)inclusive tree包含的轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息,生成inclusive tree的路徑總開銷。
這樣,每當(dāng)一個新的轉(zhuǎn)發(fā)節(jié)點加入inclusive tree后,總開銷獲取單元11就會建立與該轉(zhuǎn)發(fā)節(jié)點對應(yīng)的路徑信息。當(dāng)有轉(zhuǎn)發(fā)節(jié)點退出inclusive tree時,總開銷獲取單元11也會刪除與該節(jié)點對應(yīng)的路徑信息,從而實現(xiàn)路徑信息的增量更新。由于路徑信息中有對應(yīng)節(jié)點的節(jié)點路徑開銷,從而,總開銷獲取單元11根據(jù)當(dāng)前的路徑信息,就可以計算得出當(dāng)前的整個inclusive tree的路徑總開銷。
浪費比獲取單元12用于獲取組播數(shù)據(jù)流的路徑開銷浪費比,路徑開銷浪費比為采用selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流時所浪費的路徑開銷與inclusive tree的路徑總開銷的比值。
本發(fā)明實施例中組播數(shù)據(jù)流的路徑開銷浪費比其含義為,組播數(shù)據(jù)流采用selective tree進行轉(zhuǎn)發(fā)時所浪費的路徑開銷在inclusive tree路徑總開銷中的比重。如果比重較高,則表示該組播數(shù)據(jù)流使用selective tree進行轉(zhuǎn)發(fā)所增加的路徑開銷較??;如果比重較小,則表示該組播數(shù)據(jù)流使用selective tree進行轉(zhuǎn)發(fā)所增加的路徑開銷較大。
舉例來說,浪費比獲取單元12具體可以用于:根據(jù)selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷,獲取selective tree的路徑總開銷,selective tree的路徑總開銷為selective tree中轉(zhuǎn)發(fā)節(jié)點間的節(jié)點路徑開銷的總和;根據(jù)inclusivetree的路徑總開銷與selective tree的路徑總開銷的差值,獲取selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流所浪費的路徑開銷;根據(jù)selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流所浪費的路徑開銷與inclusive tree的路徑總開銷的比值,獲取路徑開銷浪費比。浪費比獲取單元12根據(jù)selective tree轉(zhuǎn)發(fā)組播數(shù)據(jù)流所浪費的路徑開銷與inclusive tree的路徑總開銷的比值,獲取路徑開銷浪費比。
本發(fā)明實施例通過獲取組播數(shù)據(jù)流的路徑開銷浪費比值的方式,來量化各個組播數(shù)據(jù)流在以selective tree的方式進行轉(zhuǎn)發(fā)時對于路徑開銷增加的影響程度。
舉例來說,浪費比獲取單元12還可以具體用于:獲得預(yù)設(shè)的差值,預(yù)設(shè)的差值為inclusive tree的路徑總開銷與selective tree的路徑總開銷的差值,selective tree的路徑總開銷為selective tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和;根據(jù)預(yù)設(shè)的差值以及selective tree中新增分支對應(yīng)的節(jié)點路徑開銷,獲得更新后的差值,selective tree中新增分支對應(yīng)的節(jié)點路徑開銷為selective tree中加入的轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷或selective tree中退出的轉(zhuǎn)發(fā)的節(jié)點路徑開銷;根據(jù)更新后的差值,獲得路徑開銷浪費比,路徑開銷浪費比為更新后的差值與inclusive tree的路徑總開銷的比值。
當(dāng)有接收節(jié)點加入或退出時,會影響到組播數(shù)據(jù)流的selective tree的結(jié)構(gòu),進而導(dǎo)致組播數(shù)據(jù)流的選擇樹的路徑總開銷的改變。浪費比獲取單元12需要通過重新計算組播數(shù)據(jù)流的路徑開銷浪費比值,來確定變化后的selective tree所對應(yīng)的組播數(shù)據(jù)流是否需要采用變化后的selective tree進行轉(zhuǎn)發(fā)。以組播數(shù)據(jù)流的selective tree的樹結(jié)構(gòu)的變化為增量變化為例,對本發(fā)明實施例提供的方法進行說明。可選的,預(yù)設(shè)差值可為inclusive tree路徑總開銷與變化前的selective tree路徑總開銷的差值。由于組播數(shù)據(jù)流的selective tree中有數(shù)據(jù)流的接收節(jié)點加入或退出時,會新增或刪除路徑分支,所以通過將新增或刪除路徑分支的路徑開銷與原有的差值記錄進行加減計算,獲得更新后的差值。即可得到inclusive tree路徑總開銷與組播數(shù)據(jù)流更新后selective tree的路徑總開銷的差值。浪費比獲取單元12通過將差值記錄中所記錄的,inclusive tree路徑總開銷與組播數(shù)據(jù)流的selective tree路徑總開銷的差值與inclusive tree路徑總開銷進行比值計算,即可得到路徑開銷浪費比。
帶寬獲取單元13用于獲取組播數(shù)據(jù)流的帶寬。其中,組播數(shù)據(jù)流的帶寬值是指該組播數(shù)據(jù)流的帶寬所對應(yīng)的數(shù)值。
浪費值獲取單元14用于將組播數(shù)據(jù)流的帶寬與路徑開銷浪費比相乘,獲得組播數(shù)據(jù)流的帶寬開銷浪費值。
第一選擇單元15用于在所述組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,選擇所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。其中,在獲知了各組播數(shù)據(jù)流的帶寬開銷浪費值后,根節(jié)點可通過一個預(yù)設(shè)值來確定采用何種轉(zhuǎn)發(fā)樹轉(zhuǎn)發(fā)組播數(shù)據(jù)流。在本發(fā)明實施例中,預(yù)設(shè)值的數(shù)值可以根據(jù)本領(lǐng)域人員的經(jīng)驗或經(jīng)過有限次的實驗來確定,在此并不做具體的限定。
可選地,在本發(fā)明實施例提供的中組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置還可以包括有第二選擇單元16。若組播數(shù)據(jù)流的帶寬開銷浪費值小于或等于預(yù)設(shè)值,第二選擇單元16用于選擇inclusive tree轉(zhuǎn)發(fā)該組播數(shù)據(jù)流。
本發(fā)明的上述實施例中,組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置預(yù)存儲有用于標(biāo)識inclusive tree的標(biāo)識符和用于標(biāo)識selective tree的標(biāo)識符。組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置在確定用inclusive tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識inclusive tree的標(biāo)識符添加至所述某一組播數(shù)據(jù)流。同理,組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置在確定用selective tree轉(zhuǎn)發(fā)某一組播數(shù)據(jù)流后,將用于標(biāo)識selective tree的標(biāo)識符添加至所述某一組播數(shù)據(jù)流中。
本發(fā)明實施例提供的裝置中,組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置在考慮組播數(shù)據(jù)流所對應(yīng)的selective tree對于帶寬的節(jié)省的同時,還兼顧了該selective tree的路徑總開銷值。組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置將路徑開銷值較小的selective tree所對應(yīng)的組播數(shù)據(jù)流,通過selective tree進行轉(zhuǎn)發(fā),避免組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的切換過程中可能出現(xiàn)的系統(tǒng)資源負荷過大的問題。
本發(fā)明實施例還提供了一種組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置,如圖6所示。圖6所示的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置可設(shè)于Controller、路由器或交換機等網(wǎng)絡(luò)設(shè)備上,還可設(shè)置于其它獨立設(shè)備上,在此不再逐一舉例說明。圖6所示的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置與圖5對應(yīng)的實施例提供的裝置可以為同一裝置,圖5是從物理的角度顯示了一個組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置包括的內(nèi)容,而圖6則是從邏輯的角度顯示了一個組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置包括的內(nèi)容。圖6所示的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置可執(zhí)行本發(fā)明實施 例提供的任意一種方法。圖6所示的組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置包括:處理器701、存儲器702和通信接口703。其中,處理器701、存儲器702和通信接口703可通過通信總線704連接。存儲器702用于存儲程序,處理器701根據(jù)從存儲器702中讀取的程序所包括的可執(zhí)行指令執(zhí)行具體操作。
舉例來說,圖5中的總開銷獲取單元11、浪費比獲取單元12、帶寬獲取單元13、浪費值獲取單元14和第一選擇單元15可由圖6中的處理器701根據(jù)存儲器702存儲的可執(zhí)行指令實現(xiàn)。圖5中的第二選擇單元16可由圖6中的處理器701根據(jù)存儲器702存儲的可執(zhí)行指令實現(xiàn)。處理器701可以包括至少一個物理處理器。
所述處理器701,用于讀取存儲器702中存儲的指令和數(shù)據(jù),執(zhí)行以下操作:
獲取inclusive tree的路徑總開銷,所述inclusive tree的路徑總開銷為所述inclusive tree中轉(zhuǎn)發(fā)節(jié)點的節(jié)點路徑開銷的總和,所述節(jié)點路徑開銷為所述轉(zhuǎn)發(fā)節(jié)點與所述轉(zhuǎn)發(fā)節(jié)點的父節(jié)點間路徑的路徑開銷;
獲取所述組播數(shù)據(jù)流的路徑開銷浪費比,所述路徑開銷浪費比為采用selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流時所浪費的路徑開銷與所述inclusive tree的路徑總開銷的比值;
獲取所述組播數(shù)據(jù)流的帶寬值;
將所述組播數(shù)據(jù)流的帶寬值與所述路徑開銷浪費比相乘,獲得所述組播數(shù)據(jù)流的帶寬開銷浪費值;
在所述組播數(shù)據(jù)流的帶寬開銷浪費值大于預(yù)設(shè)值,選擇所述selective tree轉(zhuǎn)發(fā)所述組播數(shù)據(jù)流。
本發(fā)明實施例提供的裝置中,組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置在考慮組播數(shù)據(jù)流所對應(yīng)的selective tree對于帶寬的節(jié)省的同時,還兼顧了該selective tree的路徑總開銷值。組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的選擇裝置將路徑開銷值較小的selective tree所對應(yīng)的組播數(shù)據(jù)流,通過selective tree進行轉(zhuǎn)發(fā),避免組播數(shù)據(jù)流轉(zhuǎn)發(fā)樹的切換過程中可能出現(xiàn)的系統(tǒng)資源負荷過大的問題。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描 述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本發(fā)明實施例所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制; 盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。