專利名稱:針對基于cbt的層疊組播配置基于方向的基于核心的樹的制作方法
技術領域:
本發明涉及一種針對基于CBT層疊組播(overlay multicast)配置基于方向的基于核心的樹(CBT)的方法。
背景技術:
通常,在想要向幾個接收機發送相同的信息時,用于通過組播只向加入了相應組播組的接收機發送數據的一對多的通信比單播,即一對一的通信更為有效,由于一對多的通信可以減少接收側延遲時間、網絡資源的使用和發射機的傳輸開銷。
但是,在網絡上執行的因特網協議(IP)組播中,必須按照組播路由算法,使用用于中繼數據的組播路由器來配置網絡。
因此,其缺點在于需要新的投資成本以便以組播路由器來代替傳統的單播路由器。
另一方面,在因特網服務供應商(ISP)側,由于缺乏組播服務收益模型而引起的低投資收益,以及在技術側,由于在會話發起協議(SIP)之間通過組播業務的協商和策略、對傳統單播業務的公正性以及仍不清楚的域內組播技術等,在ISP骨干網絡中延遲了組播的引入。
與此同時,專用和本地組播請求快速增長,例如,使用因特網的公司廣播和校園廣播等。因此,需要基于當前單播網絡的組播傳輸。
用于在終端節點中中繼數據的層疊組播是一種針對基于單播網絡的組播傳輸的方法。由于近來與存儲器容量的增長和VDSL的擴展相一致的數據處理速度的快速增長以及的數據傳輸速度的快速增長等,終端節點執行對去往其他終端節點的數據的中繼,從而可以期望有效的層疊組播。
圖1A示出了使用組播路由器來執行因特網協議(IP)組播的網絡結構,而圖1B示出了使用單播路由器來執行層疊組播的網絡結構。
層疊組播的基本概念是,代替在如圖1A所示的、由組播路由器(MR1-MR4)組成的網絡上執行組播,可以通過在如圖1B所示的、由單播路由器(R1-R4)組成的網絡中,在如節點B等終端節點(主機)中中繼(在復制之后發送)分組,來執行基于單播的組播。即,終端節點可以起到組播路由器的作用。
與在圖1A所示網絡上執行的組播相比,在圖1B所示的網絡上執行的層疊組播增加了延遲時間或分組數,但其不需要組播路由器,因此基于傳統的單播網絡提供了相對有效的組播通信。
目前,正在對層疊組播協議距離矢量組播路由協議(DVMRP)、其上應用了組播路由協議的narada,在網絡上安裝散播(scattercast)代理以便在代理之間使用單播通信,以及CBT進行研究,這種層疊組播的核心在于,利用包括在相同組播組中的終端節點,配置并維持有效分組傳輸的層疊樹。
另一方面,對其上應用了共享樹的CBT在擴展、控制消息的開銷以及性能上比對其應用了組播路由協議的DVMRP更為有效。
即,CBT的缺點在于,業務匯集在核心節點,但其優點在于,對于組播成員的變化,產生相對較少的控制消息,以及在每個終端節點中所管理的信息量較少,而使其能夠更好的擴展,并使其更容易實現。此外,由于與終端節點處理速度的提高和數據傳輸能力的提高成正比地增加了可中繼子節點的數目來提升層疊組播的性能,從而使基于CBT的層疊樹結構更為有效。
基于CBT的層疊組播基本上選擇對于其節點到節點距離較近的節點作為父或子節點來配置CBT。在以CBT量度測量距離時,執行對去往CBT上所有節點的分組的中繼過程,從而其相特定的鏈路或路由器重復傳遞分組,由此使匯集到相應鏈路或路由器上的業務不會擁塞。
通常,由于根據不具有擁塞控制機制的用戶數據報協議(UDP)來操作組播,與傳輸控制協議(TCP)不同,即使在網絡上產生擁塞時,仍然會向網絡連續傳輸分組,而不會減少業務量。結果,其缺點在于,由于分組丟失,網絡性能以及組播性能可能會惡化,而且可能引起對網絡上的其他TCP連接不公平的問題。
以下的每個專利均公開了與本發明共有的特征,但均并未教益或提出在本申請中所公開的發明特征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》。
發明內容
因此,考慮到上述問題,提出本發明,以及本發明的目的是提供一種針對基于CBT的層疊組播配置基于方向的CBT的方法,所述方法能夠解決業務匯集到特定路由器和鏈路上的問題。
依照本發明的一個方面,通過提供一種針對基于CBT的層疊組播配置基于方向的CBT的方法可以實現上述和其他目的,所述方法包括請求和接受想要向CBT訂閱與向核心節點進行了預定的子節點有關的信息的任意終端節點;計算接收與所述子節點有關的信息的所述任意終端節點與所述核心節點和每個已接受子節點之間的方向,與訂閱請求消息一起向所述核心節點發送與具有最小結果數值的所述核心節點的子節點有關的信息;由所述核心節點接收從所述終端節點發送過來的訂閱請求信息和子節點信息,并將相應子節點和終端節點的結果方向計算值與預定子節點之間的結果方向計算值進行比較,從而根據比較結果,允許終端節點向子節點或相應子節點的父節點進行訂閱,以配置CBT;以及允許核心節點和終端節點向和從父、子和兄弟節點周期性地發送和接收hello分組,以確認相應節點的狀態,并根據所確認的狀態重新配置已配置的CBT。
如上所述,本發明分析從核心節點傳向每個節點的分組的傳輸轉發方向,以選擇具有與CBT中的父或子節點具有相同轉發方向的節點,從而解決基于距離量度的CBT中的返回問題。
通過以下結合附圖而進行的詳細描述,將更為清楚地理解本發明的上述和其他目的、特征和其他優點,其中圖1A是示出了用于使用組播路由器來執行因特網協議(IP)組播的網絡結構的視圖;圖1B是示出了用于使用單播路由器來執行層疊組播的網絡結構的視圖;圖2是示出了由包括在相同組播組中的節點構成的網絡拓撲的視圖;圖3A到3D是用于描述在圖2所示的網絡拓撲中,根據具有核心節點C0的基于距離量度的CBT,按照節點a、b和h的順序進行訂閱的情況的視圖;圖4是示出了圖3C所示的CBT中的組播分組的中繼路徑的視圖;圖5A是示出了由節點C0、a、b、h和h1構成的基于距離量度的CBT的結構的視圖;圖5B是示出了在圖5A所示的網絡中的每個鏈路和路由器上所處理的分組數的曲線圖;圖6A到6D是示出了基于核心節點的兩個相鄰節點間的位置關系的視圖;圖7A到7C是根據描述按照本發明典型實施例,根據具有核心節點C0的基于方向量度的CBT,按照節點a、b和h的順序進行訂閱的情況的視圖;圖8是示出了在按照本發明典型實施例的基于方向量度的CBT中的組播分組的中繼路徑的視圖;圖9A和9B是用于描述按照本發明典型實施例,根據具有核心節點C0的基于方向量度的CBT,按照節點a、b、h和h1的順序進行訂閱的情況的視圖;圖10是示出了環形拓撲網絡的結構的視圖;圖11A和11B是示出了針對表2的第一試驗的基于距離量度的CBT的結構和按照本發明典型實施例的基于方向量度的CBT的視圖;圖12是比較與圖11A和11B中的終端節點相連的每個路由器上所處理的分組數的曲線圖;圖13A和13B是示出了平均處理分組數的曲線圖,作為以在第一試驗中每個節點向CBT訂閱的情況來進行試驗的結果;圖14是示出了線形拓撲網絡的結構的視圖;圖15A和15B是示出了平均處理分組數的曲線圖,作為以在第二試驗中每個節點向CBT訂閱的情況來進行試驗的結果;圖16是示出了星形拓撲網絡的結構的視圖;以及圖17A和17B是示出了平均處理分組數的曲線圖,作為以在第三試驗中每個節點向CBT訂閱的情況來進行試驗的結果。
具體實施例方式
圖2示出了由包括在相同組播組中的節點構成的網絡拓撲的示例,其中每個節點按照節點a、b、h和h1的順序進行訂閱。
參照圖2,核心節點C0通過鏈路#1連接到路由器R1,以及節點a通過鏈路#2連接到路由器1 R1。路由器1 R1通過鏈路#3連接到路由器3 R3,以及節點b通過鏈路#32連接到路由器3 R3。節點h通過鏈路#31連接到路由器3 R3,以及節點h1通過鏈路#33連接到路由器3 R3。
圖3A到3D是用于描述在圖2所示的網絡拓撲中,根據具有核心節點C0的基于距離量度的CBT,按照節點a、b和h的順序進行訂閱的情況的視圖。
圖3示出了在圖2所示的網絡中,根據具有核心節點C0的基于距離量度的CBT,按照節點a、b和h的順序進行訂閱的情況下,每個節點到節點的距離。核心節點C0和節點a之間的距離是3,核心節點C0和節點b之間的距離是9,節點a和節點h之間的距離是4,節點h和節點b之間的距離是8,以及節點a和節點b之間的距離是10。
也就是,由于核心節點C0經過鏈路#1通過路由器1 R1,然后經過鏈路#2連接到節點a,當累計鏈路#1的距離1和鏈路#2的距離2時,總距離為3。
由于核心節點C0經過鏈路#1通過路由器1 R1,然后,經過鏈路#3通過路由器3 R3,最后,經過鏈路#32連接到節點b,當累計鏈路#1的距離1、鏈路#3的距離1和鏈路#32的距離7時,總距離為9。
由于節點a經過鏈路#2通過路由器1 R1,然后通過經過鏈路#3路由器3 R3,最后,經過#31連接到節點h,當累計鏈路#2的距離2、鏈路#3的距離1和鏈路#31的距離1時,總距離為4。
由于節點h經過鏈路#31通過路由器3 R3,然后,經過鏈路#32連接到節點b,當累計鏈路#32的距離7和鏈路#31的距離1時,總距離為8。
由于節點a經過鏈路#2通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后,經過鏈路#32連接到節點b,當總計鏈路#2的距離2、鏈路#3的距離1和鏈路#32的距離7時,總距離為10。
這里,所述節點到節點距離采用針對詢問和響應的交換的端到端延遲時間。
參照圖2和圖3A,如圖3B所示,在核心節點C0的可中繼(可容納)子節點的數量為2的情況下,首先,在節點a和b進行訂閱的狀態下,由于節點h和節點a間距離為4并且節點h和節點b間距離為8,選擇節點a作為針對訂閱的父節點,以配置圖3C所示的CBT。
圖3D示出了在從核心節點到整個CBT中繼一個組播分組的處理中,在每個鏈路和路由器上所處理的分組數。
也就是說,由于圖2的網絡拓撲具有如圖3A所示的距離,當配置如圖3B和圖3C所處理的基于距離的CBT時,在每個鏈路和路由器上處理的分組的數量如下。
為了將分組從核心節點C0傳輸到每個節點a、b和h,可以將分組從核心節點傳輸到節點a和節點b,然后通過節點a中繼分組,到節點h。
也就是說,參照圖2,描述了從核心節點C0到節點a的分組傳輸路徑,繪出了從核心節點C0到節點a的路徑,經過鏈路#1通過路由器1 R1,然后經過鏈路#2(鏈路#1、R1、鏈路#2)。
描述了從核心節點C0到節點b的分組路徑,繪出了從核心節點C0到節點b的分組路徑,經過鏈路#1通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后,經過鏈路#32。(鏈路#1,R1,鏈路#3,R3,鏈路#32)。
描述了從節點a到節點h的分組傳輸路徑,繪出了從節點a到節點h的分組路徑,經過鏈路#2通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后經過鏈路#31(鏈路#2,R1,鏈路#3,R3,鏈路#31)。
因此,按照每個鏈路或路由器計算分組通過次數,鏈路#1兩次,路由器1 R1三次,鏈路#2兩次,鏈路#3兩次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。
即,為了向整個CBT傳送N個組播分組,在路由器1 R1上,處理3*N個分組。
分組匯集在路由器1 R1上而不是其他鏈路或路由器的原因在于,如圖4所示,與從第一層次節點C0通過路由器1 R1向節點a和節點b中繼分組的路徑(實線箭頭)相比,從第二層次節點a向節點h中繼分組的路徑(虛線箭頭)通過路由器1 R1返回。
即,如實線箭頭所示,當從核心節點C0向節點a和節點b進行中繼時,每個分組必須通過路由器1 R1一次,而且如虛線箭頭所示,即使在從節點a向節點b進行中繼時,分組必須通過路由器1 R1和路由器3 R3,總共通過路由器1 R1三次。
圖5A示出了按照圖2所示的網絡拓撲,由節點C0、a、b、h和h1構成的基于距離量度的CBT的結構。節點h1選擇節點a作為訂閱的父節點。圖5B是示出了在圖5A所示的網絡中的每個鏈路和路由器上所處理的分組數的曲線圖。參照圖5B,鏈路#1處理兩個分組,路由器1 R1處理四個分組,鏈路#2處理三個分組,鏈路#3處理三個分組,路由器3 R3處理三個分組,鏈路#31處理一個分組,鏈路#32處理一個分組,以及鏈路#33處理一個分組。
即,由于圖2A所示的網絡拓撲具有如圖3A所示的距離,當配置具有如圖5A所示的處理的基于距離的CBT時,在每個鏈路和路由器上所處理的分組數如下。
為了從核心節點C0向每個節點a、b、h和h1傳送分組,可以從核心節點向節點a和節點b傳送分組,然后,通過節點a對分組進行中繼,向節點h和h1傳送。
即,描述了從核心節點C0到節點b的分組傳輸路徑,繪出了從核心節點C0到節點b的路徑,經過鏈路#1通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后,經過鏈路#32(鏈路#1,R1,鏈路#3,R3,鏈路#32)。
描述了從節點a到節點h的分組傳輸路徑,繪出了從節點a到節點h的分組路徑,經過鏈路#2通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后,經過鏈路#31(鏈路#2,R1,鏈路#3,R3,鏈路#31)。
描述了從節點a到節點h1的分組傳輸路徑,繪出了從節點a到節點h1的分組路徑,經過鏈路#2通過路由器1 R1,然后經過鏈路#3通過路由器3 R3,最后經過鏈路#33(鏈路#2,R1,鏈路#3,R3,鏈路#33)。
因此,按照每個鏈路和路由器,計算分組通過次數,鏈路#1兩次,路由器1 R1四次,鏈路#2三次,鏈路#3三次,路由器3 R3三次,鏈路#31一次,鏈路#32一次,鏈路#33一次。
如圖5A和圖5B所示,當通過路由器1 R1的返回次數由于新的節點訂閱而增加時,在路由器1 R1上可能引起擁塞問題。
如上所述,基于距離量度的CBT具有由于訂閱順序而產生擁塞問題的缺點。特別是,在連接到核心節點的路由器或鏈路上產生擁塞的情況下,如路由器1 R1,可能會給整個CBT以致命的打擊。
如上所述,在傳統的基于距離量度的CBT中的缺點是由于以下原因而引起的僅簡單地利用節點到節點距離來選擇父或子節點,以配置CBT,而沒有考慮向樹中的次(子)節點傳輸的組播分組的中繼路徑。
首先,將定義根據本發明實施例的基于方向量度的CBT的屬性。
表1示出了根據本發明實施例的基于方向量度的CBT的已定義屬性。
<表1>
參照表1,“C(x)”是節點x的子節點集合,“num(C(x))”是節點x的子節點數,max(C(x))是節點x所能容納(中繼)的最大子節點數,“Pi(x)”是節點x的第i個先輩節點(i>0)。“dist(x,y)”表示節點x和節點y間的距離,“C0”表示核心節點,“h”表示想要向CBT進行訂閱的新節點,“Nx”和“Ny”表示向CBT進行了預訂的節點。
“p(x,y)”表示在節點x和節點y之間與核心節點相鄰的節點,例如,當核心節點和節點x間的距離(dist(C0,x))小于核心節點和節點y間的距離(dist(C0,y))時,P(x,y)變為x。
另一方面,“c(x,y)”表示在節點x和節點y中遠離核心節點的節點,如,核心節點到節點x的距離(dist(C0,x))小于核心節點到節點y的距離(dist(C0,y)),c(x,y)為y。“atan()”表示計算以弧度值表示的反正切值。“sqr()”表示平方根返回值,“PI”表示pi(p)值(3.1415926),“WhoisChild(x)”表示向節點x請求與其子節點x有關的信息。“direction(x,y)”表示計算節點x和節點y之間的方向值。
圖6A到6D示出了根據本發明實施例的基于核心節點的兩個相鄰節點間的位置關系。
圖6A示出了具有核心節點C0、節點a1和節點a2的順序的連接,圖6B示出了具有節點a1、核心節點C0和節點a2的順序的連接。如圖6C和圖6D所示,可以假定三角形以與核心節點相鄰的兩個節點間的距離作為一個邊。三角形的內角和外角以及高用于獲得在節點間進行中繼的分組的轉發方向。
根據本發明實施例,可以將方向計算方法描述如下程序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)//將弧度值轉換為角度end if //dirction(a1,a2)的結果值也就是說,假定在節點a1和節點a2中遠離核心節點C0的節點與核心節點間的距離對應于“hc”,在節點a1和節點a2中與核心節點C0接近的節點與核心節點C0間的距離對應于“ac”,節點a1和節點a2間的距離對應于“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,將弧度值轉換為角度。
然后,“atan(y/x)*(180/PI)”等于 而 等于 返回 作為“direction(a1,a2)”的結果值。
從上面所清楚的是,本發明將在方向計算算法中所計算的方向值用作代替距離的新量度,以配置CBT。也就是說,兩個節點間的方向值逐漸變小并將把分組從核心節點傳輸到兩個節點的轉發方向看作同一事物,以選擇兩個節點作為父或子節點。通過這種方式,可以減少返回到路由器1 R1的次數。
核心節點選擇方法是一種被動方法。還存在一種引導(bootstrap)機制的方法等,但是為了方便地實現本發明,設計核心節點并假定加入組的所有節點通過設置或具有與識別核心節點的節點有關的信息來識別核心節點。
圖7A到7C、圖8、圖9A和9B是用于描述根據按照本發明典型實施例的基于方向量度的CBT的視圖,為了與傳統的基于距離的CBT比較,下面描述了按照圖2所示的網絡拓撲,按照節點a、b、h和h1的順序對基于方向的CBT進行訂閱的情況。
因此,每個圖所示的節點到節點距離表示了圖2所示的網絡拓撲和圖3A所示的節點到節點距離。在圖3A中已經對所述節點到節點距離進行了描述。
圖7A表示在節點h訂閱前的CBT,圖7B表示在節點h訂閱后的CBT,而圖7C表示針對一個組播分組、在每個鏈路和路由器上所處理的分組數。
在想要訂閱的節點h從其中最大可中繼子節點數為2的核心節點C0處獲得與核心節點的子節點a和b有關的信息之后,針對節點a和b,計算前述方向值“direction(h,a)[214.09]”和“direction(h,b)[41.37]”。
節點h向節點b傳輸包括關于小方向值的信息的CBT訂閱請求消息,以向第一層次的父節點的核心節點C0請求訂閱。核心節點C0將所接收到的CBT訂閱請求消息的direction(h,b)的值與通過周期性的hello消息而接收到的給定節點之間的direction(a,b)的值[71.57]進行比較。結果,“[direction(h,b)<direction(a,b)]”表示從節點h到節點b中繼分組的路徑是用于避免前述返回現象的有效路徑。
因此,核心節點C0允許節點h訂閱新的子節點,以及通過傳輸刷新消息(flush message),請求給定的子節點b重新訂閱新的父節點h。根據此請求,節點b訂閱第二層次的父節點h,以配置圖7B所示的CBT。
圖7C表示在每個鏈路和路由器上所處理的分組數。在圖中,實線表示根據本發明的基于方向的CBT配置的結果,而虛線表示傳統的基于距離的CBT配置的結構。參照圖7C,描述了本發明的結果,如實線所示,鏈路#1處理兩個分組,路由器1 R1處理兩個分組,鏈路#2處理一個分組,鏈路#3處理一個分組,路由器3 R3處理兩個分組,鏈路#31處理兩個分組,并且鏈路#32處理一個分組。
也就是說,參照圖2和7B,描述了從核心節點C0到節點a的分組傳輸路徑,繪出了從核心節點C0到節點a的路徑,經過鏈路#1通過路由器1 R1,然后經過鏈路#2。(鏈路#1,R1,鏈路#2)描述了從核心節點C0到節點h的分組傳輸路徑,繪出了從核心節點C0到節點h的路徑,經過鏈路#1通過路由器1 R1,然后,經過鏈路#3通過路由器3 R3,最后,經過鏈路#31。(鏈路#1,R1,鏈路#3,R3,鏈路#31)描述了從節點h到節點b的分組傳輸路徑,繪出了從節點h到節點b的路徑,經過鏈路#31通過路由器3 R3,然后,經過鏈路#32。(R3,鏈路#31,鏈路#32)
因此,按照每個鏈路或路由器,計算分組通過次數,鏈路#1兩次,路由器1 R1兩次,鏈路#2一次,鏈路#3一次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。在圖7C中以實線示出。
相反,將由傳統的基于距離的CBT得到的結果與每個鏈路或路由器的分組通過次數進行比較,如圖7C中虛線所示,其中,鏈路#1兩次,路由器1 R1三次,鏈路#2兩次,鏈路#3兩次,路由器3 R3兩次,鏈路#31一次,以及鏈路#32一次。在圖3D中已經對傳統的基于距離的CBT所得到的結果進行了描述。
圖8示出了在圖2所示網絡拓撲中,在按照本發明實施例的基于方向量度的CBT中的組播分組的中繼路徑的視圖。實線表示從節點C0到節點a、h的中繼路徑,而虛線表示從節點h到節點b的中繼路徑。將其與圖4所示的傳統的基于距離的CBT中的組播分組的中繼路徑進行比較。
即,由于對于N個組播分組并未引起傳統的基于距離量度的CBT的返回現象,在路由器R1上,只處理了2*N個分組,而不是3*N個分組。盡管增加了在鏈路31上處理的分組數,結果,仍然可以減少傳統的基于距離量度的CBT的缺點,即,在如與核心節點相連的路由器等特定路由器或鏈路上的分組匯集現象。
圖9A表示在圖2所示的網絡拓撲中、按照本發明的由節點C0、a、b、h和h1構成的基于方向量度的CBT,而圖9B示出了在圖9A所示的網絡中的每個鏈路和路由器上所處理的分組數。參照圖9B,鏈路#1處理兩個分組,路由器1 R1處理兩個分組,鏈路#2處理一個分組,鏈路#3處理一個分組,路由器3 R3處理三個分組,鏈路#31處理三個分組,鏈路#32處理一個分組,以及鏈路#33處理一個分組。
即,參照圖2和圖9A描述了從核心節點C0到節點a的分組傳輸路徑,繪出了從核心節點C0到節點a的路徑,經由鏈路#1通過路由器1 R1,然后經由鏈路#2。(鏈路#1,R1,鏈路#2)描述了從核心節點C0到節點h的分組傳輸路徑,繪出了從核心接地那C0到節點b的路徑,經由鏈路#1通過路由器1 R1,然后經由鏈路#3通過路由器3 R3,最后經由鏈路#31傳遞。(鏈路#1,R1,鏈路#3,R3,鏈路#31)描述了從節點h到節點b的分組傳輸路徑,繪出了從節點h到節點b的路徑,經由鏈路#31通過路由器3 R3,然后經由鏈路#32傳遞。(R3,鏈路#31,鏈路#32)描述了從節點h到節點h1,繪出了從節點h到節點h1的路徑,經由鏈路#31通過路由器3 R3,然后經由鏈路#33傳遞。(R3,鏈路#31,鏈路#33)因此,按照每個鏈路或路由器計算分組通過次數,鏈路#1兩次,路由器1 R1兩次,鏈路#2一次,鏈路#3一次,路由器3 R3兩次,鏈路#31三次,鏈路#32一次,以及鏈路#33一次。在圖9B中以實線示出這些情況。
相反,將由傳統的基于距離的CBT得到的結果與每個鏈路或路由器的分組通過次數進行比較,如圖9B中虛線所示,其中,鏈路#1兩次,路由器l R1四次,鏈路#2三次,鏈路#3三次,路由器3 R3三次,鏈路#31一次,鏈路#32一次,以及鏈路#33一次。這在圖5B中已經進行了描述。
可以如下表示按照本發明的基于方向量度的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當任意節點h想要向CBT進行訂閱時,將第0個父節點作為核心節點C0。
C(Pi(h))″WhoisChild(Pi(h))節點h請求來自核心節點C0的與核心節點C0的子節點有關的信息,以向核心節點C0的子節點輸入與接收到的子節點有關的信息。
while(num(C(Pi(h)))∃max(C(Pi(h))):]]>當核心節點C0的子節點數多于可以容納的最大子節點數時,則執行以下程序。
Find Ny s.t,direction(h,Ny)<direction(h,Nx),Nx,Ny 0 C(Pi(h))計算節點h與任意節點(節點Ny和Nx)之間的方向,以找出與節點h最接近的節點(Ny)。
Find Nx,Nz s.t,direction(Nx,Ny)<direction(Nw,Nx)從核心節點的子節點中,找出彼此具有最遠方向的節點。
if(direction(h,Ny)>direction(Nx,Nz))確定想要進行訂閱的節點h與和節點h最接近的節點Ny的方向是否大于核心節點的子節點中的最遠節點的方向。
h Join C(Pi(h))如果這樣,由于彼此間沒有關系,應當向子節點訂閱節點h。
c(Nx,Nz)Quit C(Pi(h))應當從核心節點中撤銷核心節點的子節點Nx和Ny中距核心節點最遠的節點。
c(Nx,Nz)Join C(p(Nx,Nz))在節點Nx和Ny中,應當向與核心節點最接近的節點的子節點訂閱已撤銷節點。
否則if(p(h,Ny)==h)如果在節點h與Ny之間與核心節點接近的節點是節點h,h Join C(Pi(h))允許節點h向核心節點的子節點進行訂閱Ny Quit C(Pi(h))從核心節點的子節點中撤銷節點NyNy Join C(h)應當向核心節點的子節點訂閱節點Ny。
Increment i,Pi(h)″NyC(Pi(h))″WhoisChild(Pi(h))增加層次,以再次執行對節點Ny的訂閱程序。
接下來,將描述CBT的重新配置。
在任意節點向CBT進行訂閱之后,任意節點向和從兄弟節點和父節點周期性地發送和接收hello分組,從而可以確認父節點、子節點和兄弟節點的狀態。當在預定的時間內未接收到hello分組時,假定在對方中發生了錯誤。
描述了與兄弟節點之間hello分組的傳輸和接收,與兄弟節點之間周期性地交換并分析具有與最近接收到的組播分組有關的傳輸號信息的hello分組,以確認與兄弟節點之間的計算方向值和與父節點之間的通信錯誤。作為確認的結果,當在與父節點的通信中發現暫時錯誤時,可以從具有最小方向值的兄弟節點中繼并接收分組。如上所述,利用與兄弟節點的周期通信,在CBT中可以配置兄弟節點間的網狀結構。
描述了與父節點之間的hello分組的傳輸和接收,向父節點周期性地發送與最近接收到的組播分組的傳輸號有關的信息、與兄弟節點的方向信息以及在存在子節點的情況下與子節點的方向信息。與此同時,從父節點接收與兄弟節點有關的信息和與叔節點有關的信息。
當叔節點具有比父節點更小的方向值時,重新訂閱叔節點,并撤銷先前的父節點。
另一方面,當對通過與兄弟節點交換hello分組而接收到組播分組的傳輸號進行比較并確定組播分組具有比兄弟節點更小的傳輸號時,假定在與父節點之間的鏈路上發生了錯誤,并請求兄弟節點提供分組中繼。當在預定的時間內未從父節點接收到hello分組或者在父節點中保持鏈路錯誤時,重新訂閱祖父節點(圖中的Pi(h),i=i-1)。
另一方面,當在預定的時間內未從子節點接收到hello分組時,假定在子節點中發生了錯誤,并在預定的時間內保持等待狀態,以便孫節點重新訂閱。如果當前子節點數少于可容納子節點數,對從子節點接收到的孫節點的方向與子節點的方向進行比較,以重新訂閱代表了到子節點的最大方向值的孫節點,從而減少CBT的層次,并減少中繼延遲時間。
如果這樣,則執行本發明的基于方向量度的CBT層疊組播和傳統的基于距離量度的CBT層疊組播,從而對在中繼從核心節點到整個CBT的一個組播分組的程序中,對具有在相應路由器上匯集的分組的信息進行比較,以評估性能。
主要分為兩種方式,計算與影響了整個CBT的性能的核心節點相連的路由器的處理分組數、以及除了核心節點以外處理了大多數分組的路由器的處理分組數,以評估性能。
表2到5表示在對CBT進行訂閱的試驗中的訂閱節點和訂閱順序。
<表2>
<表3>
<表4>
<表5>
執行試驗程序,增加了以下網絡中的組播組成員的數目。如表2到5所示,利用函數“rand()”可選地選擇組成員節點,并且也可以按照可選的順序向CBT進行訂閱。針對各個數自的成員節點,重復五個試驗,并得到重復試驗的層疊組播的結果的平均值以用作試驗的結果數值。
第一個試驗是對環形拓撲網絡的比較。
圖10是示出了環形拓撲網絡的結構的視圖。在如圖10所示的由41個路由器和終端節點構成的環形拓撲網絡中,執行了以下試驗根據表2到5所示的順序,10、15、20和25個終端節點向CBT進行訂閱。
圖11A示出了針對表2的第一試驗的基于距離量度的CBT的結構,而圖11B示出了按照本發明典型實施例的基于方向量度的CBT的示例。
參照圖11A和11B,應當清楚的是,本發明的方向CBT的層次比傳統的距離CBT的層次少一。因此,縮短了復制用于傳輸的分組的中繼程序,從而能夠以可能的最高速度發送分組。
圖12是比較與圖11A和11B中的終端節點相連的每個路由器上所處理的分組數的曲線圖。在圖中,虛線表示基于距離的CBT,而實線表示基于方向的CBT。參照圖12,應當清楚的是,距離CBT具有匯集在其中核心節點與節點1相連的路由器中的分組。作為比較,方向CBT表示了相對不活動的已處理分組數。這是因為,在圖11A所示的距離CBT中,每個節點的實際位置與CBT上的節點位置不一致,以通過從先前的核心節點向節點1傳送分組的路徑,將從節點1中繼的分組返回給節點32和37。
圖13A和13B是示出了平均處理分組數的曲線圖,作為以在第一試驗中每個節點向CBT訂閱的情況來進行試驗的結果。圖13A表示由與核心節點相連的路由器上的訂閱節點數所處理的平均分組數,而圖13B表示由處理了最多分組的路由器的節點數所處理的平均分組數。
在圖13A和13B的曲線圖中,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節點相連的路由器上所處理的分組數減少了大約38%,而且處理了最大數量分組的路由器所處理的分組數也減少了大約10%。具體地,由于在與核心節點相連的路由器上所處理的分組數影響CBT的總體組播性能,可以期待更為穩定的組播通信。
第二個試驗是對線形拓撲網絡的比較。
圖14是示出了線形拓撲網絡的結構的視圖。如圖14所示的由41個路由器和終端節點構成的線形拓撲網絡與第一個試驗中相同。
圖15A和15B是示出了平均處理分組數的曲線圖,作為以在第二試驗中每個節點向CBT訂閱的情況來進行試驗的結果。圖15A表示由與核心節點相連的路由器上的訂閱節點數所處理的平均分組數,圖15B表示由處理了最大數量分組的路由器的節點數所處理的平均分組數。
參照圖15A和15B,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節點相連的路由器上所處理的分組數減少了大約42%,而且處理了最大數量分組的路由器所處理的分組數也減少了大約10%。
第三個試驗是對星形拓撲網絡的比較。
圖16是示出了星形拓撲網絡的結構的視圖。如圖16所示的由41個路由器和終端節點構成的星形拓撲網絡與第一個試驗中相同。
圖17A和17B是示出了平均處理分組數的曲線圖,作為以在第三試驗中每個節點向CBT訂閱的情況來進行試驗的結果。圖17A表示由與核心節點相連的路由器上的訂閱節點數所處理的平均分組數,圖17B表示由處理了最大數量分組的路由器的節點數所處理的平均分組數。
參照圖17A和17B,可以清楚的是,與距離CBT相比,在CBT方向中,在與核心節點相連的路由器上所處理的分組數平均減少了大約34%,而且同時,處理了最大數量分組的路由器所處理的分組數平均也減少了大約25%。結果,可以減少CBT的層次。
正如從上面的描述所清楚的那樣,本發明提供了使用基于方向量度的CBT的層疊組播。如上所述,考慮到分組的中繼轉發方向創建CBT,解決了傳統的基于距離量度的CBT中分組匯集到特定路由器上的缺點。
結果,可以減少在特定路由器中發生擁塞的可能性,以提供更為穩定的組播。
盡管出于描述性的目的,公開了本發明的典型實施例,本領域的技術人員應當清楚的是,在不偏離如所附權利要求所述的本發明的范圍和精神的前提下,多種修改、添加和替換都是可能的。
權利要求
1.一種針對基于CBT的層疊組播來配置基于方向的基于核心的樹(CBT)的方法,所述方法包括在要向CBT進行訂閱的任意終端節點處,請求和接收與向核心節點進行預訂的子節點有關的信息;計算所述終端節點與每個子節點之間的方向,與訂閱請求消息一起向所述核心節點傳送與具有最小結果數值的子節點有關的信息;在所述核心節點處,將相應子節點和終端節點之間的計算得到的方向與向核心節點進行預訂的子節點之間的計算得到的方向進行比較,并依照比較結果,向子節點或相應子節點的父節點訂閱所述終端節點,以配置CBT。
2.按照權利要求1所述的方法,其特征在于還包括在核心節點和終端節點處,向和從父節點、子節點和兄弟節點周期性地發送和接收hello分組,以確認相應節點的狀態,并響應相應節點的確認狀態,重新配置已配置的CBT。
3.按照權利要求1所述的方法,其特征在于計算所述方向包括使用具有核心節點和與核心接近的兩個任意節點之間的各個距離作為三角形的各個邊的三角形的內角和外角和高。
4.按照權利要求3所述的方法,其特征在于計算所述方向包括使用以下公式direction=(á+)*y其中,三角形具有節點a1、C0和a2,C0是核心節點,a1和a2是任意節點,C0和a2形成了三角形的底邊,“á”是由三角形的邊C0a1和C0a2形成的內角;“”是由三角形的邊C0a1和邊a1a2形成的外角,“y”是三角形的高,以及“direction”是計算得到的方向。
5.按照權利要求1所述的方法,其特征在于計算所述方向還包括確定具有最小結果數值的子節點與終端節點對來自核心節點的分組具有相同的轉發方向,將終端節點確定為子節點或相應子節點的父節點。
6.按照權利要求1所述的方法,其特征在于當計算相應子節點和終端節點之間的方向的結果數值小于計算在核心節點處的預訂子節點之間的方向的結果數值時,向核心節點的子節點訂閱終端節點,并向預訂子節點發送消息,以向終端節點的子節點進行重新訂閱;以及預訂子節點響應該消息,從核心節點中撤銷,并向終端節點的子節點進行訂閱。
7.一種機器可讀的程序存儲裝置,切實地實現了機器可執行的指令程序,以執行一種針對基于CBT的層疊組播來配置基于方向的基于核心的樹(CBT)的方法,所述方法包括在要向CBT進行訂閱的任意終端節點處,請求和接收與向核心節點進行了預訂的子節點有關的信息;計算所述終端節點與每個子節點之間的方向,與訂閱請求消息一起,向所述核心節點發送與具有最小結果數值的子節點有關的信息;在所述核心節點處,將相應子節點和終端節點之間的計算得到的方向與向核心節點進行預訂的子節點之間的計算得到的方向進行比較,并依照比較結果,向子節點或相應子節點的父節點訂閱所述終端節點,以配置CBT。
8.按照權利要求7所述的程序存儲裝置,其特征在于所述方法還包括在核心節點和終端節點處,向和從父節點、子節點和兄弟節點周期性地發送和接收hello分組,以確認相應節點的狀態,并響應相應節點的確認狀態,重新配置已配置的CBT。
9.按照權利要求7所述的程序存儲裝置,其特征在于計算所述方向包括使用具有核心節點和與核心接近的兩個任意節點之間的各個距離作為三角形的各個邊的三角形的內角和外角和高。
10.按照權利要求9所述的程序存儲裝置,其特征在于計算所述方向包括使用以下公式direction=(á+)*y其中,三角形具有節點a1、C0和a2,C0是核心節點,a1和a2是任意節點,C0和a2形成了三角形的底邊,“á”是由三角形的邊C0a1和C0a2形成的內角;“”是由三角形的邊C0a1和邊a1a2形成的外角,“y”是三角形的高,以及“direction”是計算得到的方向。
11.按照權利要求7所述的程序存儲裝置,其特征在于計算方向還包括確定具有最小結果數值的子節點與終端節點對來自核心節點的分組具有相同的轉發方向,將終端節點確定為子節點或相應子節點的父節點。
12.按照權利要求7所述的程序存儲裝置,其特征在于當在核心節點處,計算相應子節點和終端節點之間的方向的結果數值小于計算預訂子節點之間的方向的結果數值時,向核心節點的子節點訂閱終端節點,并向預訂子節點發送消息,以向終端節點的子節點進行重新訂閱;以及預訂子節點響應該消息,從核心節點中撤銷,并向終端節點的子節點進行訂閱。
全文摘要
一種針對基于CBT的層疊組播配置基于方向的基于核心的樹(CBT)的方法,所述方法包括請求和接受想要向CBT訂閱與向核心節點進行了預訂的子節點有關的信息的任意終端節點;計算接收與所述子節點有關的信息的所述任意終端節點與所述核心節點和每個已接受子節點間的方向,與訂閱請求消息一起向所述核心節點發送與具有最小結果數值的所述核心節點的子節點有關的信息;接收從所述終端節點發送過來的訂閱請求信息和來自核心節點的子節點信息,并將相應子節點和終端節點的結果方向計算值與預訂子節點之間的結果方向計算值進行比較,并響應其,允許終端節點向子節點或相應子節點的父節點進行訂閱,以配置CBT;以及重新配置已配置的CBT。
文檔編號H04L12/56GK1534944SQ20041003148
公開日2004年10月6日 申請日期2004年3月29日 優先權日2003年3月28日
發明者梁基善 申請人:三星電子株式會社