專利名稱:針對基于cbt的層疊組播配置基于方向的基于核心的樹的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種針對基于CBT層疊組播(overlay multicast)配置基于方向的基于核心的樹(CBT)的方法。
背景技術(shù):
通常,在想要向幾個接收機發(fā)送相同的信息時,用于通過組播只向加入了相應(yīng)組播組的接收機發(fā)送數(shù)據(jù)的一對多的通信比單播,即一對一的通信更為有效,由于一對多的通信可以減少接收側(cè)延遲時間、網(wǎng)絡(luò)資源的使用和發(fā)射機的傳輸開銷。
但是,在網(wǎng)絡(luò)上執(zhí)行的因特網(wǎng)協(xié)議(IP)組播中,必須按照組播路由算法,使用用于中繼數(shù)據(jù)的組播路由器來配置網(wǎng)絡(luò)。
因此,其缺點在于需要新的投資成本以便以組播路由器來代替?zhèn)鹘y(tǒng)的單播路由器。
另一方面,在因特網(wǎng)服務(wù)供應(yīng)商(ISP)側(cè),由于缺乏組播服務(wù)收益模型而引起的低投資收益,以及在技術(shù)側(cè),由于在會話發(fā)起協(xié)議(SIP)之間通過組播業(yè)務(wù)的協(xié)商和策略、對傳統(tǒng)單播業(yè)務(wù)的公正性以及仍不清楚的域內(nèi)組播技術(shù)等,在ISP骨干網(wǎng)絡(luò)中延遲了組播的引入。
與此同時,專用和本地組播請求快速增長,例如,使用因特網(wǎng)的公司廣播和校園廣播等。因此,需要基于當前單播網(wǎng)絡(luò)的組播傳輸。
用于在終端節(jié)點中中繼數(shù)據(jù)的層疊組播是一種針對基于單播網(wǎng)絡(luò)的組播傳輸?shù)姆椒?。由于近來與存儲器容量的增長和VDSL的擴展相一致的數(shù)據(jù)處理速度的快速增長以及的數(shù)據(jù)傳輸速度的快速增長等,終端節(jié)點執(zhí)行對去往其他終端節(jié)點的數(shù)據(jù)的中繼,從而可以期望有效的層疊組播。
圖1A示出了使用組播路由器來執(zhí)行因特網(wǎng)協(xié)議(IP)組播的網(wǎng)絡(luò)結(jié)構(gòu),而圖1B示出了使用單播路由器來執(zhí)行層疊組播的網(wǎng)絡(luò)結(jié)構(gòu)。
層疊組播的基本概念是,代替在如圖1A所示的、由組播路由器(MR1-MR4)組成的網(wǎng)絡(luò)上執(zhí)行組播,可以通過在如圖1B所示的、由單播路由器(R1-R4)組成的網(wǎng)絡(luò)中,在如節(jié)點B等終端節(jié)點(主機)中中繼(在復(fù)制之后發(fā)送)分組,來執(zhí)行基于單播的組播。即,終端節(jié)點可以起到組播路由器的作用。
與在圖1A所示網(wǎng)絡(luò)上執(zhí)行的組播相比,在圖1B所示的網(wǎng)絡(luò)上執(zhí)行的層疊組播增加了延遲時間或分組數(shù),但其不需要組播路由器,因此基于傳統(tǒng)的單播網(wǎng)絡(luò)提供了相對有效的組播通信。
目前,正在對層疊組播協(xié)議距離矢量組播路由協(xié)議(DVMRP)、其上應(yīng)用了組播路由協(xié)議的narada,在網(wǎng)絡(luò)上安裝散播(scattercast)代理以便在代理之間使用單播通信,以及CBT進行研究,這種層疊組播的核心在于,利用包括在相同組播組中的終端節(jié)點,配置并維持有效分組傳輸?shù)膶盈B樹。
另一方面,對其上應(yīng)用了共享樹的CBT在擴展、控制消息的開銷以及性能上比對其應(yīng)用了組播路由協(xié)議的DVMRP更為有效。
即,CBT的缺點在于,業(yè)務(wù)匯集在核心節(jié)點,但其優(yōu)點在于,對于組播成員的變化,產(chǎn)生相對較少的控制消息,以及在每個終端節(jié)點中所管理的信息量較少,而使其能夠更好的擴展,并使其更容易實現(xiàn)。此外,由于與終端節(jié)點處理速度的提高和數(shù)據(jù)傳輸能力的提高成正比地增加了可中繼子節(jié)點的數(shù)目來提升層疊組播的性能,從而使基于CBT的層疊樹結(jié)構(gòu)更為有效。
基于CBT的層疊組播基本上選擇對于其節(jié)點到節(jié)點距離較近的節(jié)點作為父或子節(jié)點來配置CBT。在以CBT量度測量距離時,執(zhí)行對去往CBT上所有節(jié)點的分組的中繼過程,從而其相特定的鏈路或路由器重復(fù)傳遞分組,由此使匯集到相應(yīng)鏈路或路由器上的業(yè)務(wù)不會擁塞。
通常,由于根據(jù)不具有擁塞控制機制的用戶數(shù)據(jù)報協(xié)議(UDP)來操作組播,與傳輸控制協(xié)議(TCP)不同,即使在網(wǎng)絡(luò)上產(chǎn)生擁塞時,仍然會向網(wǎng)絡(luò)連續(xù)傳輸分組,而不會減少業(yè)務(wù)量。結(jié)果,其缺點在于,由于分組丟失,網(wǎng)絡(luò)性能以及組播性能可能會惡化,而且可能引起對網(wǎng)絡(luò)上的其他TCP連接不公平的問題。
以下的每個專利均公開了與本發(fā)明共有的特征,但均并未教益或提出在本申請中所公開的發(fā)明特征2003年5月8日公開的、授予McCanne的美國專利公開No.2003/0088696,題為《PERFORMINGMULTICAST COMMUNICATION IN COMPUTER NETWORKS BYUSING OVERLAY ROUTING》;2003年10月16日公開的、授予Mane的美國專利公開No.2003/0195964,題為《MANAGING MULTICASTSESSIONS》;2003年10月2日公開的、授予Lee的美國專利公開No.2003/0185209,題為《SCALABLE IP MULTICAST WITH EFFICIENTFORWARDING CACHE》;2003年3月27日公開的、授予Maher等人的美國專利公開No.2003/0058857,題為《MULTICAST IP ZONESFOR FAST SPANNING TREE CONVERGENCE IN WIDE-AREAPACKET NETWORK SYSTEMS》;2003年1月2日公開的、授予Haas等人的美國專利公開No.2003/0005149,題為《INDEPENDENT-TREEAD HOC MULTICAST ROUTING》;2002年7月11日公開的、授予Garcia-Luna-Aceve等人的美國專利公開No.2002/0091846,題為《TREE-BASED ORDERED MULTICASTING METHOD》;2002年10月3日公開的、授予Khan等人的美國專利公開No.2002/0143951,題為《METHOD AND SYSTEM FOR MULTICAST TO UNICASTBRIDGING》;2003年9月23日頒布的、授予Boivie等人的美國專利No.6,625,773,題為《SYSTEM FOR MULTICASTCOMMUNICATIONS IN PACKET SWITCHED NETWORKS》;2003年8月26日頒布的、授予Farinacci等人的美國專利No.6,611,528,題為《HIERARCHICAL ROUTING KNOWLEDGE FOR MULTICASTPACKET ROUTING》;2001年11月20日頒布的、授予Crawley等人的美國專利No.6,321,270,題為《METHOD AND APPARATUS FORMULTICAST ROUTING IN A NETWORK》;2000年6月20日頒布的、授予Farinacci等人的美國專利No.6,078,590,題為《HIERARCHICALROUTING KNOWLEDGE FOR MULTICAST PACKET ROUTING》;以及2003年8月26日頒布的、授予McCanne的美國專利No.6,611,872,題為《PERFORMING MULTICAST COMMUNICATION INCOUPUTER NETWORKS BY USING OVERLEY ROUTING》。
發(fā)明內(nèi)容
因此,考慮到上述問題,提出本發(fā)明,以及本發(fā)明的目的是提供一種針對基于CBT的層疊組播配置基于方向的CBT的方法,所述方法能夠解決業(yè)務(wù)匯集到特定路由器和鏈路上的問題。
依照本發(fā)明的一個方面,通過提供一種針對基于CBT的層疊組播配置基于方向的CBT的方法可以實現(xiàn)上述和其他目的,所述方法包括請求和接受想要向CBT訂閱與向核心節(jié)點進行了預(yù)定的子節(jié)點有關(guān)的信息的任意終端節(jié)點;計算接收與所述子節(jié)點有關(guān)的信息的所述任意終端節(jié)點與所述核心節(jié)點和每個已接受子節(jié)點之間的方向,與訂閱請求消息一起向所述核心節(jié)點發(fā)送與具有最小結(jié)果數(shù)值的所述核心節(jié)點的子節(jié)點有關(guān)的信息;由所述核心節(jié)點接收從所述終端節(jié)點發(fā)送過來的訂閱請求信息和子節(jié)點信息,并將相應(yīng)子節(jié)點和終端節(jié)點的結(jié)果方向計算值與預(yù)定子節(jié)點之間的結(jié)果方向計算值進行比較,從而根據(jù)比較結(jié)果,允許終端節(jié)點向子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點進行訂閱,以配置CBT;以及允許核心節(jié)點和終端節(jié)點向和從父、子和兄弟節(jié)點周期性地發(fā)送和接收hello分組,以確認相應(yīng)節(jié)點的狀態(tài),并根據(jù)所確認的狀態(tài)重新配置已配置的CBT。
如上所述,本發(fā)明分析從核心節(jié)點傳向每個節(jié)點的分組的傳輸轉(zhuǎn)發(fā)方向,以選擇具有與CBT中的父或子節(jié)點具有相同轉(zhuǎn)發(fā)方向的節(jié)點,從而解決基于距離量度的CBT中的返回問題。
通過以下結(jié)合附圖而進行的詳細描述,將更為清楚地理解本發(fā)明的上述和其他目的、特征和其他優(yōu)點,其中圖1A是示出了用于使用組播路由器來執(zhí)行因特網(wǎng)協(xié)議(IP)組播的網(wǎng)絡(luò)結(jié)構(gòu)的視圖;圖1B是示出了用于使用單播路由器來執(zhí)行層疊組播的網(wǎng)絡(luò)結(jié)構(gòu)的視圖;圖2是示出了由包括在相同組播組中的節(jié)點構(gòu)成的網(wǎng)絡(luò)拓撲的視圖;圖3A到3D是用于描述在圖2所示的網(wǎng)絡(luò)拓撲中,根據(jù)具有核心節(jié)點C0的基于距離量度的CBT,按照節(jié)點a、b和h的順序進行訂閱的情況的視圖;圖4是示出了圖3C所示的CBT中的組播分組的中繼路徑的視圖;圖5A是示出了由節(jié)點C0、a、b、h和h1構(gòu)成的基于距離量度的CBT的結(jié)構(gòu)的視圖;圖5B是示出了在圖5A所示的網(wǎng)絡(luò)中的每個鏈路和路由器上所處理的分組數(shù)的曲線圖;圖6A到6D是示出了基于核心節(jié)點的兩個相鄰節(jié)點間的位置關(guān)系的視圖;圖7A到7C是根據(jù)描述按照本發(fā)明典型實施例,根據(jù)具有核心節(jié)點C0的基于方向量度的CBT,按照節(jié)點a、b和h的順序進行訂閱的情況的視圖;圖8是示出了在按照本發(fā)明典型實施例的基于方向量度的CBT中的組播分組的中繼路徑的視圖;圖9A和9B是用于描述按照本發(fā)明典型實施例,根據(jù)具有核心節(jié)點C0的基于方向量度的CBT,按照節(jié)點a、b、h和h1的順序進行訂閱的情況的視圖;圖10是示出了環(huán)形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖;圖11A和11B是示出了針對表2的第一試驗的基于距離量度的CBT的結(jié)構(gòu)和按照本發(fā)明典型實施例的基于方向量度的CBT的視圖;圖12是比較與圖11A和11B中的終端節(jié)點相連的每個路由器上所處理的分組數(shù)的曲線圖;圖13A和13B是示出了平均處理分組數(shù)的曲線圖,作為以在第一試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果;圖14是示出了線形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖;圖15A和15B是示出了平均處理分組數(shù)的曲線圖,作為以在第二試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果;圖16是示出了星形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖;以及圖17A和17B是示出了平均處理分組數(shù)的曲線圖,作為以在第三試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果。
具體實施例方式
圖2示出了由包括在相同組播組中的節(jié)點構(gòu)成的網(wǎng)絡(luò)拓撲的示例,其中每個節(jié)點按照節(jié)點a、b、h和h1的順序進行訂閱。
參照圖2,核心節(jié)點C0通過鏈路#1連接到路由器R1,以及節(jié)點a通過鏈路#2連接到路由器1 R1。路由器1 R1通過鏈路#3連接到路由器3 R3,以及節(jié)點b通過鏈路#32連接到路由器3 R3。節(jié)點h通過鏈路#31連接到路由器3 R3,以及節(jié)點h1通過鏈路#33連接到路由器3 R3。
圖3A到3D是用于描述在圖2所示的網(wǎng)絡(luò)拓撲中,根據(jù)具有核心節(jié)點C0的基于距離量度的CBT,按照節(jié)點a、b和h的順序進行訂閱的情況的視圖。
圖3示出了在圖2所示的網(wǎng)絡(luò)中,根據(jù)具有核心節(jié)點C0的基于距離量度的CBT,按照節(jié)點a、b和h的順序進行訂閱的情況下,每個節(jié)點到節(jié)點的距離。核心節(jié)點C0和節(jié)點a之間的距離是3,核心節(jié)點C0和節(jié)點b之間的距離是9,節(jié)點a和節(jié)點h之間的距離是4,節(jié)點h和節(jié)點b之間的距離是8,以及節(jié)點a和節(jié)點b之間的距離是10。
也就是,由于核心節(jié)點C0經(jīng)過鏈路#1通過路由器1 R1,然后經(jīng)過鏈路#2連接到節(jié)點a,當累計鏈路#1的距離1和鏈路#2的距離2時,總距離為3。
由于核心節(jié)點C0經(jīng)過鏈路#1通過路由器1 R1,然后,經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#32連接到節(jié)點b,當累計鏈路#1的距離1、鏈路#3的距離1和鏈路#32的距離7時,總距離為9。
由于節(jié)點a經(jīng)過鏈路#2通過路由器1 R1,然后通過經(jīng)過鏈路#3路由器3 R3,最后,經(jīng)過#31連接到節(jié)點h,當累計鏈路#2的距離2、鏈路#3的距離1和鏈路#31的距離1時,總距離為4。
由于節(jié)點h經(jīng)過鏈路#31通過路由器3 R3,然后,經(jīng)過鏈路#32連接到節(jié)點b,當累計鏈路#32的距離7和鏈路#31的距離1時,總距離為8。
由于節(jié)點a經(jīng)過鏈路#2通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#32連接到節(jié)點b,當總計鏈路#2的距離2、鏈路#3的距離1和鏈路#32的距離7時,總距離為10。
這里,所述節(jié)點到節(jié)點距離采用針對詢問和響應(yīng)的交換的端到端延遲時間。
參照圖2和圖3A,如圖3B所示,在核心節(jié)點C0的可中繼(可容納)子節(jié)點的數(shù)量為2的情況下,首先,在節(jié)點a和b進行訂閱的狀態(tài)下,由于節(jié)點h和節(jié)點a間距離為4并且節(jié)點h和節(jié)點b間距離為8,選擇節(jié)點a作為針對訂閱的父節(jié)點,以配置圖3C所示的CBT。
圖3D示出了在從核心節(jié)點到整個CBT中繼一個組播分組的處理中,在每個鏈路和路由器上所處理的分組數(shù)。
也就是說,由于圖2的網(wǎng)絡(luò)拓撲具有如圖3A所示的距離,當配置如圖3B和圖3C所處理的基于距離的CBT時,在每個鏈路和路由器上處理的分組的數(shù)量如下。
為了將分組從核心節(jié)點C0傳輸?shù)矫總€節(jié)點a、b和h,可以將分組從核心節(jié)點傳輸?shù)焦?jié)點a和節(jié)點b,然后通過節(jié)點a中繼分組,到節(jié)點h。
也就是說,參照圖2,描述了從核心節(jié)點C0到節(jié)點a的分組傳輸路徑,繪出了從核心節(jié)點C0到節(jié)點a的路徑,經(jīng)過鏈路#1通過路由器1 R1,然后經(jīng)過鏈路#2(鏈路#1、R1、鏈路#2)。
描述了從核心節(jié)點C0到節(jié)點b的分組路徑,繪出了從核心節(jié)點C0到節(jié)點b的分組路徑,經(jīng)過鏈路#1通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#32。(鏈路#1,R1,鏈路#3,R3,鏈路#32)。
描述了從節(jié)點a到節(jié)點h的分組傳輸路徑,繪出了從節(jié)點a到節(jié)點h的分組路徑,經(jīng)過鏈路#2通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后經(jīng)過鏈路#31(鏈路#2,R1,鏈路#3,R3,鏈路#31)。
因此,按照每個鏈路或路由器計算分組通過次數(shù),鏈路#1兩次,路由器1 R1三次,鏈路#2兩次,鏈路#3兩次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。
即,為了向整個CBT傳送N個組播分組,在路由器1 R1上,處理3*N個分組。
分組匯集在路由器1 R1上而不是其他鏈路或路由器的原因在于,如圖4所示,與從第一層次節(jié)點C0通過路由器1 R1向節(jié)點a和節(jié)點b中繼分組的路徑(實線箭頭)相比,從第二層次節(jié)點a向節(jié)點h中繼分組的路徑(虛線箭頭)通過路由器1 R1返回。
即,如實線箭頭所示,當從核心節(jié)點C0向節(jié)點a和節(jié)點b進行中繼時,每個分組必須通過路由器1 R1一次,而且如虛線箭頭所示,即使在從節(jié)點a向節(jié)點b進行中繼時,分組必須通過路由器1 R1和路由器3 R3,總共通過路由器1 R1三次。
圖5A示出了按照圖2所示的網(wǎng)絡(luò)拓撲,由節(jié)點C0、a、b、h和h1構(gòu)成的基于距離量度的CBT的結(jié)構(gòu)。節(jié)點h1選擇節(jié)點a作為訂閱的父節(jié)點。圖5B是示出了在圖5A所示的網(wǎng)絡(luò)中的每個鏈路和路由器上所處理的分組數(shù)的曲線圖。參照圖5B,鏈路#1處理兩個分組,路由器1 R1處理四個分組,鏈路#2處理三個分組,鏈路#3處理三個分組,路由器3 R3處理三個分組,鏈路#31處理一個分組,鏈路#32處理一個分組,以及鏈路#33處理一個分組。
即,由于圖2A所示的網(wǎng)絡(luò)拓撲具有如圖3A所示的距離,當配置具有如圖5A所示的處理的基于距離的CBT時,在每個鏈路和路由器上所處理的分組數(shù)如下。
為了從核心節(jié)點C0向每個節(jié)點a、b、h和h1傳送分組,可以從核心節(jié)點向節(jié)點a和節(jié)點b傳送分組,然后,通過節(jié)點a對分組進行中繼,向節(jié)點h和h1傳送。
即,描述了從核心節(jié)點C0到節(jié)點b的分組傳輸路徑,繪出了從核心節(jié)點C0到節(jié)點b的路徑,經(jīng)過鏈路#1通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#32(鏈路#1,R1,鏈路#3,R3,鏈路#32)。
描述了從節(jié)點a到節(jié)點h的分組傳輸路徑,繪出了從節(jié)點a到節(jié)點h的分組路徑,經(jīng)過鏈路#2通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#31(鏈路#2,R1,鏈路#3,R3,鏈路#31)。
描述了從節(jié)點a到節(jié)點h1的分組傳輸路徑,繪出了從節(jié)點a到節(jié)點h1的分組路徑,經(jīng)過鏈路#2通過路由器1 R1,然后經(jīng)過鏈路#3通過路由器3 R3,最后經(jīng)過鏈路#33(鏈路#2,R1,鏈路#3,R3,鏈路#33)。
因此,按照每個鏈路和路由器,計算分組通過次數(shù),鏈路#1兩次,路由器1 R1四次,鏈路#2三次,鏈路#3三次,路由器3 R3三次,鏈路#31一次,鏈路#32一次,鏈路#33一次。
如圖5A和圖5B所示,當通過路由器1 R1的返回次數(shù)由于新的節(jié)點訂閱而增加時,在路由器1 R1上可能引起擁塞問題。
如上所述,基于距離量度的CBT具有由于訂閱順序而產(chǎn)生擁塞問題的缺點。特別是,在連接到核心節(jié)點的路由器或鏈路上產(chǎn)生擁塞的情況下,如路由器1 R1,可能會給整個CBT以致命的打擊。
如上所述,在傳統(tǒng)的基于距離量度的CBT中的缺點是由于以下原因而引起的僅簡單地利用節(jié)點到節(jié)點距離來選擇父或子節(jié)點,以配置CBT,而沒有考慮向樹中的次(子)節(jié)點傳輸?shù)慕M播分組的中繼路徑。
首先,將定義根據(jù)本發(fā)明實施例的基于方向量度的CBT的屬性。
表1示出了根據(jù)本發(fā)明實施例的基于方向量度的CBT的已定義屬性。
<表1>
參照表1,“C(x)”是節(jié)點x的子節(jié)點集合,“num(C(x))”是節(jié)點x的子節(jié)點數(shù),max(C(x))是節(jié)點x所能容納(中繼)的最大子節(jié)點數(shù),“Pi(x)”是節(jié)點x的第i個先輩節(jié)點(i>0)?!癲ist(x,y)”表示節(jié)點x和節(jié)點y間的距離,“C0”表示核心節(jié)點,“h”表示想要向CBT進行訂閱的新節(jié)點,“Nx”和“Ny”表示向CBT進行了預(yù)訂的節(jié)點。
“p(x,y)”表示在節(jié)點x和節(jié)點y之間與核心節(jié)點相鄰的節(jié)點,例如,當核心節(jié)點和節(jié)點x間的距離(dist(C0,x))小于核心節(jié)點和節(jié)點y間的距離(dist(C0,y))時,P(x,y)變?yōu)閤。
另一方面,“c(x,y)”表示在節(jié)點x和節(jié)點y中遠離核心節(jié)點的節(jié)點,如,核心節(jié)點到節(jié)點x的距離(dist(C0,x))小于核心節(jié)點到節(jié)點y的距離(dist(C0,y)),c(x,y)為y?!癮tan()”表示計算以弧度值表示的反正切值?!皊qr()”表示平方根返回值,“PI”表示pi(p)值(3.1415926),“WhoisChild(x)”表示向節(jié)點x請求與其子節(jié)點x有關(guān)的信息。“direction(x,y)”表示計算節(jié)點x和節(jié)點y之間的方向值。
圖6A到6D示出了根據(jù)本發(fā)明實施例的基于核心節(jié)點的兩個相鄰節(jié)點間的位置關(guān)系。
圖6A示出了具有核心節(jié)點C0、節(jié)點a1和節(jié)點a2的順序的連接,圖6B示出了具有節(jié)點a1、核心節(jié)點C0和節(jié)點a2的順序的連接。如圖6C和圖6D所示,可以假定三角形以與核心節(jié)點相鄰的兩個節(jié)點間的距離作為一個邊。三角形的內(nèi)角和外角以及高用于獲得在節(jié)點間進行中繼的分組的轉(zhuǎn)發(fā)方向。
根據(jù)本發(fā)明實施例,可以將方向計算方法描述如下程序direction(a1,a2)hc″dist(C0,c(a1,a2))ac″dist(C0,p(a1,a2))ha″dist(a1,a2) return 4else if(ac+ha#hc)return 0end ifx″((hc*hc)+(ac*ac)-(ha*ha))/(2*hc)y″sqrt(ac*ac-x*x)//計算高if(x>0)á″atan(y/x)*(180/PI)elseá″180-atan(y/-x)*(180/PI)//將弧度值轉(zhuǎn)換為角度end if //dirction(a1,a2)的結(jié)果值也就是說,假定在節(jié)點a1和節(jié)點a2中遠離核心節(jié)點C0的節(jié)點與核心節(jié)點間的距離對應(yīng)于“hc”,在節(jié)點a1和節(jié)點a2中與核心節(jié)點C0接近的節(jié)點與核心節(jié)點C0間的距離對應(yīng)于“ac”,節(jié)點a1和節(jié)點a2間的距離對應(yīng)于“ha”。
首先,如圖6A所示,在表達式“ac+ha#hc”的情況下,輸出返回值0,如圖6B所示,在表達式 的情況下,輸出返回值4。
另一方面,在圖6C或6D中,表達式“((hc*hc)+(ac*ac)-(ha*ha))/(2*hc)”為x,并且表達式“sqrt(ac*ac-x*x)”為y,以計算高度(y)。
如圖6C所示,當“x>0”時,則“atan(y/x)*(180/PI)”等于a,以及如圖6D所示,當“x<0”時,則“180-atan(y/-x)*(180/PI)”等于a,將弧度值轉(zhuǎn)換為角度。
然后,“atan(y/x)*(180/PI)”等于 而 等于 返回 作為“direction(a1,a2)”的結(jié)果值。
從上面所清楚的是,本發(fā)明將在方向計算算法中所計算的方向值用作代替距離的新量度,以配置CBT。也就是說,兩個節(jié)點間的方向值逐漸變小并將把分組從核心節(jié)點傳輸?shù)絻蓚€節(jié)點的轉(zhuǎn)發(fā)方向看作同一事物,以選擇兩個節(jié)點作為父或子節(jié)點。通過這種方式,可以減少返回到路由器1 R1的次數(shù)。
核心節(jié)點選擇方法是一種被動方法。還存在一種引導(dǎo)(bootstrap)機制的方法等,但是為了方便地實現(xiàn)本發(fā)明,設(shè)計核心節(jié)點并假定加入組的所有節(jié)點通過設(shè)置或具有與識別核心節(jié)點的節(jié)點有關(guān)的信息來識別核心節(jié)點。
圖7A到7C、圖8、圖9A和9B是用于描述根據(jù)按照本發(fā)明典型實施例的基于方向量度的CBT的視圖,為了與傳統(tǒng)的基于距離的CBT比較,下面描述了按照圖2所示的網(wǎng)絡(luò)拓撲,按照節(jié)點a、b、h和h1的順序?qū)诜较虻腃BT進行訂閱的情況。
因此,每個圖所示的節(jié)點到節(jié)點距離表示了圖2所示的網(wǎng)絡(luò)拓撲和圖3A所示的節(jié)點到節(jié)點距離。在圖3A中已經(jīng)對所述節(jié)點到節(jié)點距離進行了描述。
圖7A表示在節(jié)點h訂閱前的CBT,圖7B表示在節(jié)點h訂閱后的CBT,而圖7C表示針對一個組播分組、在每個鏈路和路由器上所處理的分組數(shù)。
在想要訂閱的節(jié)點h從其中最大可中繼子節(jié)點數(shù)為2的核心節(jié)點C0處獲得與核心節(jié)點的子節(jié)點a和b有關(guān)的信息之后,針對節(jié)點a和b,計算前述方向值“direction(h,a)[214.09]”和“direction(h,b)[41.37]”。
節(jié)點h向節(jié)點b傳輸包括關(guān)于小方向值的信息的CBT訂閱請求消息,以向第一層次的父節(jié)點的核心節(jié)點C0請求訂閱。核心節(jié)點C0將所接收到的CBT訂閱請求消息的direction(h,b)的值與通過周期性的hello消息而接收到的給定節(jié)點之間的direction(a,b)的值[71.57]進行比較。結(jié)果,“[direction(h,b)<direction(a,b)]”表示從節(jié)點h到節(jié)點b中繼分組的路徑是用于避免前述返回現(xiàn)象的有效路徑。
因此,核心節(jié)點C0允許節(jié)點h訂閱新的子節(jié)點,以及通過傳輸刷新消息(flush message),請求給定的子節(jié)點b重新訂閱新的父節(jié)點h。根據(jù)此請求,節(jié)點b訂閱第二層次的父節(jié)點h,以配置圖7B所示的CBT。
圖7C表示在每個鏈路和路由器上所處理的分組數(shù)。在圖中,實線表示根據(jù)本發(fā)明的基于方向的CBT配置的結(jié)果,而虛線表示傳統(tǒng)的基于距離的CBT配置的結(jié)構(gòu)。參照圖7C,描述了本發(fā)明的結(jié)果,如實線所示,鏈路#1處理兩個分組,路由器1 R1處理兩個分組,鏈路#2處理一個分組,鏈路#3處理一個分組,路由器3 R3處理兩個分組,鏈路#31處理兩個分組,并且鏈路#32處理一個分組。
也就是說,參照圖2和7B,描述了從核心節(jié)點C0到節(jié)點a的分組傳輸路徑,繪出了從核心節(jié)點C0到節(jié)點a的路徑,經(jīng)過鏈路#1通過路由器1 R1,然后經(jīng)過鏈路#2。(鏈路#1,R1,鏈路#2)描述了從核心節(jié)點C0到節(jié)點h的分組傳輸路徑,繪出了從核心節(jié)點C0到節(jié)點h的路徑,經(jīng)過鏈路#1通過路由器1 R1,然后,經(jīng)過鏈路#3通過路由器3 R3,最后,經(jīng)過鏈路#31。(鏈路#1,R1,鏈路#3,R3,鏈路#31)描述了從節(jié)點h到節(jié)點b的分組傳輸路徑,繪出了從節(jié)點h到節(jié)點b的路徑,經(jīng)過鏈路#31通過路由器3 R3,然后,經(jīng)過鏈路#32。(R3,鏈路#31,鏈路#32)
因此,按照每個鏈路或路由器,計算分組通過次數(shù),鏈路#1兩次,路由器1 R1兩次,鏈路#2一次,鏈路#3一次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。在圖7C中以實線示出。
相反,將由傳統(tǒng)的基于距離的CBT得到的結(jié)果與每個鏈路或路由器的分組通過次數(shù)進行比較,如圖7C中虛線所示,其中,鏈路#1兩次,路由器1 R1三次,鏈路#2兩次,鏈路#3兩次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。在圖3D中已經(jīng)對傳統(tǒng)的基于距離的CBT所得到的結(jié)果進行了描述。
圖8示出了在圖2所示網(wǎng)絡(luò)拓撲中,在按照本發(fā)明實施例的基于方向量度的CBT中的組播分組的中繼路徑的視圖。實線表示從節(jié)點C0到節(jié)點a、h的中繼路徑,而虛線表示從節(jié)點h到節(jié)點b的中繼路徑。將其與圖4所示的傳統(tǒng)的基于距離的CBT中的組播分組的中繼路徑進行比較。
即,由于對于N個組播分組并未引起傳統(tǒng)的基于距離量度的CBT的返回現(xiàn)象,在路由器R1上,只處理了2*N個分組,而不是3*N個分組。盡管增加了在鏈路31上處理的分組數(shù),結(jié)果,仍然可以減少傳統(tǒng)的基于距離量度的CBT的缺點,即,在如與核心節(jié)點相連的路由器等特定路由器或鏈路上的分組匯集現(xiàn)象。
圖9A表示在圖2所示的網(wǎng)絡(luò)拓撲中、按照本發(fā)明的由節(jié)點C0、a、b、h和h1構(gòu)成的基于方向量度的CBT,而圖9B示出了在圖9A所示的網(wǎng)絡(luò)中的每個鏈路和路由器上所處理的分組數(shù)。參照圖9B,鏈路#1處理兩個分組,路由器1 R1處理兩個分組,鏈路#2處理一個分組,鏈路#3處理一個分組,路由器3 R3處理三個分組,鏈路#31處理三個分組,鏈路#32處理一個分組,以及鏈路#33處理一個分組。
即,參照圖2和圖9A描述了從核心節(jié)點C0到節(jié)點a的分組傳輸路徑,繪出了從核心節(jié)點C0到節(jié)點a的路徑,經(jīng)由鏈路#1通過路由器1 R1,然后經(jīng)由鏈路#2。(鏈路#1,R1,鏈路#2)描述了從核心節(jié)點C0到節(jié)點h的分組傳輸路徑,繪出了從核心接地那C0到節(jié)點b的路徑,經(jīng)由鏈路#1通過路由器1 R1,然后經(jīng)由鏈路#3通過路由器3 R3,最后經(jīng)由鏈路#31傳遞。(鏈路#1,R1,鏈路#3,R3,鏈路#31)描述了從節(jié)點h到節(jié)點b的分組傳輸路徑,繪出了從節(jié)點h到節(jié)點b的路徑,經(jīng)由鏈路#31通過路由器3 R3,然后經(jīng)由鏈路#32傳遞。(R3,鏈路#31,鏈路#32)描述了從節(jié)點h到節(jié)點h1,繪出了從節(jié)點h到節(jié)點h1的路徑,經(jīng)由鏈路#31通過路由器3 R3,然后經(jīng)由鏈路#33傳遞。(R3,鏈路#31,鏈路#33)因此,按照每個鏈路或路由器計算分組通過次數(shù),鏈路#1兩次,路由器1 R1兩次,鏈路#2一次,鏈路#3一次,路由器3 R3兩次,鏈路#31三次,鏈路#32一次,以及鏈路#33一次。在圖9B中以實線示出這些情況。
相反,將由傳統(tǒng)的基于距離的CBT得到的結(jié)果與每個鏈路或路由器的分組通過次數(shù)進行比較,如圖9B中虛線所示,其中,鏈路#1兩次,路由器l R1四次,鏈路#2三次,鏈路#3三次,路由器3 R3三次,鏈路#31一次,鏈路#32一次,以及鏈路#33一次。這在圖5B中已經(jīng)進行了描述。
可以如下表示按照本發(fā)明的基于方向量度的CBT訂閱算法程序JoinCBT(h)Pi(h)″C0C(Pi(h))″WhoisChild(Pi(h)) Find Ny s.t,direction(h,Ny)<direction(h,Nx),Nx,Ny 0 C(Pi(h))Find Nx,Nz s.t,direction(Nx,Ny)<direction(Nw,Nx),Nv,Nw,Nx,Ny 0 C(Pi(h))if(direction(h,Ny)>direction(Nx,Nz))h Join C(Pi(h))c(Nx,Nz)Quit C(Pi(h))c(Nx,Nz)Join C(p(Nx,Nz))returnelse
if(p(h,Ny)==h)h Join C(Pi(h))Ny Quit C(Pi(h))Ny Join C(h)returnelseIncrement i,Pi(h)″NyC(Pi(h))″WhoisChild(Pi(h))end ifend ifend whileh Join C(Pi(h))對此算法的詳細描述如下Pi(h)″C0C(Pi(h))″WhoisChild(Pi(h))//Pi(h)″C0當任意節(jié)點h想要向CBT進行訂閱時,將第0個父節(jié)點作為核心節(jié)點C0。
C(Pi(h))″WhoisChild(Pi(h))節(jié)點h請求來自核心節(jié)點C0的與核心節(jié)點C0的子節(jié)點有關(guān)的信息,以向核心節(jié)點C0的子節(jié)點輸入與接收到的子節(jié)點有關(guān)的信息。
while(num(C(Pi(h)))∃max(C(Pi(h))):]]>當核心節(jié)點C0的子節(jié)點數(shù)多于可以容納的最大子節(jié)點數(shù)時,則執(zhí)行以下程序。
Find Ny s.t,direction(h,Ny)<direction(h,Nx),Nx,Ny 0 C(Pi(h))計算節(jié)點h與任意節(jié)點(節(jié)點Ny和Nx)之間的方向,以找出與節(jié)點h最接近的節(jié)點(Ny)。
Find Nx,Nz s.t,direction(Nx,Ny)<direction(Nw,Nx)從核心節(jié)點的子節(jié)點中,找出彼此具有最遠方向的節(jié)點。
if(direction(h,Ny)>direction(Nx,Nz))確定想要進行訂閱的節(jié)點h與和節(jié)點h最接近的節(jié)點Ny的方向是否大于核心節(jié)點的子節(jié)點中的最遠節(jié)點的方向。
h Join C(Pi(h))如果這樣,由于彼此間沒有關(guān)系,應(yīng)當向子節(jié)點訂閱節(jié)點h。
c(Nx,Nz)Quit C(Pi(h))應(yīng)當從核心節(jié)點中撤銷核心節(jié)點的子節(jié)點Nx和Ny中距核心節(jié)點最遠的節(jié)點。
c(Nx,Nz)Join C(p(Nx,Nz))在節(jié)點Nx和Ny中,應(yīng)當向與核心節(jié)點最接近的節(jié)點的子節(jié)點訂閱已撤銷節(jié)點。
否則if(p(h,Ny)==h)如果在節(jié)點h與Ny之間與核心節(jié)點接近的節(jié)點是節(jié)點h,h Join C(Pi(h))允許節(jié)點h向核心節(jié)點的子節(jié)點進行訂閱Ny Quit C(Pi(h))從核心節(jié)點的子節(jié)點中撤銷節(jié)點NyNy Join C(h)應(yīng)當向核心節(jié)點的子節(jié)點訂閱節(jié)點Ny。
Increment i,Pi(h)″NyC(Pi(h))″WhoisChild(Pi(h))增加層次,以再次執(zhí)行對節(jié)點Ny的訂閱程序。
接下來,將描述CBT的重新配置。
在任意節(jié)點向CBT進行訂閱之后,任意節(jié)點向和從兄弟節(jié)點和父節(jié)點周期性地發(fā)送和接收hello分組,從而可以確認父節(jié)點、子節(jié)點和兄弟節(jié)點的狀態(tài)。當在預(yù)定的時間內(nèi)未接收到hello分組時,假定在對方中發(fā)生了錯誤。
描述了與兄弟節(jié)點之間hello分組的傳輸和接收,與兄弟節(jié)點之間周期性地交換并分析具有與最近接收到的組播分組有關(guān)的傳輸號信息的hello分組,以確認與兄弟節(jié)點之間的計算方向值和與父節(jié)點之間的通信錯誤。作為確認的結(jié)果,當在與父節(jié)點的通信中發(fā)現(xiàn)暫時錯誤時,可以從具有最小方向值的兄弟節(jié)點中繼并接收分組。如上所述,利用與兄弟節(jié)點的周期通信,在CBT中可以配置兄弟節(jié)點間的網(wǎng)狀結(jié)構(gòu)。
描述了與父節(jié)點之間的hello分組的傳輸和接收,向父節(jié)點周期性地發(fā)送與最近接收到的組播分組的傳輸號有關(guān)的信息、與兄弟節(jié)點的方向信息以及在存在子節(jié)點的情況下與子節(jié)點的方向信息。與此同時,從父節(jié)點接收與兄弟節(jié)點有關(guān)的信息和與叔節(jié)點有關(guān)的信息。
當叔節(jié)點具有比父節(jié)點更小的方向值時,重新訂閱叔節(jié)點,并撤銷先前的父節(jié)點。
另一方面,當對通過與兄弟節(jié)點交換hello分組而接收到組播分組的傳輸號進行比較并確定組播分組具有比兄弟節(jié)點更小的傳輸號時,假定在與父節(jié)點之間的鏈路上發(fā)生了錯誤,并請求兄弟節(jié)點提供分組中繼。當在預(yù)定的時間內(nèi)未從父節(jié)點接收到hello分組或者在父節(jié)點中保持鏈路錯誤時,重新訂閱祖父節(jié)點(圖中的Pi(h),i=i-1)。
另一方面,當在預(yù)定的時間內(nèi)未從子節(jié)點接收到hello分組時,假定在子節(jié)點中發(fā)生了錯誤,并在預(yù)定的時間內(nèi)保持等待狀態(tài),以便孫節(jié)點重新訂閱。如果當前子節(jié)點數(shù)少于可容納子節(jié)點數(shù),對從子節(jié)點接收到的孫節(jié)點的方向與子節(jié)點的方向進行比較,以重新訂閱代表了到子節(jié)點的最大方向值的孫節(jié)點,從而減少CBT的層次,并減少中繼延遲時間。
如果這樣,則執(zhí)行本發(fā)明的基于方向量度的CBT層疊組播和傳統(tǒng)的基于距離量度的CBT層疊組播,從而對在中繼從核心節(jié)點到整個CBT的一個組播分組的程序中,對具有在相應(yīng)路由器上匯集的分組的信息進行比較,以評估性能。
主要分為兩種方式,計算與影響了整個CBT的性能的核心節(jié)點相連的路由器的處理分組數(shù)、以及除了核心節(jié)點以外處理了大多數(shù)分組的路由器的處理分組數(shù),以評估性能。
表2到5表示在對CBT進行訂閱的試驗中的訂閱節(jié)點和訂閱順序。
<表2>
<表3>
<表4>
<表5>
執(zhí)行試驗程序,增加了以下網(wǎng)絡(luò)中的組播組成員的數(shù)目。如表2到5所示,利用函數(shù)“rand()”可選地選擇組成員節(jié)點,并且也可以按照可選的順序向CBT進行訂閱。針對各個數(shù)自的成員節(jié)點,重復(fù)五個試驗,并得到重復(fù)試驗的層疊組播的結(jié)果的平均值以用作試驗的結(jié)果數(shù)值。
第一個試驗是對環(huán)形拓撲網(wǎng)絡(luò)的比較。
圖10是示出了環(huán)形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖。在如圖10所示的由41個路由器和終端節(jié)點構(gòu)成的環(huán)形拓撲網(wǎng)絡(luò)中,執(zhí)行了以下試驗根據(jù)表2到5所示的順序,10、15、20和25個終端節(jié)點向CBT進行訂閱。
圖11A示出了針對表2的第一試驗的基于距離量度的CBT的結(jié)構(gòu),而圖11B示出了按照本發(fā)明典型實施例的基于方向量度的CBT的示例。
參照圖11A和11B,應(yīng)當清楚的是,本發(fā)明的方向CBT的層次比傳統(tǒng)的距離CBT的層次少一。因此,縮短了復(fù)制用于傳輸?shù)姆纸M的中繼程序,從而能夠以可能的最高速度發(fā)送分組。
圖12是比較與圖11A和11B中的終端節(jié)點相連的每個路由器上所處理的分組數(shù)的曲線圖。在圖中,虛線表示基于距離的CBT,而實線表示基于方向的CBT。參照圖12,應(yīng)當清楚的是,距離CBT具有匯集在其中核心節(jié)點與節(jié)點1相連的路由器中的分組。作為比較,方向CBT表示了相對不活動的已處理分組數(shù)。這是因為,在圖11A所示的距離CBT中,每個節(jié)點的實際位置與CBT上的節(jié)點位置不一致,以通過從先前的核心節(jié)點向節(jié)點1傳送分組的路徑,將從節(jié)點1中繼的分組返回給節(jié)點32和37。
圖13A和13B是示出了平均處理分組數(shù)的曲線圖,作為以在第一試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果。圖13A表示由與核心節(jié)點相連的路由器上的訂閱節(jié)點數(shù)所處理的平均分組數(shù),而圖13B表示由處理了最多分組的路由器的節(jié)點數(shù)所處理的平均分組數(shù)。
在圖13A和13B的曲線圖中,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節(jié)點相連的路由器上所處理的分組數(shù)減少了大約38%,而且處理了最大數(shù)量分組的路由器所處理的分組數(shù)也減少了大約10%。具體地,由于在與核心節(jié)點相連的路由器上所處理的分組數(shù)影響CBT的總體組播性能,可以期待更為穩(wěn)定的組播通信。
第二個試驗是對線形拓撲網(wǎng)絡(luò)的比較。
圖14是示出了線形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖。如圖14所示的由41個路由器和終端節(jié)點構(gòu)成的線形拓撲網(wǎng)絡(luò)與第一個試驗中相同。
圖15A和15B是示出了平均處理分組數(shù)的曲線圖,作為以在第二試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果。圖15A表示由與核心節(jié)點相連的路由器上的訂閱節(jié)點數(shù)所處理的平均分組數(shù),圖15B表示由處理了最大數(shù)量分組的路由器的節(jié)點數(shù)所處理的平均分組數(shù)。
參照圖15A和15B,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節(jié)點相連的路由器上所處理的分組數(shù)減少了大約42%,而且處理了最大數(shù)量分組的路由器所處理的分組數(shù)也減少了大約10%。
第三個試驗是對星形拓撲網(wǎng)絡(luò)的比較。
圖16是示出了星形拓撲網(wǎng)絡(luò)的結(jié)構(gòu)的視圖。如圖16所示的由41個路由器和終端節(jié)點構(gòu)成的星形拓撲網(wǎng)絡(luò)與第一個試驗中相同。
圖17A和17B是示出了平均處理分組數(shù)的曲線圖,作為以在第三試驗中每個節(jié)點向CBT訂閱的情況來進行試驗的結(jié)果。圖17A表示由與核心節(jié)點相連的路由器上的訂閱節(jié)點數(shù)所處理的平均分組數(shù),圖17B表示由處理了最大數(shù)量分組的路由器的節(jié)點數(shù)所處理的平均分組數(shù)。
參照圖17A和17B,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節(jié)點相連的路由器上所處理的分組數(shù)平均減少了大約34%,而且同時,處理了最大數(shù)量分組的路由器所處理的分組數(shù)平均也減少了大約25%。結(jié)果,可以減少CBT的層次。
正如從上面的描述所清楚的那樣,本發(fā)明提供了使用基于方向量度的CBT的層疊組播。如上所述,考慮到分組的中繼轉(zhuǎn)發(fā)方向創(chuàng)建CBT,解決了傳統(tǒng)的基于距離量度的CBT中分組匯集到特定路由器上的缺點。
結(jié)果,可以減少在特定路由器中發(fā)生擁塞的可能性,以提供更為穩(wěn)定的組播。
盡管出于描述性的目的,公開了本發(fā)明的典型實施例,本領(lǐng)域的技術(shù)人員應(yīng)當清楚的是,在不偏離如所附權(quán)利要求所述的本發(fā)明的范圍和精神的前提下,多種修改、添加和替換都是可能的。
權(quán)利要求
1.一種針對基于CBT的層疊組播來配置基于方向的基于核心的樹(CBT)的方法,所述方法包括在要向CBT進行訂閱的任意終端節(jié)點處,請求和接收與向核心節(jié)點進行預(yù)訂的子節(jié)點有關(guān)的信息;計算所述終端節(jié)點與每個子節(jié)點之間的方向,與訂閱請求消息一起向所述核心節(jié)點傳送與具有最小結(jié)果數(shù)值的子節(jié)點有關(guān)的信息;在所述核心節(jié)點處,將相應(yīng)子節(jié)點和終端節(jié)點之間的計算得到的方向與向核心節(jié)點進行預(yù)訂的子節(jié)點之間的計算得到的方向進行比較,并依照比較結(jié)果,向子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點訂閱所述終端節(jié)點,以配置CBT。
2.按照權(quán)利要求1所述的方法,其特征在于還包括在核心節(jié)點和終端節(jié)點處,向和從父節(jié)點、子節(jié)點和兄弟節(jié)點周期性地發(fā)送和接收hello分組,以確認相應(yīng)節(jié)點的狀態(tài),并響應(yīng)相應(yīng)節(jié)點的確認狀態(tài),重新配置已配置的CBT。
3.按照權(quán)利要求1所述的方法,其特征在于計算所述方向包括使用具有核心節(jié)點和與核心接近的兩個任意節(jié)點之間的各個距離作為三角形的各個邊的三角形的內(nèi)角和外角和高。
4.按照權(quán)利要求3所述的方法,其特征在于計算所述方向包括使用以下公式direction=(á+)*y其中,三角形具有節(jié)點a1、C0和a2,C0是核心節(jié)點,a1和a2是任意節(jié)點,C0和a2形成了三角形的底邊,“á”是由三角形的邊C0a1和C0a2形成的內(nèi)角;“”是由三角形的邊C0a1和邊a1a2形成的外角,“y”是三角形的高,以及“direction”是計算得到的方向。
5.按照權(quán)利要求1所述的方法,其特征在于計算所述方向還包括確定具有最小結(jié)果數(shù)值的子節(jié)點與終端節(jié)點對來自核心節(jié)點的分組具有相同的轉(zhuǎn)發(fā)方向,將終端節(jié)點確定為子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點。
6.按照權(quán)利要求1所述的方法,其特征在于當計算相應(yīng)子節(jié)點和終端節(jié)點之間的方向的結(jié)果數(shù)值小于計算在核心節(jié)點處的預(yù)訂子節(jié)點之間的方向的結(jié)果數(shù)值時,向核心節(jié)點的子節(jié)點訂閱終端節(jié)點,并向預(yù)訂子節(jié)點發(fā)送消息,以向終端節(jié)點的子節(jié)點進行重新訂閱;以及預(yù)訂子節(jié)點響應(yīng)該消息,從核心節(jié)點中撤銷,并向終端節(jié)點的子節(jié)點進行訂閱。
7.一種機器可讀的程序存儲裝置,切實地實現(xiàn)了機器可執(zhí)行的指令程序,以執(zhí)行一種針對基于CBT的層疊組播來配置基于方向的基于核心的樹(CBT)的方法,所述方法包括在要向CBT進行訂閱的任意終端節(jié)點處,請求和接收與向核心節(jié)點進行了預(yù)訂的子節(jié)點有關(guān)的信息;計算所述終端節(jié)點與每個子節(jié)點之間的方向,與訂閱請求消息一起,向所述核心節(jié)點發(fā)送與具有最小結(jié)果數(shù)值的子節(jié)點有關(guān)的信息;在所述核心節(jié)點處,將相應(yīng)子節(jié)點和終端節(jié)點之間的計算得到的方向與向核心節(jié)點進行預(yù)訂的子節(jié)點之間的計算得到的方向進行比較,并依照比較結(jié)果,向子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點訂閱所述終端節(jié)點,以配置CBT。
8.按照權(quán)利要求7所述的程序存儲裝置,其特征在于所述方法還包括在核心節(jié)點和終端節(jié)點處,向和從父節(jié)點、子節(jié)點和兄弟節(jié)點周期性地發(fā)送和接收hello分組,以確認相應(yīng)節(jié)點的狀態(tài),并響應(yīng)相應(yīng)節(jié)點的確認狀態(tài),重新配置已配置的CBT。
9.按照權(quán)利要求7所述的程序存儲裝置,其特征在于計算所述方向包括使用具有核心節(jié)點和與核心接近的兩個任意節(jié)點之間的各個距離作為三角形的各個邊的三角形的內(nèi)角和外角和高。
10.按照權(quán)利要求9所述的程序存儲裝置,其特征在于計算所述方向包括使用以下公式direction=(á+)*y其中,三角形具有節(jié)點a1、C0和a2,C0是核心節(jié)點,a1和a2是任意節(jié)點,C0和a2形成了三角形的底邊,“á”是由三角形的邊C0a1和C0a2形成的內(nèi)角;“”是由三角形的邊C0a1和邊a1a2形成的外角,“y”是三角形的高,以及“direction”是計算得到的方向。
11.按照權(quán)利要求7所述的程序存儲裝置,其特征在于計算方向還包括確定具有最小結(jié)果數(shù)值的子節(jié)點與終端節(jié)點對來自核心節(jié)點的分組具有相同的轉(zhuǎn)發(fā)方向,將終端節(jié)點確定為子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點。
12.按照權(quán)利要求7所述的程序存儲裝置,其特征在于當在核心節(jié)點處,計算相應(yīng)子節(jié)點和終端節(jié)點之間的方向的結(jié)果數(shù)值小于計算預(yù)訂子節(jié)點之間的方向的結(jié)果數(shù)值時,向核心節(jié)點的子節(jié)點訂閱終端節(jié)點,并向預(yù)訂子節(jié)點發(fā)送消息,以向終端節(jié)點的子節(jié)點進行重新訂閱;以及預(yù)訂子節(jié)點響應(yīng)該消息,從核心節(jié)點中撤銷,并向終端節(jié)點的子節(jié)點進行訂閱。
全文摘要
一種針對基于CBT的層疊組播配置基于方向的基于核心的樹(CBT)的方法,所述方法包括請求和接受想要向CBT訂閱與向核心節(jié)點進行了預(yù)訂的子節(jié)點有關(guān)的信息的任意終端節(jié)點;計算接收與所述子節(jié)點有關(guān)的信息的所述任意終端節(jié)點與所述核心節(jié)點和每個已接受子節(jié)點間的方向,與訂閱請求消息一起向所述核心節(jié)點發(fā)送與具有最小結(jié)果數(shù)值的所述核心節(jié)點的子節(jié)點有關(guān)的信息;接收從所述終端節(jié)點發(fā)送過來的訂閱請求信息和來自核心節(jié)點的子節(jié)點信息,并將相應(yīng)子節(jié)點和終端節(jié)點的結(jié)果方向計算值與預(yù)訂子節(jié)點之間的結(jié)果方向計算值進行比較,并響應(yīng)其,允許終端節(jié)點向子節(jié)點或相應(yīng)子節(jié)點的父節(jié)點進行訂閱,以配置CBT;以及重新配置已配置的CBT。
文檔編號H04L12/56GK1534944SQ20041003148
公開日2004年10月6日 申請日期2004年3月29日 優(yōu)先權(quán)日2003年3月28日
發(fā)明者梁基善 申請人:三星電子株式會社