專利名稱:具有端到端可靠性的群通信的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及以可縮放的吞吐量以及有保證的端到端可靠性通過應(yīng)用層組播進行內(nèi)容傳送方法和設(shè)備。
背景技術(shù):
在許多應(yīng)用(例如基于因特網(wǎng)的內(nèi)容分發(fā)網(wǎng)絡(luò))中,傳送信息的可取手段是組播,其同時向一組選擇的主機傳送信息。目前存在支持因特網(wǎng)協(xié)議(“IP”)網(wǎng)絡(luò)中的組播的一組標準。但是,覆蓋(或者應(yīng)用層)組播已成為支持網(wǎng)絡(luò)的IP組播的日益普及的備選方案。雖然IP組播在因特網(wǎng)上并不普遍可用,并且要求為每個通信群分配全球唯一的IP地址,不過在現(xiàn)有的基礎(chǔ)設(shè)施上能夠容易地實現(xiàn)組播覆蓋,并且不需要任何全球群標識符。
在高抽象級別上,覆蓋網(wǎng)絡(luò)(overlay network)可被描述成定向通信圖,其中節(jié)點是端系統(tǒng),任意兩個節(jié)點之間的棱邊(edge)代表這兩個節(jié)點之間的路徑。在端系統(tǒng)組播體系結(jié)構(gòu)中,通過在端系統(tǒng)之間建立點對點連接形成覆蓋,每個節(jié)點按照存儲轉(zhuǎn)發(fā)方式把數(shù)據(jù)轉(zhuǎn)發(fā)給下游的節(jié)點。在端系統(tǒng)級別形成組播分發(fā)樹。這樣的范例被稱為端系統(tǒng)組播,或者應(yīng)用層組播,或者簡單地稱為利用覆蓋的組播。雖然該路徑實際上可能經(jīng)過物理網(wǎng)絡(luò)中的幾個路由器,在這種抽象級別上,該路徑被看作覆蓋網(wǎng)絡(luò)中的直接鏈路。
節(jié)點可通過各種形狀或拓撲(例如樹形拓撲)被連接。端系統(tǒng)明確參與按照存儲轉(zhuǎn)發(fā)方式把數(shù)據(jù)轉(zhuǎn)發(fā)給其它節(jié)點。在從覆蓋網(wǎng)絡(luò)中的其父節(jié)點收到數(shù)據(jù)之后,節(jié)點將在其每個輸出鏈路上復(fù)制數(shù)據(jù),并把所述數(shù)據(jù)轉(zhuǎn)發(fā)給覆蓋網(wǎng)絡(luò)中它的每個下游節(jié)點。
隨著利用寬帶因特網(wǎng)接入的用戶或主機的激增,端系統(tǒng)組播已成為具有固有的部署障礙的支持IP組播的一種日益實際、可行并且吸引人的備選方案。最近已進行了一些研究,以檢查有效的覆蓋樹構(gòu)成和維護的協(xié)議開發(fā)。這些研究包括Y.H.Chu,S.G.Rao和H.Zhang,A Casefor End System Multicast,in Proceedings of ACM SIGMETRICS,June 2000,P.Francis,YoidExtending the Internet MulticastArchitecture,(April2000)http:∥www.icir.org/yoid/docs/yoidArch.ps.gz,D.Pendarakis,S.Shi,D.Verma和M.Waldvogel,ALMIAn Application Level MulticastInfrastructure,3rd Usenix Symposium on Internet Technologies andSystems(USITS),March 2001,B.Zhang,S.Jamin,L.Zhang,HostMulticastA Framework for Delivering Multicast To End Users,Proceedings of IEEE Infocom(2002),S.Banerjee,B.Bhattacharjee和C.Kommareddy,Scalable Application Layer Multicast,Proceedings of ACM Sigcomm 2002,J.Liebeherr,M.Nahas,Application-layer Multicast with Delaunay Triangulations,To appearin JSAC,special issue on multicast,2003,S.Shi和J.Turner,PlacingServers in Overlay Networks,Technical Report WUCS-02-05,Washington University,2002,S.Shi和J.S.Turner,Multicast Routingand Bandwidth Dimensioning in Overlay Networks,IEEEJSAC(2002),以及A.Riabov,Z.Liu,L.Zhang,Multicast overlay Treeswith Minimal Delay,Proceedings ofICDCS 2004。
通過利用點對點傳輸控制協(xié)議(“TCP”)連接,也可在覆蓋網(wǎng)絡(luò)中實現(xiàn)可靠的組播。在J.Jannotti,D.Gifford,K.Johnson,M.Kasshoek和J.O′Toole,OvercastReliable Multicasting with an OverlayNetwork,Proc.of 4(th)Symposium on Operating Systems Design andImplementation,Oct.2000中,在端系統(tǒng)之間使用超文本傳輸協(xié)議(“HTTP”)連接。在Y.Chawathe,S.McCanne和E.A.Brewer,RMXReliable Multicast for Heterogeneous Networks,Proceedings ofIEEE Infocom,2000中,直接使用TCP會話。這種方法的主要優(yōu)點在于部署的簡易性。另外,由于逐跳擁塞控制和數(shù)據(jù)恢復(fù)的緣故,證明能夠更好地處理接收器方面的異質(zhì)性。
但是,直接利用TCP會話的方法存在兩個問題。第一個問題涉及端到端可靠性。在組播覆蓋樹中的內(nèi)部節(jié)點發(fā)生故障的情況下,生根于故障節(jié)點的子樹中的節(jié)點需要重新附著到剩余的樹上,并且需要從TCP會話被停止的點重新建立TCP會話。這種重新附著到剩余的樹上,并且重新建立TCP會話的問題在文獻中被稱為彈性(resiliency)問題,在這方面,它包括故障的檢測和樹的重構(gòu)。
最新的彈性體系結(jié)構(gòu)已成為熱門話題。例如,在S.Banerjee,S.Lee,B.Bhattacharjee,A.Srinivasan,Resilient Multicast usingOverlays,Sigmetrics 2003中,利用隨機備份鏈路提出一種彈性組播體系結(jié)構(gòu)。即使重新附著的節(jié)點可被發(fā)現(xiàn)并且樹可被重新構(gòu)成,仍然不能保證TCP會話能夠從他們被停止的那一點重新開始。這種局限性歸因于覆蓋網(wǎng)絡(luò)中的中間節(jié)點的轉(zhuǎn)發(fā)緩沖器大小有限,只能夠把一定量的信息保持一段時間。于是,新建立的TCP會話需要的分組可能不再存在于轉(zhuǎn)發(fā)緩沖器中。
在利用覆蓋網(wǎng)絡(luò)的可靠組播中出現(xiàn)的第二個問題是可縮放性。缺少當在基于覆蓋的群通信中把TCP協(xié)議用于提供可靠的內(nèi)容傳送時,對TCP協(xié)議的性能的了解。雖然研究已提倡TCP連接的覆蓋網(wǎng)絡(luò)的使用,不過這些研究沒有解決在吞吐量、緩沖器要求和內(nèi)容傳送的等待時間方面的可縮放性顧慮。
相反,最近十年中,在支持IP的可靠組播傳送協(xié)議的設(shè)計和評估上花費了大量的努力,例如參見S.Floyd,V.Jacobson,C.Liu,S.McCanne和L.Zhang,A Reliable Multicast Framework forLigth-Weight Sessions and Application Level Framing,IEEE/ACMToN,December 1997,Vol.5,Number 6,pp.784-803,C.Bormann,J.Ott,H.-C.Gehrcke,T.Kerschat,N.Seifert,MTP-2TowardsAchieving the S.E.R.O.Properties for Multicast Transport,ICCCN1994和B.N.Levine和J.J.Garcia-Luna-Aceves,A Comparison ofReliable Multicast Protocols,ACM Multimedia Systems,August1998。對于這樣的支持IP的可靠組播方案,其他研究,例如E.M.Schooler,Why Multicast Protocols(Don′t)ScaleAn Analysis ofMultipoint Algorithms for Scalable Group Communication,Ph.D.Dissertation,CS Department,256-80 California Institute ofTechnology,2000和A.Chaintreau,F(xiàn).Baccelli和C.Diot,Impact ofTCP-like Congestion Control on the Throughput of Multicast Group,IEEE/ACM Transactions on Networking vol.10,p.500-512,August2002已舉例說明當群大小增大時,群吞吐量消失。從而這些方案存在可縮放性問題。
最近關(guān)于基于覆蓋網(wǎng)絡(luò)的可靠組播的可縮放性問題已報告了一些初步結(jié)果。在G.Urvoy-Keller和E.W.Biersack,A MulticastCongestion Control Model for Overlay Networks and itsPerformance,NGC,October 2002中,作者研究了可縮放性問題,同時考慮了用于點對點可靠傳輸?shù)木哂泄潭ù翱诖笮〉腡CP友好的擁塞控制機制。給出了表示端系統(tǒng)緩沖器的大小對群吞吐量的影響的模擬結(jié)果。在F.Baccelli,A.Chaintreau,Z.Liu,A.Riabov,S.Sahu,Scalability of Reliable Group Communication Using Overlays,IEEEInfocom 2004中,具有早期擁塞通知(“ECN”)的加法增長乘法遞減(“AIMD”)窗口擁塞機制被視為點對點可靠傳送協(xié)議。在端系統(tǒng)具有無限大小的緩沖器的假設(shè)下,表明在群吞吐量由與群規(guī)模無關(guān)的常數(shù)確定下界的意義上,這種基于覆蓋網(wǎng)絡(luò)的可靠組播具有可縮放的吞吐量。
于是,仍然需要一種簡單的端系統(tǒng)組播體系結(jié)構(gòu),其中利用TCP執(zhí)行端系統(tǒng)之間的傳輸,并且中間節(jié)點具有有限大小的轉(zhuǎn)發(fā)緩沖器和備份緩沖器。該組播體系結(jié)構(gòu)可提供端到端可靠性,并且容許多個同時的節(jié)點故障。另外,對于任何群規(guī)模和任何緩沖器大小來說,該可靠群通信的吞吐量始終嚴格為正值。
發(fā)明內(nèi)容
本發(fā)明的目的在于包含多個端用戶節(jié)點的可縮放、端到端可靠的組播覆蓋網(wǎng)絡(luò),所述組播覆蓋網(wǎng)絡(luò)利用本地(native)傳輸控制協(xié)議(“TCP”)并結(jié)合反壓機制來避免節(jié)點之間的數(shù)據(jù)分組丟失。每個中間節(jié)點包含大小有限的輸入和輸出緩沖器以及備份緩沖器。備份緩沖器被用于保存從輸入緩沖器復(fù)制到輸出緩沖器的分組的副本。當在節(jié)點故障之后重新建立TCP連接時,使用保存在這些備份緩沖器中的數(shù)據(jù)分組副本。TCP的反壓機制不僅允許可靠的點對點傳送,而且允許可縮放的端系統(tǒng)組播。
本發(fā)明的目的在于為由于節(jié)點故障的緣故脫離覆蓋網(wǎng)絡(luò)的孤兒端系統(tǒng)節(jié)點的重新連接創(chuàng)造條件的方法和系統(tǒng)??商幚矶鄠€同時的節(jié)點故障。在孤兒節(jié)點和與這些孤兒節(jié)點相關(guān)的任何子樹的重新連接之后,在整個網(wǎng)絡(luò)內(nèi)傳送新的樹拓撲,向新近重新連接的端系統(tǒng)節(jié)點提供保證從源節(jié)點到覆蓋網(wǎng)絡(luò)樹中的每個端系統(tǒng)節(jié)點的連續(xù)、不間斷的數(shù)據(jù)分組流的傳送所必需的數(shù)據(jù)分組的副本。這些數(shù)據(jù)分組副本是保存在包含于覆蓋網(wǎng)絡(luò)中的每個節(jié)點中的備份緩沖器中的數(shù)據(jù)分組副本。按照覆蓋網(wǎng)絡(luò)的所需配置重新連接孤兒節(jié)點,并且所述孤兒節(jié)點能夠遵循被安排成優(yōu)化網(wǎng)絡(luò)的特定質(zhì)量(例如吞吐量),或者使不良特性(例如通信延遲)最小化的貪心試探法。本發(fā)明還向端系統(tǒng)節(jié)點提供脫離覆蓋網(wǎng)絡(luò)樹和加入覆蓋網(wǎng)絡(luò)樹,以保證組播覆蓋樹內(nèi)群通信(group communication)的可靠性和可縮放性的方法。
圖1是根據(jù)本發(fā)明的組播覆蓋網(wǎng)絡(luò)的示意圖;圖2是圖1的覆蓋網(wǎng)絡(luò)的另一示意圖;圖3是供本發(fā)明的覆蓋網(wǎng)絡(luò)之用的端系統(tǒng)節(jié)點的示意圖;圖4是根據(jù)本發(fā)明的具有輸入和輸出阻塞的高度為2的二叉樹的示意圖;圖5是圖4的單個節(jié)點的示意圖;圖6是表示具有重傳和重新排序約束的一系列TCP連接的隨機圖;圖7是作為在TCP-SACK情況下的群規(guī)模,指數(shù)往來通信量和不同的輸出緩沖器大小的函數(shù)的群吞吐量;圖8是往來通信量的幾個法則的吞吐量的圖;圖9是相對于分級丟失概率的群吞吐量的10是樹深度的演化的一個例子的圖;圖11是非葉節(jié)點的平均度的演化的一個例子的圖。
具體實施例方式
可靠的群通信要求按照有效的方式從單一源向多個端用戶同時傳送相同的內(nèi)容。通過利用組播樹形結(jié)構(gòu),使內(nèi)容的廣播效率高,在組播樹形結(jié)構(gòu)中,樹的每個節(jié)點復(fù)制它從其母節(jié)點收到的分組,并將復(fù)制的分組之一發(fā)送給其每個子節(jié)點。與樹的節(jié)點是因特網(wǎng)路由器并且需要專門的路由和控制機制的天生可靠的因特網(wǎng)協(xié)議(“IP”)組播相反,組播覆蓋使用其中節(jié)點是實際的端系統(tǒng)或者端用戶并且只要求端系統(tǒng)之間目前可用的點對點連接的樹。
覆蓋網(wǎng)絡(luò)樹中的棱邊代表它所連接的兩個節(jié)點之間的路徑。雖然該路徑可能經(jīng)過物理網(wǎng)絡(luò)中的幾個路由器,不過在組播覆蓋網(wǎng)絡(luò)中使用的抽象級別把該路徑看作覆蓋網(wǎng)絡(luò)樹中的端系統(tǒng)節(jié)點之間的直接鏈路。端系統(tǒng)節(jié)點明確參與按照存儲轉(zhuǎn)發(fā)的方式把數(shù)據(jù)分組轉(zhuǎn)發(fā)給其它端系統(tǒng)節(jié)點。
利用適當?shù)耐ㄐ艆f(xié)議實現(xiàn)節(jié)點(例如母節(jié)點和子節(jié)點)之間的點對點通信??梢允褂脼楦采w網(wǎng)絡(luò)樹內(nèi)的節(jié)點之間的數(shù)據(jù)分組的可靠分發(fā)或傳輸以及各種節(jié)點之間的協(xié)議和控制信號的傳遞創(chuàng)建條件的任何適當通信協(xié)議。最好,所述通信協(xié)議是TCP。在本實施例中,TCP被用作給定組播覆蓋網(wǎng)絡(luò)中的每對節(jié)點之間的點對點或者跳到跳傳送協(xié)議。在一個實施例中,如同在例如TCP-RENO或者TCP-NewRENO中那樣,實現(xiàn)快速重傳快速恢復(fù)。在M.Allman和V.Paxson.RFC2581-TCPCongestionControl(http:∥www.ietf.org/rfc/rfc2581.tex(1999))中可找到快速重傳快速恢復(fù)的一個例子,該文獻在此整體引為參考。在一個備選實施例中,還使用有選擇的確認(“SACK”)。另外,盡管不要求,不過明確擁塞通知(“ECN”)可被用作節(jié)點之中的通信協(xié)議中的中間步驟。
如圖1-3中所示,在組播覆蓋網(wǎng)絡(luò)10中,源母節(jié)點12向一個或多個子節(jié)點14發(fā)送數(shù)據(jù)。在從源母節(jié)點12接收數(shù)據(jù)之后,每個子節(jié)點14復(fù)制數(shù)據(jù),并且充當后來的母節(jié)點,在其每個輸出鏈路16上把數(shù)據(jù)的副本發(fā)送給覆蓋樹10中它的每個后續(xù)子節(jié)點18。在該覆蓋網(wǎng)絡(luò)10中,除了只接收數(shù)據(jù)而不重傳數(shù)據(jù)的葉節(jié)點之外,保存和轉(zhuǎn)發(fā)分組的每個節(jié)點都供應(yīng)用于分組轉(zhuǎn)發(fā)目的的緩沖器。如圖3中所示,所有節(jié)點16,源母節(jié)點14除外,但是包括葉節(jié)點18,都包含一個與上游TCP的接收器窗口對應(yīng)的輸入緩沖器20,并且除了葉節(jié)點18之外,每個節(jié)點16都包含幾個輸出或轉(zhuǎn)發(fā)緩沖器22。最好,每個節(jié)點16包含用于每個下游TCP連接或者后續(xù)子節(jié)點18的一個輸出緩沖器。
另外,給定的一組節(jié)點中的每個節(jié)點包含與輸入緩沖器20和每個輸出緩沖器22通信的至少一個備份緩沖器24。在一個實施例中,包含備份緩沖器的該組節(jié)點包括在源節(jié)點之后的既包含輸入緩沖器又包含輸出緩沖器的那些節(jié)點。于是,葉節(jié)點,即只接收而不重傳數(shù)據(jù)分組的那些節(jié)點不會包含備份緩沖器。這里使用的節(jié)點或端系統(tǒng)節(jié)點指的是給定的組播覆蓋網(wǎng)絡(luò)內(nèi)的端系統(tǒng)或端用戶,包括葉節(jié)點,但是不包括源母節(jié)點。每個備份緩沖器24保存被復(fù)制并從輸入緩沖器20(接收器窗口)傳出到輸出緩沖器22中的數(shù)據(jù)分組的副本。這些備份緩沖器24提供覆蓋網(wǎng)絡(luò)10中所需數(shù)量的冗余,并且當在一個或多個端系統(tǒng)節(jié)點發(fā)生故障之后,在覆蓋網(wǎng)絡(luò)中的各個節(jié)點之中重新建立通信連接時被使用。
根據(jù)通過每個節(jié)點轉(zhuǎn)發(fā)的數(shù)據(jù)的數(shù)量選擇每個節(jié)點的輸入緩沖器20、輸出緩沖器22和備份緩沖器24的大小。輸入緩沖器20、輸出緩沖器22和備份緩沖器24通常具有有限的大小或容量。對于輸入緩沖器20、輸出緩沖器22和備份緩沖器24來說,這些緩沖器大小可被分別表示成BIN、BOUT、BBACK。在一個實施例中,備份緩沖器的大小由BBACK≥m(BOUTmax+BINmax)+BOUTmax]]>給出,其中BOUTmax是最大輸出緩沖器大小,BINmax是最大輸入緩沖器大小,m是可被保存在備份緩沖器中的數(shù)據(jù)分組副本容納的同時節(jié)點故障的數(shù)目。
一般來說,組播覆蓋樹10的拓撲影響群的性能,即,通過覆蓋樹的數(shù)據(jù)分組的傳輸。例如,如果樹的深度,即樹內(nèi)排列在串行或連續(xù)層級中的節(jié)點的數(shù)目過大,那么在樹中深處的節(jié)點以較長的延遲接收分組。另外,如果樹的出度或者擴展過大,那么下游連接競爭共用鏈路的帶寬,尤其是在鏈路的“最后一哩”中,導(dǎo)致?lián)砣屯ㄐ叛舆t。對于本發(fā)明來說,樹拓撲被看作給定的,并且給定樹的出度或者扇出(fan-out)由常數(shù)D限制。
從管理的觀點來看,至少一部分的組播覆蓋樹拓撲被保存在一個或多個端系統(tǒng)節(jié)點中。于是,其中保存該拓撲信息的每個節(jié)點至少具有整個組播覆蓋樹的部分視圖。另一方面,整個組播覆蓋樹拓撲被保存在每個節(jié)點中。在這里舉例說明的一個實施例中,使用一種相對簡單的結(jié)構(gòu),該結(jié)構(gòu)允許每個節(jié)點知道其先輩節(jié)點及其整個子樹。提供該結(jié)構(gòu)只是出于舉例說明的目的,本發(fā)明并不限于這種結(jié)構(gòu)。根據(jù)本發(fā)明還可根據(jù)備選的體系結(jié)構(gòu)實現(xiàn)。
由于根據(jù)本發(fā)明可以使用各種組播覆蓋樹拓撲,因此使用類屬符號來表示給定樹拓撲內(nèi)的各個節(jié)點。參見圖2,每個節(jié)點被分配指明端系統(tǒng)在組播樹中的位置的一個編號(k,l)對26。第一索引k28是到樹的源節(jié)點12或根的距離,也被稱為層級。第二索引l30允許相同層級內(nèi)多個端系統(tǒng)的編號。對于完整的二叉樹來說,在相同層級上或者在到源節(jié)點的相同距離k內(nèi)的所有端系統(tǒng)用數(shù)字1=0,...,2k-1標記。如圖所示,完整的二叉樹具有為2的最高層級,k=2,并且1=0,1,2,3。
另外,節(jié)點(k,l)的母節(jié)點用(k-1,m(k,l))表示。節(jié)點(k,l)的子節(jié)點用(k+1,l′)表示,同時l∈d(k,l)。對于完整的二叉樹來說,m(k,l)=l/2并且d(k,l)為{2l,2l+1}。
本發(fā)明的目的在于在吞吐量可縮放并且端到端可靠性有保證的情況下,提供組播覆蓋樹中的節(jié)點之間的數(shù)據(jù)分組的可靠傳送和轉(zhuǎn)發(fā)。在一個實施例中,根據(jù)本發(fā)明的方法包括利用通信協(xié)議和反壓(backpressure)機制防止組播覆蓋樹中節(jié)點之間的數(shù)據(jù)分組丟失。這里使用的反壓機制(尤其是TCP的反壓機制)指的是當包含在布置在樹中更深處的端系統(tǒng)節(jié)點中的輸入或輸出緩沖器達到容量時,通過網(wǎng)絡(luò)把阻止(impede)信號回送給例如發(fā)送者或者母節(jié)點,避免覆蓋網(wǎng)絡(luò)樹內(nèi)的幀或數(shù)據(jù)分組丟失的機制或算法。
在組播覆蓋中可能存在三種不同類型的分組丟失。第一種是在端系統(tǒng)節(jié)點(發(fā)送者和接收者或者母節(jié)點和子節(jié)點)之間的路徑中發(fā)生的丟失。在一個實施例中,本發(fā)明通過使用TCP在端系統(tǒng)節(jié)點之間傳送數(shù)據(jù)分組,避免或恢復(fù)這些第一種丟失。特別地,本發(fā)明依賴于TCP內(nèi)的確認和重傳機制。
第二種是由位于端系統(tǒng)節(jié)點中的輸入緩沖器中的溢出引起的丟失。根據(jù)本發(fā)明,第二種丟失由用于通過組播樹轉(zhuǎn)發(fā)數(shù)據(jù)分組的通信協(xié)議的反壓機制解決。在一個實施例中,協(xié)議是TCP,反壓機制包括用于單一分組數(shù)據(jù)丟失的RENO,用于多個丟失或者錯誤的NewRENO以及SACK。另一方面,也可使用ECN。在反壓機制的一個實施例中,位于給定接收者節(jié)點的輸入緩沖器中的可用空間被傳送給樹中的其它節(jié)點,例如傳送給該給定節(jié)點的發(fā)送者或者母節(jié)點。在一個實施例中,這是通過TCP的確認協(xié)議(“ACK”)來傳遞的。由TCP連接的給定節(jié)點發(fā)送的確認分組包含在其輸入緩沖器或者接收器窗口中目前可用的空間。響應(yīng)接收者節(jié)點發(fā)送的空間信息,發(fā)送者節(jié)點將不發(fā)送或者轉(zhuǎn)發(fā)新的數(shù)據(jù)分組,除非該新分組,以及任何其它傳輸中的分組在輸入緩沖器中具有足夠的空間。除了把輸入緩沖器中的可用空間通知發(fā)送者節(jié)點之外,當輸入緩沖器中的可用空間顯著減少時,給定的接收者節(jié)點利用發(fā)送給源節(jié)點的特殊數(shù)據(jù)分組,向覆蓋樹中的其它節(jié)點發(fā)送通知。在一個實施例中,當緩沖器空間與最大段長度(MSS)相差兩倍或者更多時,發(fā)送通知。
第三種是由位于端系統(tǒng)節(jié)點中的輸出緩沖器中的溢出引起的丟失。在復(fù)制數(shù)據(jù)分組并把副本發(fā)送給輸出緩沖器的過程中會發(fā)生這些第三種丟失。在一個實施例中,反壓機制還被用于防止這種丟失。根據(jù)本發(fā)明,只有在數(shù)據(jù)分組被復(fù)制到給定端系統(tǒng)節(jié)點的所有輸出緩沖器之后,才從該端系統(tǒng)節(jié)點的輸入緩沖器中除去該數(shù)據(jù)分組。除非在輸出緩沖器中存在容納該數(shù)據(jù)分組的足夠空間,否則復(fù)制處理被阻止。一旦在該輸出緩沖器中存在用于一個數(shù)據(jù)分組的足夠空間,就恢復(fù)復(fù)制和傳送。從而,這種“阻止”反壓機制消除了在端系統(tǒng)節(jié)點的輸出緩沖器的溢出,所述溢出可由向輸出緩沖器發(fā)送超出該輸出緩沖器處理能力的更多數(shù)據(jù)分組引起。于是,根據(jù)本發(fā)明使用的體系結(jié)構(gòu)避免了第三種的數(shù)據(jù)分組丟失。即使對于大小有限的緩沖器,根據(jù)本發(fā)明使用的反壓機制也能夠避免在覆蓋節(jié)點的數(shù)據(jù)分組丟失。于是,本發(fā)明促進大小有限的輸入和輸出緩沖器的使用。
本發(fā)明還解決了由分組丟失引起的重新排序延遲的問題,重新排序延遲能夠顯著影響吞吐量,從而影響群通信的可縮放性。當數(shù)據(jù)分組沿著覆蓋網(wǎng)絡(luò)樹中的路徑丟失時,通信協(xié)議(例如TCP)最終重傳丟失的數(shù)據(jù)分組。但是,由于這些重傳輸,數(shù)據(jù)分組的順序或排序會被攪亂。例如,具有較大序號的一些數(shù)據(jù)分組將在復(fù)制的重傳數(shù)據(jù)分組到達之前到達給定的節(jié)點,所述較大序號指示這些數(shù)據(jù)分組稍后被轉(zhuǎn)發(fā)并且應(yīng)跟在重傳的數(shù)據(jù)分組之后。給定節(jié)點順序復(fù)制并把數(shù)據(jù)分組從輸入緩沖器轉(zhuǎn)發(fā)給輸出緩沖器。于是,較早到達的具有較大序號的數(shù)據(jù)分組將不被復(fù)制到轉(zhuǎn)發(fā)緩沖器,直到在復(fù)制的重傳數(shù)據(jù)分組到達并被轉(zhuǎn)發(fā)為止。
對于給定的節(jié)點,分組處理中的延遲對節(jié)點的吞吐量的影響可以忽略。但是,處理延遲在覆蓋網(wǎng)絡(luò)中的數(shù)據(jù)分組的整個流動中產(chǎn)生擾動。這些擾動表現(xiàn)為到達后續(xù)的下游節(jié)點的數(shù)據(jù)分組的突發(fā),并且會在節(jié)點之間的下游路徑中造成明顯的性能退化。源于一個節(jié)點的擾動還能夠在后續(xù)的子樹中產(chǎn)生波紋效果。另外,作為反壓機制的結(jié)果,這些性能退化會影響源節(jié)點發(fā)送速率,從而影響群通信吞吐量。
端系統(tǒng)組播網(wǎng)絡(luò)中的彈性涉及覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點故障和節(jié)點撤離的處理。這些故障和撤離通常在沒有預(yù)先通知或報警的情況下發(fā)生。于是,在一個實施例中,本發(fā)明提供在至少一個節(jié)點中的故障的檢測之后,組播覆蓋網(wǎng)絡(luò)中的節(jié)點之間的可靠數(shù)據(jù)分組傳送。根據(jù)本發(fā)明,通過利用通信協(xié)議和反壓機制,可結(jié)合或者獨立于分組丟失的防止提供可靠的數(shù)據(jù)分組傳送。本發(fā)明的目的還在于一種在局域網(wǎng)和廣域網(wǎng)中實現(xiàn)這些算法的計算機可執(zhí)行代碼,以及包含這些代碼的計算機可讀介質(zhì)。
在一個實施例中,本發(fā)明檢測組播覆蓋樹中的至少一個端系統(tǒng)節(jié)點故障。最好,本發(fā)明提供多個節(jié)點故障的同時檢測,和檢測到多個節(jié)點故障之后的可靠數(shù)據(jù)傳送。由于諸如TCP之類的通信協(xié)議并不總是提供檢測未應(yīng)答節(jié)點的可靠并且高效的機制,因此需要其它方法來檢測故障。根據(jù)本發(fā)明檢測節(jié)點故障的適當方法包括心跳探查和?;钚盘?。對于心跳探查來說,每隔一定時間通過用戶數(shù)據(jù)報協(xié)議(“UDP”)把心跳消息發(fā)送給給定節(jié)點的所有相鄰節(jié)點。遺失來自相鄰節(jié)點的心跳用信號表明節(jié)點故障或者節(jié)點撤離??砂凑疹愃频姆绞浇⒈;钕⒔影l(fā)系統(tǒng)。
當檢測到節(jié)點故障時,組播覆蓋樹被重新配置,以致故障節(jié)點的成為孤兒的節(jié)點和生根于這些孤兒節(jié)點的子樹被重新附到或者重新連接到初始的組播樹上,同時保持從源節(jié)點到每個剩余的端系統(tǒng)節(jié)點的完整數(shù)據(jù)分組序列的傳送。故障端系統(tǒng)節(jié)點的孤兒節(jié)點包括故障節(jié)點下游的源于故障端系統(tǒng)節(jié)點或者從故障端系統(tǒng)節(jié)點接收數(shù)據(jù)分組的所有節(jié)點。孤兒節(jié)點包括為故障節(jié)點的子節(jié)點的孤兒子節(jié)點和包含在生根于這些孤兒子節(jié)點的子樹中的端系統(tǒng)節(jié)點。在一個實施例中,在每個孤兒節(jié)點的重新連接之后,建立新的TCP節(jié)點連接。用于重新附著孤兒節(jié)點的新節(jié)點可被看作故障節(jié)點的孤兒節(jié)點的替代母節(jié)點。各種方法可被用于重新配置組播樹。下面討論供本發(fā)明使用的適當方法。
在本發(fā)明的方法的另一實施例中,檢測多個同時的端系統(tǒng)節(jié)點故障,所有成為孤兒的端系統(tǒng)節(jié)點被同時重新連接到組播覆蓋樹。
通過把關(guān)于新配置的子樹的信息向上回送到根或源母節(jié)點,并把先輩樹信息向下分發(fā)到新近重新連接的子樹,完成這種重新配置。在一個實施例中,有關(guān)新配置的子樹的拓撲信息的分發(fā)由故障節(jié)點的母節(jié)點和子節(jié)點發(fā)起,先輩樹信息的分發(fā)由“繼母”節(jié)點發(fā)起。
除了樹形結(jié)構(gòu)的彈性之外,在故障或撤離節(jié)點的識別及故障或撤離節(jié)點的孤兒節(jié)點和子樹的重新連接之后實現(xiàn)端到端可靠性還包括保證數(shù)據(jù)完整性。保證數(shù)據(jù)完整性包括向新的替代母節(jié)點(或者說“繼母”節(jié)點)提供足夠陳舊的數(shù)據(jù),以致重新連接的子節(jié)點和這些子節(jié)點的子孫從源母節(jié)點接收完整的數(shù)據(jù)分組序列。在本發(fā)明中,位于每個端系統(tǒng)節(jié)點中的備份緩沖器被用于在成為孤兒的節(jié)點被重新連接之后,保存通過子樹的數(shù)據(jù)分組的副本,保證數(shù)據(jù)完整性。這里使用的完整的數(shù)據(jù)分組序列包含向端系統(tǒng)節(jié)點提供從源節(jié)點提供的服務(wù)或信息的足夠完整和連續(xù)的數(shù)據(jù)流所必需的所有數(shù)據(jù)分組,例如完整的視頻會議,完整的電影或者完整的音頻廣播。當建立新的連接時,正在創(chuàng)建新連接的發(fā)送者節(jié)點的備份緩沖器中的數(shù)據(jù)分組被復(fù)制到與所述新連接對應(yīng)的發(fā)送者節(jié)點中的輸出緩沖器中。由于備份緩沖器包含已從輸入緩沖器復(fù)制到輸出緩沖器的較陳舊數(shù)據(jù)分組的副本,發(fā)送者節(jié)點從其輸出緩沖器中較陳舊并且序號比發(fā)送者節(jié)點的輸入緩沖器中目前的序號小的數(shù)據(jù)分組開始。
選擇備份緩沖器的大小,以保持足夠的數(shù)據(jù),從而提供被傳送給輸出緩沖器的足量的較陳舊數(shù)據(jù)。在下面更詳細說明的一個實施例中,備份緩沖器的大小被選為與輸入緩沖器和輸出緩沖器的大小相比足夠大,以致即使當存在多個同時的節(jié)點故障或撤離時,也能夠提供端到端可靠性。例如,如果BOUTmax和BINmax分別是給定節(jié)點的輸出緩沖器和輸入緩沖器的最大大小,那么備份緩沖器的大小可以是BBACK≥m(BOUTmax+BINmin)+BOUTmax---(1)]]>以便容許m個同時的節(jié)點故障和撤離。根據(jù)本發(fā)明的本實施例,每個故障節(jié)點或撤離節(jié)點的子節(jié)點可被重新附著到生根于故障節(jié)點或撤離節(jié)點的第m代先輩的子樹中的任意節(jié)點。
根據(jù)本發(fā)明用于保證端到端可靠性的備份緩沖器體系結(jié)構(gòu)非常簡單。特別地,可在應(yīng)用層實現(xiàn)該體系結(jié)構(gòu),不需要搜索處理具有供將被重新附著的每個孤兒節(jié)點使用的正確號碼序列的數(shù)據(jù)分組的端系統(tǒng)節(jié)點。
本發(fā)明還解決了節(jié)點離開或加入組播覆蓋樹的程序。雖然按照慣例,UDP一直被用于實時應(yīng)用,不過由于包括公平帶寬共用和按次序的數(shù)據(jù)分組傳送在內(nèi)的優(yōu)點,TCP是UDP的優(yōu)選替代物,尤其是對于多媒體應(yīng)用來說更是如此。另外,TCP能夠通過客戶機加入的只允許HTTP通信量的防火墻。由于本發(fā)明的基于端系統(tǒng)的可靠組播體系結(jié)構(gòu)可被用于廣播實況事件,因此使用令節(jié)點或端用戶主動離開或加入進行中的實況廣播的程序。
在一個實施例中,節(jié)點離開組播覆蓋樹或者被從組播覆蓋樹清除的程序包括把撤離或清除通知待清除節(jié)點的母節(jié)點和子節(jié)點,隨后斷開對應(yīng)的TCP會話。隨后關(guān)于節(jié)點故障重新配置覆蓋網(wǎng)絡(luò)樹。當節(jié)點被增加到或者加入覆蓋網(wǎng)絡(luò)中的該組節(jié)點中時,該節(jié)點聯(lián)系源母節(jié)點,所述源母節(jié)點向新節(jié)點提供關(guān)于其母節(jié)點的必要信息。新節(jié)點隨后建立與指定的母節(jié)點的TCP連接。除了為了新樹中的端到端可靠性之外,源母節(jié)點還把關(guān)于緩沖器大小的約束通知新節(jié)點,以致新節(jié)點中的輸入緩沖器和輸出緩沖器大小分別不會超過BINmax和BOUTmax,并且備份緩沖器大小滿足不等式(1)。離開和加入程序由在節(jié)點故障情況下使用的拓撲信息更新過程來完成。
避免數(shù)據(jù)分組序列中的中斷可能不是無足輕重的,尤其是對于遠離根節(jié)點的節(jié)點來說更是如此,因為發(fā)生故障時,這些節(jié)點正在接收的分組可能已被所有其它群成員(除了故障節(jié)點之外)處理和丟棄。于是,備份緩沖器被用于產(chǎn)生流內(nèi)容(即否則在節(jié)點故障期間會被丟失的數(shù)據(jù)分組)的副本。如圖3中所示,當數(shù)據(jù)分組從輸入緩沖器20轉(zhuǎn)移到輸出緩沖器22時,離開輸入緩沖器的每個數(shù)據(jù)分組的副本被保存(40)在備份緩沖器24中。備份緩沖器隨后可被用于通過把副本傳送給(42)輸出緩沖器22以便轉(zhuǎn)發(fā)給子節(jié)點18,恢復(fù)在節(jié)點故障期間丟失的數(shù)據(jù)分組。
根據(jù)本發(fā)明的容許m個同時故障的端到端可靠群通信可被定義為同時從組播樹中清除m個節(jié)點,同時重新連接所有成為孤兒的節(jié)點,繼續(xù)傳輸,并向所有剩余的節(jié)點提供來自源母節(jié)點的數(shù)據(jù)分組的完整傳輸。換句話說,m個節(jié)點的故障不會導(dǎo)致在剩余節(jié)點接收的流的順序或內(nèi)容的任何變化。但是,故障恢復(fù)會導(dǎo)致為恢復(fù)連通性而需要的延遲。
在覆蓋網(wǎng)絡(luò)正在恢復(fù)m個故障的時間內(nèi),不能保證正確地恢復(fù)任何另外的故障。但是如果發(fā)生1個故障,1≤l≤m,那么即使所述故障在系統(tǒng)已被完全恢復(fù)之前發(fā)生,系統(tǒng)也能夠恢復(fù)另外的(m-l)個故障。在這種情況下,恢復(fù)期間發(fā)生的新故障會增大總的恢復(fù)時間。例如,如果BOUTmax和BINmax分別是系統(tǒng)中的輸出緩沖器和輸入緩沖器的最大大小,那么r階的備份緩沖器的大小為(r·(BOUTmax+BINmax)+BOUTmax)。其中r階被定義為可由本發(fā)明的系統(tǒng)和方法處理的同時故障的數(shù)目。
在一個實施例中,下述算法被用于恢復(fù)故障。節(jié)點(k′,l′)是節(jié)點(k,l)的幸存先輩,如果節(jié)點(k,l)的母節(jié)點未能幸免于該故障,并且(k′,l′)是從(k,l)到源母節(jié)點的路徑上的第一個幸存節(jié)點的話。每個斷開的端系統(tǒng)(k,l)被重新連接到屬于幸存先輩(k′,l′)的子樹的一個節(jié)點上。在連接被恢復(fù)之后,節(jié)點(k′,l′)重新傳送包含在其備份緩沖器中的所有分組。隨后它通過從輸入緩沖器讀取并寫入輸出緩沖器,繼續(xù)傳輸。從(k′,l′)到(k,l)的新路徑上的中間節(jié)點,以及(k,l)的整個子樹中的所有節(jié)點都能夠忽略它們已收到的分組,只是把所述已收到的分組轉(zhuǎn)發(fā)給下游節(jié)點。
于是,可用下面的定理表述根據(jù)本發(fā)明的端到端可靠性。具有大小為(m·(BOUTmax+BINmax)+BOUTmax)的備份緩沖器的組播覆蓋系統(tǒng)是端到端可靠的,容許m個故障。
為了證明該斷言,考慮節(jié)點鏈(k1,l1)→(k2,l2)→(k3,l3)。W(ki+1,li+1)是TCP連接(ki+1,li+1)上的接收器窗口的大小,i=1,2。如果檢測到節(jié)點(k2,l2)的故障,那么(k3,l3)與節(jié)點(k1,l1)連接,并請求它重新發(fā)送從分組編號t+1開始的分組,t是節(jié)點(k3,l3)接收的最后分組的編號。保存在位于節(jié)點(k2,l2)的輸入緩沖器和輸出緩沖器中的分組的數(shù)目加上往來于節(jié)點(k2,l2)的傳輸中分組的數(shù)目最多為(BOUTmax+BINmax)。該約束由TCP的接收器窗口大小的選擇所保證。最多W(k2,l2)個分組將‘飛向’節(jié)點(k2,l2),W(K2,l2)不會超過節(jié)點(k2,l2)的輸入緩沖器中的自由存儲區(qū)的數(shù)量。類似地,最多W(k3,l3)個分組將‘飛向’節(jié)點(k3,l3),但是它們不會被從節(jié)點(k2,l2)的輸出緩沖器中清除,直到(k3,l3)確認它已收到分組為止。于是,在節(jié)點(k1,l1)的最小分組編號與在節(jié)點(k3,l3)的最大分組編號之間的差值不會超過在節(jié)點(k2,l2)的緩沖器大小的總和。在重傳期間,位于節(jié)點(k1,l1)的應(yīng)用不能訪問輸出套接字緩沖器,另外可能需要重新傳送該緩沖器的內(nèi)容。從而,需要重新傳送的分組的數(shù)目由BOUTmax+(BOUTmax+BINmax)限制,BOUTmax+(BOUTmax+BINmax)是1階備份緩沖器的大小。
如果(k2,l2)具有一個以上的子節(jié)點,那么每個子節(jié)點最多要求重新傳送BOUTmax+(BOUTmax+BINmax)個分組,相同的1階備份緩沖器將提供所有必需的分組。
如果發(fā)生一個以上的故障,并且在從斷開的節(jié)點(k,l)到其幸存的先輩節(jié)點(k′,l′)的路徑上存在一個以上的故障節(jié)點,那么幸存的先輩節(jié)點可能需要重新傳送位于該路徑上的所有故障節(jié)點的輸入緩沖器和輸出緩沖器的內(nèi)容,加上位于(k′,l′)的輸出緩沖器的內(nèi)容。由于故障節(jié)點的數(shù)目由m限制,因此該定理被證明。
事實上,故障容許的定義使用了容錯文獻中的標準概念;于是,上面的證明實際上證實了更有力的結(jié)果,這里以推論的形式陳述所述結(jié)果備份緩沖器大小為(m·(BOUTmax+BINmax)+BOUTmax)的組播覆蓋系統(tǒng)是端到端可靠的,容許樹的某個鏈上的m個同時并且連續(xù)的故障。
根據(jù)本發(fā)明的組播覆蓋樹允許節(jié)點在傳輸期間離開和加入群中。離開的節(jié)點可由上面說明的故障恢復(fù)方法處理。在關(guān)于加入覆蓋網(wǎng)絡(luò)的節(jié)點的一個實施例中,加入傳輸?shù)墓?jié)點可能想要連接遠方的葉節(jié)點,所述葉節(jié)點正在處理最小序號的分組,以致新加入的節(jié)點能夠捕獲最多的傳送數(shù)據(jù)。但是,如果延遲是一個重要因素,那么加入節(jié)點可連接近可能接近根節(jié)點的節(jié)點。實際上,特別是由于最后一哩效應(yīng)的緣故,每個節(jié)點的下行鏈路的最大數(shù)目有限,并且不是組播群中的每個節(jié)點都能夠接受新連接。于是,從還沒有用完其容量的“有效”節(jié)點中選擇新連接的上行鏈路節(jié)點。
在故障之后恢復(fù)連通性的程序與加入程序類似,但是對于節(jié)點故障來說,替代母節(jié)點的選擇進一步局限于故障節(jié)點的幸存先輩的子樹。在通信延遲將被最小化的應(yīng)用中,目標是在度約束(degree constraint)的條件下,使樹盡可能地保持均衡。于是,在一個實施例中,使用貪心試探法來恢復(fù)連通性。在一個實施例中,通過使最長的子樹重新連接到盡可能地接近根節(jié)點或源節(jié)點的節(jié)點,在度約束的條件下,貪心試探法使總的樹深度降至最小。下面關(guān)于一個節(jié)點故障說明了一種例如稱為GREEDY RECONNECT算法的算法,但是多個同時節(jié)點故障的情況可被處理成一系列的單一故障。
首先,假定節(jié)點(k,l)發(fā)生故障。假定S是生根于(k,l)的子節(jié)點的一組成為孤兒的子樹。假定A是(k-1,m(k,l))的子樹之中,而不是(k,l)的子樹之中的一組有效節(jié)點。隨后選擇具有最大深度的子樹的節(jié)點(k+1,l′)∈S。隨后選擇最接近源節(jié)點的節(jié)點(p,q)∈A,并連接(k+1,l′)到(p,q)。隨后更新S←S\{(k-1,l′)},并把來自(k+1,l′)的子樹的有效節(jié)點增加到A中。到S不為空為止,即到所有的子樹都已被重新連接為止,完成該處理。
根據(jù)目標函數(shù),可以考慮其它方法。例如,在另一實施例中,如果要使吞吐量最大化,并且最后一哩鏈路具有有限的帶寬,那么較低的扇出提供較高的吞吐量,最佳的拓撲是一個鏈。在另一實施例中,如果要使延遲最小化,那么最佳構(gòu)形是所有節(jié)點與源節(jié)點直接連接的星形。另外,如果沒有設(shè)定具體的目標,那么使用上行鏈路的隨機選擇(仍然以扇出約束為條件)。
在群的吞吐量由正常數(shù)確定下限而與群的規(guī)模無關(guān)的意義上,根據(jù)本發(fā)明的可靠組播覆蓋體系結(jié)構(gòu)是可縮放的。即使在具有反壓機制的無限大小的組播樹中,群吞吐量也是正值??紤]到在G.Urvoy-Keller和E.W.Biersack,A Multicast Congestion Control Model for OverlayNetworks and its Performance,in NGC,October 2002中報告的初步模擬結(jié)果,以及在關(guān)于支持IP的可靠組播的文獻中報道的具有不可縮放性結(jié)果的對照物,這是一個意外的結(jié)果。
在下面描述的一組隨機假設(shè)下進行根據(jù)本發(fā)明的組播覆蓋體系結(jié)構(gòu)的可縮放性的證明,并且所述證明覆蓋反壓(ECN標記)和節(jié)點故障重連。借助幾個相關(guān)的形式說明在所述證明中使用的模型。第一種形式是充分代表所有所需的機制,并且有助于速率可縮放性的數(shù)學(xué)證明的隨機圖。第二種形式是Petri網(wǎng),它可被看作上面的隨機圖的某一類別的折疊(folding),并且給出網(wǎng)絡(luò)拓撲和控制的更全局和直觀的表示。第三種形式是(max,plus)遞歸,其被鏈接到隨機圖中的最大權(quán)重路徑并被鏈接到群吞吐量。這些遞歸原來是模擬這種新種類的對象的最有效方式。
參見圖4,圖中圖解說明了具有輸入和輸出阻止(反壓)的高度為2的二叉樹32的一個例子。二叉樹32圖解說明Petri網(wǎng)形式中無損失(loss-free)標記的模型。在每個節(jié)點或端系統(tǒng)38的輸入緩沖器34和輸出緩沖器36實現(xiàn)與反壓機制相關(guān)的阻止機制。圖5中更詳細地圖解說明了二叉樹32的單個端系統(tǒng)節(jié)點38。如圖4和5中所示,按照上面說明的索引符號(k,l)識別或標記每個端系統(tǒng)節(jié)點32。對于每個端系統(tǒng)節(jié)點(k,l),每個輸入緩沖器34的大小表示為BIN(k,l),與到后續(xù)或子端系統(tǒng)(k′,l′)的連接對應(yīng)的輸出端的每個輸出緩沖器36的大小表示為BOUT(k,l)(k,l)。以數(shù)據(jù)分組為單位測量輸入緩沖器和輸出緩沖器的大小。為了簡化起見,所有分組被認為大小相同。
雖然可以使用其它類型的通信協(xié)議,不過端系統(tǒng)之間的連接最好是TCP連接。如圖中所示,類似的符號被用于TCP連接。例如,到端系統(tǒng)(k,l)的TCP連接用對應(yīng)的索引標志(k,l)標記。另外,每個TCP連接沿著包含串聯(lián)的一系列路由器H(k,l)的路線而行。TCP連接(k,l)的路由器用索引h=1,2,...,H(k,l)標記。每個路由器被表示成單一的服務(wù)器隊列。連接(k,l)的路由器h的輸入緩沖器被表示成Petri網(wǎng)中具有標記(k,l,h)的位置。在圖4和5中,Petri網(wǎng)中的這些位置由圓44表示。TCP連接(k,l)的表示為(k,l,beg)的位置代表端系統(tǒng)(k-1,m(p))的輸出緩沖器。類似地,位置(k,l,end)代表端系統(tǒng)(k,l)的輸入緩沖器。關(guān)于TCP連接(1,0),在圖4中示出了索引h的符號。
TCP連接(k,l)的窗口大小序列被表示成(Wm(k,l))m≥1,46。更準確地說,Wm(k,l)是分組m看到的窗口大小。該序列在集合{1,2,...,Wmax}中取值,其中Wmax是最大窗口大小。為了便于舉例說明,對該序列采取與TCP RENO擁塞避免AIMD規(guī)則對應(yīng)的下述隨機演化。應(yīng)用隨機加法增長規(guī)則,以致當它等于w時,對于每w個分組,窗口增大一個最大段長度(MSS),只要不存在任何分組標記。當分組被路由器之一標記時,應(yīng)用乘法遞減規(guī)則,窗口被減半。實際上,減半的整數(shù)近似被用于把窗口保持在集合{1,2,...,Wmax}中。類似地,如果窗口等于Wmax,那么它保持等于該值,直到第一分組標記為止。如果假定獨立于概率p(k,l)標記分組,那么(Wmk,l)m≥1是非周期的遍歷Markov鏈。
關(guān)于通過圖4和5中圖解說明的準Petri網(wǎng)的分組的處理,權(quán)標被用于代表數(shù)據(jù)分組、確認或者一般地,與調(diào)度或反壓機制相關(guān)的控制事件。按照與遷移(transition)(圖中用柵48表示)相關(guān)的處理規(guī)則,權(quán)標從一處移動到另一處。這種Petri網(wǎng)中的一般規(guī)則是一旦權(quán)標在所述遷移的上游的每個位置可用,就發(fā)生依據(jù)該遷移的權(quán)標的處理。隨后從每個上游位置消耗一個權(quán)標,并在某一隨機處理時間(它取決于所述遷移)之后,在所述遷移的所有上游位置中創(chuàng)建一個權(quán)標。
例如,在位于附圖左部的源創(chuàng)建代表群通信的分組的權(quán)標。根據(jù)處理規(guī)則定義的條件,從一處到一處地(即從緩沖器到緩沖器地)處理這些權(quán)標,并且延遲與隨機處理時間相關(guān)。如圖所示,通向h=beg和h=end的位置的遷移具有零處理時間。其它遷移在模擬沿著路線的先進先出(“FIFO”)路由器。這些遷移中的處理時間是描述往來通信量(cross traffic)對通過路由器/鏈路的群通信的分組處理的影響的隨機變量。通過路由器(k,l,h)的分組m的隨機處理時間由σm(k,l,h)表示,并被稱為分組m的集合服務(wù)時間。在每個路由器中按照FIFO方式調(diào)度TCP連接的分組的事實由具有附著到每個路由器的一個權(quán)標的本地反饋環(huán)表示。如圖4中所示,為了易讀和清楚起見,只在最右側(cè)的TCP連接上表示了這些本地環(huán)。由于這種本地環(huán)的結(jié)果,只有在分組m-1離開之后,分組m才能夠在路由器中開始它的服務(wù)時間。
另一反饋弧表示各種流程控制和反壓機制。相關(guān)的位置已被擴大為方框,并用初始存在于該位置的權(quán)標的編號標記。Petri網(wǎng)的初始條件是其所有位置代表權(quán)標為空的緩沖器,即,組播還沒有開始,所有輸入和輸出緩沖器是空的。
具有標記為BIN(k,l)的位置的反饋弧代表端系統(tǒng)節(jié)點(k,l)向其母節(jié)點通知接收器窗口大小。由于由該反饋弧上的位置和位置(k,l,1),(k,l,2),...,(k,l,end)構(gòu)成的循環(huán)中的權(quán)標的總數(shù)是不變量,并且保持等于BIN(k,l),當被加到端系統(tǒng)節(jié)點(k,l)的輸入緩沖器中的分組數(shù)目中的TCP連接(k,l)的飛行分組的總數(shù)等于BIN(k,l)時,該反饋弧的位置沒有留下任何權(quán)標,以致位置(k,l,beg)的下游遷移被阻塞。
具有標記為BOUT(k′,l′)k,l的反饋弧代表來自端系統(tǒng)節(jié)點(k,l)的輸入緩沖器的流的阻塞,因為在與TCP連接(k′,l′)相關(guān)的輸出緩沖器中缺少空間。該反饋弧源于位置(k′,l′,end)的上游遷移,而不是源于位置(k′,l′,beg)的下游,因為當被TCP連接(k′,l′)的接收者確認時,只從該輸出緩沖器刪除分組。
用擁塞窗口(Wmk,l)m≥1標記的反饋弧代表TCP的動態(tài)窗口流控制;但是,該反饋弧并不如同在典型的事件圖中那樣表現(xiàn),因為窗口的大小隨著時間而變化。
在Petri網(wǎng)模型中,每個分組被確認。但是在目前的TCP實現(xiàn)中,可每隔一個段發(fā)送確認。通過假定上述Petri網(wǎng)中的分組代表TCP連接中的兩個段的傳輸,可考慮到這一點。根據(jù)該假定,在該模型中可以使用2×MSS大小的“抽象分組”。為用抽象分組表述的整數(shù)的過程Wm從而可等于CWND/(2×MSS)的整數(shù)部分,其中CWND是關(guān)于TCP協(xié)議給定的擁塞窗口。隨后對于成功傳送的每個窗口,該值被增大MSS/(2×MSS)=1/2,即,在成功地傳送2Wm個分組之后,Wm的值被加1。
為了構(gòu)成演化等式,當分組m在源節(jié)點可用時的時間被表示為Tm。對于飽和輸入情況來說,從通信一開始,所有分組就在源節(jié)點準備好了,并且Tm=1。當遷移(k,l,h)完成分組m的傳輸時的時間被表示成χm(k,l,h)。按照慣例,χm(k,l,beg)是當分組m離開TCP連接(k,l)的源節(jié)點的輸出緩沖器(即大小為BOUT,(k,l)(k-1,m(k-1,l))的緩沖器)時的時間。類似地,χmk,l,end是當分組m離開TCP連接(k,l)的接收者節(jié)點的輸入緩沖器(即離開大小為BIN(k,l)的緩沖器)時的時間。在最后的小節(jié)中給出的模型的動態(tài)特性由下面的一組等式給出(其中∨表示最大值)。
xm(0,0,beg)=Tmvxm-BIN(0,0)(0,0,end),xm(0,0end)=xm(0,0,beg)v(vl∈d(0,0)xm-BOUT,(1,l)(0,0)(i,l,H(l,i)))]]>并且對于k≥1,l≥0,xm(k,l,beg)=xm(k-1,m(k,l),end)vxm-BIN(k,l)(k,l,end)vxm-Wm(k,l)(k,l,H(l,i))]]>xm(k,l,1)=(xm(k,l,beg)vxm-1(k,l,1))+σm(k,l,1)]]>xm(k,l,H(k,l))=(xm(k,l,H(k,l)-1)vxm-1(k,l,H(k,l)))+σm(k,l,H(k,l))]]>xm(k,l,end)=(xm(k,l,H(k,l))v(Vi∈d(k,l)xm-BOUT,(k+l,i)(k,l)(k+1,l,Hk+l,i)))]]>為了找出隨機圖中最大權(quán)重的路徑,考慮其中一組頂點如下所示的隨機圖V={(0,0,beg,m),(0,0,end,m)|m∈Z}{(k,l,h,m),k≥1,l≥0,h∈{beg,1,2,...,H(k,l),end}|m∈Z}頂點(k,l,h,m)的權(quán)重由σm(k,l,h)給出,h∈{1,2,...,H(k,l)}并且m≥1,對于h∈{beg,end}來說,頂點(k,l,h,m)的權(quán)重等于0。對于m≤0的任何頂點來說,權(quán)重為-∞。
一組棱邊由E1E2E3E4E5給出,其中E1={(0,0,end,m)→(0,0,beg,m)m∈Z}{(k,l,1,m)→(k,l,beg,m),(k,l,end,m)→(k,l,H(k,l),m)|k≥1,l≥0,m∈Z}{(k,l,m,h)→(k,l,h-1,m)|對于h=2,...,H(k,l)且k≥1,l≥0,m∈Z}{(k,l,beg,m)→(k-1,m(k,l),ebd,m)|k≥1,l≥0,m∈Z},E2={(k,l,h,m)→(k,l,h,m-1)|對于h的所有值且k≥1,l≥0,m∈Z}E3={(k,l,beg,m)→(k,l,H(k,l),m-Wm(k,l))∀k≥1,l≥0,m∈Z}]]>E4={(k,l,beg,m)→(k,l,end,m-BIN(k,l))∀k≥1,l≥0,m∈Z}]]>
描述該圖的最有效方式是集中于串聯(lián)的TCP連接的情況,而不是集中于樹。這在圖6中實現(xiàn),其中E1弧線是水平弧線,E2弧線是垂直弧線。在圖上標出了其它弧線。
為了表示在根節(jié)點的分組可用性,我們創(chuàng)建了權(quán)重等于Tm-Tm-1的一組頂點{(-1,0,1,m)|m∈Z}。對于所有m∈Z,增加從(0,0,beg,m)→(-1,0,1,m)以及從(-1,0,1,m)→(-1,0,1,m-1)的其它棱邊。
對于所有的k,l,h,m,基于上面的等式的直接歸納給出XM(K,L,h)=maxπ:(k,l,h,m)→(-1,0,1,0){Weiht(π)}---(2)]]>注意從(k,l,h,m)通向(-1,0,1,0)的路徑π的長度Weight(π)可由乘以k+h+m的常數(shù)限制,另外該圖中的一個頂點具有數(shù)目有限的鄰居,這兩個常數(shù)并不取決于樹的規(guī)模和拓撲,只要我們假定其出度(或扇出)由常數(shù)D限制。
對于丟失和重新排序模型來說,該模型以上面介紹的隨機圖框架為基礎(chǔ)。TCP機制的自時鐘控制模型將保持和標記情況中一樣。但是,當發(fā)生丟失時,作為對稍后的分組具有潛在影響的隨機圖的新分枝,增加重傳分組。
在下面的討論中,與索引m相關(guān)的圖的頂點將指的是分組m本身,或者指的是在分組m之后和在分組m+1之前發(fā)送的重傳分組。
為了便于清楚地說明,首先研究標稱情況,其中孤立地僅僅考慮一個連接,所述連接具有接收所有數(shù)據(jù)的充足緩沖器(以致它不會受反壓影響)并且具有飽和的源。這種情況下,一旦擁塞窗口允許(當待發(fā)送的分組最多為確認的最高序號加上CWND時),分組就由TCP源發(fā)送。
在一個分組(具有索引m)丟失,并且其它相鄰分組不被丟失時,啟動標稱情況中的快速重傳快速恢復(fù)。
當收到分組m-Wm+1,...m-1的ACK時,觸發(fā)分組m-Wm的離開,觸發(fā)分組m+1,m+2直到m+Wm的離開(因為窗口必須間隔該距離增大一個單位,從而當發(fā)出分組m+Wm時,等于Wm+1)。分組m被丟失,但是收到分組m+1,m+2,..,觸發(fā)重復(fù)的ACKS被發(fā)送給源。當源收到第三個重復(fù)的ACK時(對應(yīng)于分組m+3的到達),它開始快速重傳快速恢復(fù)程序。分組m,m+1,...m+Wm的重傳被發(fā)送,當前的CWND被減半,并且脹大3個單位。多數(shù)時間(除了當Wm≤3時的極端情況),隨后停止分組的發(fā)射,因為收到的最高序為m-1,并且CWND被減小到Wm+1/2+3。隨后接收已發(fā)送的新分組m+4,m+5,...,它們分別向源回送一個新的重復(fù)ACK,它使CWND脹大一個單位。從而,當收到與分組m+(Wm+1)/2+k對應(yīng)的重復(fù)ACK時,發(fā)送分組m+Wm+k,好像它所觀察到的窗口為(Wm-1)/2一樣。當重傳的分組m緊跟在已觸發(fā)分組m+Wm+(Wm-1)/2的分組m+Wm之后到達時,該階段結(jié)束。隨后重新開始窗口的標準增長演化,同時CWND等于(Wm+1)/2,并且最大的確認序號為m+Wm。從而,分組m+Wm+(Wm+1)/2被立即發(fā)送。
總之,對于分組m+1,...m+Wm,窗口自然地隨著加法增長而演化。從而對于分組m+Wm+1,...,+Wm+(Wm-1)/2,它是max((Wm-1)/2,1)。隨后在窗口最初被設(shè)置為(Wm+1)/2的情況下,對于分組m+Wm+(Wm+1)/2重新開始加法增長。
非標稱情況下分組的丟失的表示更復(fù)雜,因為當檢測到分組m的丟失時,分組m+1,m+2,...m+Wm中的一些可能還沒有離開源節(jié)點。擁塞窗口允許這些分組的發(fā)射,但是其它約束,例如反壓和不能從在先節(jié)點獲得的分組可能已耽擱它們。
于是,不建立具有丟失和重新排序的情況的準確模型。相反,說明借助一組保守的變換而獲得的簡化并且易處理的模型。為了證明具有丟失和重新排序的情況的可縮放性,即無限樹的準確模型中吞吐量的正性(positiveness),證明簡化的保守模型在同樣意義上縮放就足夠了。
如果m′(其中m≤m≤m+Wm)是在m之后,并且在檢測在丟失之前發(fā)出的最后分組的索引,那么對于分組m,m+1,...m的窗口演化遵循標準的加法增長。隨后它被固定為(Wm-1)/2≥(Wm-1)/2,直到緊跟在分組m’到達之后收到重新傳送的分組m為止。當發(fā)生這種情況時,可能被發(fā)送的最后分組是m′+max((Wm-1)/2,1)≤m+Wm+max((Wm-1)/2,1)。
對于m+1,m+2,...m+Wm+max((Wm-1)/2,1)-1 ,窗口被設(shè)為max((Wm-1)/2,1),從分組m+Wm+max((Wm-1)/2,1)開始恢復(fù)窗口的加法增長演化。這是保守的,因為真實的系統(tǒng)將始終具有更大的窗口,從而與所考慮的簡化模型相比,具有更好的吞吐量。
如同在標稱情況下一樣,在m+Wm和m+Wm+1之間的最后的可能通信步驟包括了重傳的分組。在半窗口情況下恢復(fù)自時鐘控制機制之后,在直觀最壞的情況下這會使網(wǎng)絡(luò)過載。
在由TCP連接實現(xiàn)SACK的情況下,就實際的窗口演化來說,這里描述的簡化模型仍然保守。只有丟失的分組被重傳,而不是整個窗口。
在所考慮的目的地端系統(tǒng)接收的分組按照序號定義的順序被轉(zhuǎn)發(fā)給其子節(jié)點。當分組m丟失時,如上所述,分組m+1,...,m′被阻塞在接收端系統(tǒng)的輸入緩沖器中。一旦收到在分組m′和m′+1之間發(fā)送的分組m的重傳,它們就被釋放。同樣,由于m’的準確值不易于估計,因此進行保守的選擇。假定當分組m丟失時,它必須等待最后的可能分組(即,m+Wm)的到達和重傳。具體地說這意味著分組m+1,...,+Wm-1也產(chǎn)生該另外的重新排序約束。
在與丟失模型相關(guān)的隨機圖中,端系統(tǒng)的頂點為(k,l)。數(shù)據(jù)分組為m,索引h為v(k,l,h,m)。對于所有k≥1,l,h和m,在v(k,l,h,m)上增加頂點v′(k,l,h,m),這表示剛好在分組m和m+1之間的分組的可能重傳。另外,增加下面的棱邊以鏈接到垂直和水平結(jié)構(gòu)上水平棱邊v′(k,l,1,m)→v(k,l,beg,m)和v′(k,l,h,m)→v′(k,l,h-1,m),h=2,...H垂直棱邊v′(k,l,h,m)→v(k,l,h,m),h=1,...H這些棱邊不從任何v到達任何v。于是在沒有另外的棱邊的情況下,這些補充頂點不起作用。
為了表示分組m的丟失和重傳對TCP連接(k,l)的影響,增加代表延遲后續(xù)分組的分組m(作為在索引m+Wm-1和m+Wm之間的額外分組)的重傳的棱邊E7v(k,l,h,m″+1)→v′(k,l,h,m″),h=1,...,Hk,l并且m″=m,...,m+Wm’和代表分組m,m+1,...,m+Wm-1的重新排序的棱邊E6v(k,l,end,m)→v′(k,l,Hk,l,m+Wm-1)。
在圖6中的線(而不是樹)的情況下呈現(xiàn)完整的圖(包括每種陣列E1,...,E7)。屬于E7的棱邊是垂直局部弧線。為了易讀起見,只有當屬于不同于E1和E2的其它類別的棱邊離開站k和分組m時,才表示了它們。通過假定BIN=BOUT=B得到該圖。
在模型中可以考慮下述內(nèi)容。如果樹的某一節(jié)點的出度較大,那么由于大量的同時傳送發(fā)源于該節(jié)點,出自該節(jié)點的訪問鏈路可能變成實際的瓶頸。從而發(fā)源于該節(jié)點的傳送的吞吐量事實上會受到發(fā)源于同一節(jié)點的其它傳送的極大影響。
“最后一哩鏈路”效應(yīng)可被并入當前模型中。由并不位于參考路徑上的傳送產(chǎn)生的額外通信量可由集合服務(wù)時間的增大來表示,集合服務(wù)時間表示往來通信量對某一參考TCP傳送的影響。
為了使之受到控制,一般觀念是關(guān)于樹中的任何節(jié)點保持一個確定的限制,例如說D。利用和上面使用的類似的理由,易于表明在最后一哩鏈路上提供的帶寬共享是公平的,從而就吞吐量來說,其中該鏈路上的所有集合服務(wù)時間被乘以D的系統(tǒng)是保守的下限系統(tǒng)。
但是,每當任意節(jié)點的出度由常數(shù)限制時,對于不存在最后一哩效應(yīng)的情況來說,吞吐量的可縮放性的證明延伸到考慮到該效應(yīng)的情況下的可縮放性的證明。
下面考慮當樹的規(guī)模變大時群通信的吞吐量。為此,考慮無限樹的可能性。
同質(zhì)模型是其中應(yīng)用下述參數(shù)的情況。樹具有固定度D。所有TCP連接在結(jié)構(gòu)和統(tǒng)計上都是等同的。在所有連接中,跳的數(shù)目是相同的。分組標記或丟失處理是獨立的,并且完全相同地分布在所有連接中,分組標記或丟失概率為p。集合服務(wù)時間是獨立的,并且完全相同地分布在所有路由器中,使用具有有限均值的σ律。在樹中的任意地方,所有反壓緩沖器都是相同的。
非同質(zhì)模型是其中組播樹中的扇出度(由索引(k,l)描述)的上界由常數(shù)D限制。所有路線中的跳數(shù)的上界由常數(shù)限制,即,對于所有(k,l)來說,Hk,l≤H。TCP連接(k,l)中的分組丟失概率的上界由常數(shù)p限制。參數(shù)BIN(k,l)和BOUT(k′,l′)(k,l)的下界分別由并不依賴于(k,l)和(k′,l′)的常數(shù)BIN和BOUT限制。集合服務(wù)時間是獨立的,并且上限由具有有限均值的隨機變量σ限定(在強排序的意義上)。
令χm(k,l,h)如等式(2)中定義。對于同質(zhì)情況和飽和源,存在幾乎必然(almost surea.s.)極限limm→∞mxm(k,l,h)=γ---(3)]]>該極限是確定的,并且與(k,l,h)無關(guān)。實數(shù)γ取決于樹的規(guī)模和拓撲,取決于每個覆蓋網(wǎng)絡(luò)中路由器的數(shù)目,取決于窗口的演化,取決于對往來通信量建模的集合服務(wù)時間的法則,取決于TCP連接中的丟失處理,以及取決于反壓機制的參數(shù)。它將被稱為組播覆蓋的漸近群吞吐量。
對于非同質(zhì)情況,liminfm→∞mxm(k,l,h)≥γ]]>,它同樣是確定的,并且與(k,l,h)無關(guān)。這種情況下,γ是某一下限系統(tǒng)的漸近群吞吐量。
路徑枚舉被用于研究輕尾情況下的吞吐量。額外的假設(shè)是隨機變量σ是輕尾的,即,存在實數(shù)τ>0,以致對于所有0≤t≤τ,Eetσ≤A(t)<+∞。
于是,考慮具有無限高度k=0,1,2...的組播覆蓋樹。在σ法則是輕尾的,以及有界的度D和有界的跳數(shù)H的假設(shè)下,對于ECN和丟失-重新排序情況來說,在(k,l)中均勻地,limsupm→∞xm(k,lend)m≥Const(H,D)>0α·s··]]>隨機變量χm(k,l,end)是從(k,l,end,m)到(-1,0,1,0)的最大權(quán)重路徑的權(quán)重。就ECN來說,通過(k,l,h,m)=(H+2)k+2(H+2)m+v(k,l,h)(除了v(k,l,beg)=0和v(k,l,end)=H(k,l)+1之外,v(k,l,h)=h)給出的函數(shù)沿圖中的任意路徑嚴格漸減。
從而,從(k,l,h,m)到(-1,0,1,0)的路徑不能返回相同的頂點,包含在從(k,l,end,m)到(-1,0,1,0)的路徑中的一組頂點不能大于(H+2)k+2(H+2)m+2H+3。
由于圖中某一節(jié)點的鄰居的最大數(shù)目為max(3,D+1),因此另一推論是這種路徑的數(shù)目由(max(3,D+1))(H+2)k+2(H+2)m+2H+3限制。
從而,通過利用Markov不等式,對于所有π我們得到p(Weight(π)≥χm)≤e-txmEetWeight(π)≤e-txmA(t)(H+2)k+2(H+2)m+sh+3利用事件的某一聯(lián)合的概率的上界由概率的總和限制意味著對于m≥k≥1和D≥2,P(xm(k,lemd)≥xm)≤(D+1)5(H+2)me-LxmA(t)5(H+2)m]]>如果x被選為足夠大,事實上它被選為以致etX≥(A(t)(2D+1))5(H+2),m的這些概率函數(shù)級數(shù)收斂,以致根據(jù)Borel-Cantelli引理,p(limsupm→∞χ(k,l,end)/m≤χ)=1,證明該結(jié)果。
對于丟失和重新排序情況,對相關(guān)的圖引入函數(shù)的新定義(m,k,h)=(H+2)m+(H+2)Wmaxk+v(h),其中v(beg)=0;v(h)=h,如果1≤h≤H并且v(end)=H+(H+2)(Wmax-1)+1,并且Wmax是最大窗口大小。在TCP中,Wmax=min(Bin,Bout)。從而,可看出該函數(shù)沿著該隨機圖中的任意路徑減小。利用相同的證明,上面給出的結(jié)果可被擴展到這種情況。
例子進行模擬和實驗以支持和評估本發(fā)明的系統(tǒng)和方法的理論研究。具體地說,開發(fā)一種基于等式的模擬器,該模擬器對于大型樹的模擬特別有效。另外,建立了可靠組播體系結(jié)構(gòu)的原型,并在Planet-Lab環(huán)境中進行實驗。另外,離散事件模擬器被用于模擬在節(jié)點故障、節(jié)點撤離和節(jié)點加入的情況下,樹的動態(tài)特性。
進行了評估本發(fā)明的系統(tǒng)和方法的可縮放性,尤其是關(guān)于節(jié)點的大型群或樹中的長文件傳送而獲得的吞吐量的可縮放性。為此,根據(jù)上面討論的演化等式使用(max,plus)模擬器。與傳統(tǒng)的離散事件模擬器相比,這種基于等式的模擬器的優(yōu)點在于它簡化了更大樹的處理,更大樹的處理是可縮放性分析中的關(guān)鍵問題。
模擬設(shè)定和假設(shè)總結(jié)如下對于分組大小和模擬長度,以分組,即兩個MSS的等同物給出所有性能結(jié)果。
對于與Planet-Lab實驗的參考和兼容性,假定MSS=100B,以致分組為200B。在每個模擬運行中,模擬10M分組(等同于2GB的數(shù)據(jù))的傳輸。
關(guān)于樹拓撲,只有在均衡的二叉樹的情況下才報告結(jié)果。端系統(tǒng)以及網(wǎng)絡(luò)連接是同質(zhì)的。對于TCP連接,考慮同質(zhì)情況,其中每個連接經(jīng)過串聯(lián)的10個路由器。在該連接上傳送的所有分組具有獲得負反饋(丟失或標記)的獨立概率p。默認選項為p=0.01。由于TCP連接中巨大的延遲變化,不考慮超時發(fā)生。
關(guān)于網(wǎng)絡(luò)負載,往來通信量由每個路由器中的集合服務(wù)時間表征。在這些模擬中,均被視為對于每個路由器/鏈路的均值等于10ms的Pareto隨機值。這包含傳播延遲以及由往來通信量引起的排隊延遲。默認選項是指數(shù)的。
對緩沖器大小的不同值重復(fù)相同的實驗。只報告其中BIN被設(shè)為50分組(即,10KB),BOUT隨著50、100、1000和10000分組(分別為10KB、20KB、200KB、2MB)而變化的情況的報告結(jié)果。在該可縮放性分析中,備份緩沖器的大小沒有任何影響。從而,對于這些實驗,我們得到Wmax=min(BIN,BOUT)=50分組。
對于吞吐量可縮放性,關(guān)于丟失處理的不同變型TCP RENO類型(快速重傳),TCP SACK和經(jīng)ECN的TCP,模擬了規(guī)模高達1023個節(jié)點的完整二叉樹。還考慮了輸出緩沖器大小的影響。
圖7圖解說明在TCP-SACK情況下,作為群規(guī)模的函數(shù)的吞吐量。易于直觀地看出群吞吐量是群規(guī)模的遞減函數(shù),和輸出緩沖器大小的遞增函數(shù)。觀察到當輸出緩沖器較大,大于1000分組時,對于較小的群,即小于10個節(jié)點,吞吐量很快變平。對于較小的輸出緩沖器,當群規(guī)模達到100個節(jié)點時,可觀察到對漸近吞吐量的收斂。在相同的配置下,TCP的其它兩種變型表現(xiàn)出類似的行為。無SACK的TCP具有約比TCP SACK的吞吐量小8%的吞吐量,而與TCP SACK相比,TCP ECN具有稍好的吞吐量,大約提高2%。
在關(guān)于無反壓的情況比較漸近吞吐量和單連接吞吐量時,群吞吐量等于對在發(fā)送者的分組可用性沒有任何約束的單連接的吞吐量中的最小吞吐量。這種吞吐量被稱為本地吞吐量。從而,對于同質(zhì)情況來說,這轉(zhuǎn)變成群吞吐量等于本地吞吐量。在本發(fā)明中,由于反壓機制的緣故,該關(guān)系并不成立。但是,有意思的是了解群漸近吞吐量偏離本地吞吐量多遠。在表I中,給出了這兩個量值的比值。值得注意的是大輸出緩沖器下的群吞吐量非常接近于本地吞吐量。換句話說,大輸出緩沖器非常明顯地減輕反壓機制的影響。即使輸出緩沖器較小,例如說50分組(等于輸入緩沖器),由反壓機制引起的群吞吐量的退化也是適度的(小于18%)。
表I漸近吞吐量/一個連接吞吐量的比值
在這些例子中,通過集合服務(wù)時間對在路由器的往來通信量建模。表示了在集合服務(wù)時間的輕尾的假設(shè)下群吞吐量的可縮放性。模擬被用于表示該分布(特別是當其重尾時)的影響。在圖8中,吞吐量被表示成群規(guī)模的指數(shù)函數(shù)和具有不同參數(shù)的Pareto分布。圖8圖解說明分布的尾部越重,吞吐量就越小。另外,即使對于例如Parto之類的重尾分布,當存在二階矩(second moment)(它是當參數(shù)為2.1時的情況)時,吞吐量曲線的形狀與指數(shù)分布的形狀類似。但是,當參數(shù)為1.9時,二階矩不再存在,吞吐量曲線會更快地衰減。這暗示輕尾分布假設(shè)可被某些矩條件放寬和替代。事實上,就鏈型的特殊樹來說,可證明當集合服務(wù)時間具有確實高于二階矩的矩時,那么群吞吐量的下限由嚴格為正的常數(shù)限制。
當輸出緩沖器較大時,漸近群吞吐量相對接近于單連接的吞吐量。該模擬暗示即使對于反壓機制,群吞吐量也具有和單連接吞吐量相似的形狀。圖9把群吞吐量圖解說明成特定情況下分組丟失概率的函數(shù)。如圖所示,單連接吞吐量(即,本地吞吐量)非常接近于大小為126個節(jié)點的群的吞吐量。
為了評估模型的實用性,實現(xiàn)了TCP組播覆蓋系統(tǒng)的原型。使用了Planet-Lab網(wǎng)絡(luò),它使得可以訪問位于世界各地的大學(xué)和研究中心的計算機。該實現(xiàn)對通過信號標志(semaphore)和管道(pipe)同步的每個輸出和輸入緩沖器進行獨立的處理。一旦數(shù)據(jù)從輸入緩沖器被讀出,它們就可用于輸出傳輸。獨立的信號標志被用于保證如果數(shù)據(jù)不能被發(fā)送給輸出緩沖器(這形成反壓),那么就不從輸入套接字讀取數(shù)據(jù)。專用的中央節(jié)點被用于監(jiān)視和控制實驗的進展。
為了分析吞吐量的可縮放性,63個節(jié)點的均衡二叉樹被構(gòu)成并與因特網(wǎng)連接。在具有相同源節(jié)點的15節(jié)點、31節(jié)點和63節(jié)點的均衡子樹中開始同時傳輸。同時進行實驗避免了與連網(wǎng)條件的波動有關(guān)的困難。這樣,總是按照各個樹之間幾乎相同的比例,在不同規(guī)模的樹之間共享鏈路容量。以分組/秒為單位測量在10MB數(shù)據(jù)的傳輸期間,在每個鏈路上獲得的吞吐量。鏈路的吞吐量由接收節(jié)點測量。表II總結(jié)了3種不同規(guī)模的樹和輸出緩沖器大小的3種不同設(shè)置的群吞吐量測量結(jié)果。群吞吐量被計算成在該樹中觀察到的鏈路吞吐量的最小值。類似地上面給出的模擬,每個分組的大小為200字節(jié)。另外,輸入緩沖器的大小等于50分組,輸出緩沖器的大小是可變的。以分組為單位給出輸出緩沖器大小。
表IIPlanet-Lab中的可縮放性實驗吞吐量(分組/秒)
可看出在群規(guī)模方面,群吞吐量變化很小。這與上面報告的模擬結(jié)果一致,雖然同預(yù)料的完全一樣,不過絕對數(shù)不同。
為了核實故障之后的恢復(fù)方法,實現(xiàn)在Planet-Lab機器上運行的5個節(jié)點的抗故障鏈。在10兆字節(jié)數(shù)據(jù)的傳輸中,5個節(jié)點中的兩個節(jié)點發(fā)生故障。故障不是同時的,系統(tǒng)只需要抵抗一個故障。在該實驗中,輸入緩沖器和輸出緩沖器大小都被限制為50分組。如前一實驗中一樣,每個分組的大小為200字節(jié)(MSS=100字節(jié))。這種情況下,故障恢復(fù)算法需要大小為150的備份緩沖器。該實驗進行10次,并測量群吞吐量。重新連接時間和在連接之后傳送的冗余分組的數(shù)目被恢復(fù)。注意,在當前的體系結(jié)構(gòu)中,在重附著過程中不需要通知分組序號。從而,在連接被重新建立之后,故障節(jié)點的子節(jié)點可能接收重復(fù)的分組。這些冗余傳輸會影響群吞吐量。
在我們的實現(xiàn)中,故障節(jié)點關(guān)閉其所有連接,通過檢測中斷的連接檢測故障。在檢測故障之后,成為孤兒的子節(jié)點監(jiān)聽來自幸存先輩的輸入連接。測量檢測到故障時的時間與連接被恢復(fù)時的時間之間的間隔。在兩個參與節(jié)點幸存的母節(jié)點(M)和子節(jié)點(D)獨立測量該時間間隔。表III中總結(jié)了這些測量的結(jié)果。按照每一故障給出了每一故障的平均重連時間(秒)和重傳分組的數(shù)目。給出了每個實驗的平均群吞吐量。在這些實驗中,重新傳送的分組的平均數(shù)目約為備份緩沖器大小的一半。TCP會話在和TCP超時相同量級的幾秒內(nèi)被重新建立。由于也可在幾秒內(nèi)實現(xiàn)故障檢測,因此實驗結(jié)果表明故障檢測和重連的整個過程可在幾秒內(nèi)完成。
表IIIPlanet_Lab中的端到端可靠性實驗
上面給出的模擬結(jié)果表明當不存在故障時,緩沖器越大,群吞吐量就越是可縮放的。但是,在緩沖器較大的情況下,備份緩沖器大小按比例地增大,以便保證端到端可靠性。上面的實驗表明當發(fā)生故障時,由于較大的備份緩沖器的緣故,冗余傳輸將增大。這些冗余傳輸又會降低群吞吐量。
為了調(diào)查研究該問題,考慮在2、4和6個故障(按照相繼的方式,以致系統(tǒng)只需要容許一個故障)情況下的一連串10個節(jié)點。表IV報告了在這些設(shè)置和不同的輸出緩沖器大小下獲得的吞吐量測量結(jié)果。備份緩沖器大小被設(shè)為輸入緩沖器大小,輸出緩沖器大小的兩倍。有意思的是發(fā)現(xiàn)當緩沖器大小增大時,群吞吐量可能實際上降低。這些實驗表明在存在故障的情況下,緩沖器大小方面的吞吐量單調(diào)性不再成立。故障越頻繁,大緩沖器對群吞吐量的負面影響越嚴重。
表IV可縮放性-端到端可靠性,吞吐量(KB/S)
為了補充上面給出的模擬和實驗,提出一種離散事件模擬器來模擬在不同的算法下,樹拓撲隨著故障和恢復(fù)的演化。特別地,評估用于樹重構(gòu)的試探法。
從1023個節(jié)點的均衡二叉樹開始,選擇一個故障節(jié)點,應(yīng)用隨機或貪心試探法來恢復(fù)連通性。利用最佳加入(best-join)加回該節(jié)點。樹保持二叉性,并且只在出度小于2的節(jié)點才允許加入。測量最長路徑的長度和非葉節(jié)點的平均度。用于恢復(fù)連通性的兩種方法是GREEDY RECONNECT和把成為孤兒的子樹重新連接到隨機選擇的出度小于2的節(jié)點的隨機化方法。
圖10和11中給出了結(jié)果,圖10是樹深度的演化,圖11是非葉節(jié)點的平均度的演化。這些曲線表示500余次運行的平均樹深度和內(nèi)部節(jié)點扇出。與隨機選擇有效節(jié)點的普通方法相比,GREEDY RECONNECT有助于保持足夠低的樹深度,以及較高的內(nèi)部節(jié)點度。
雖然這里公開的本發(fā)明的例證實施例顯然實現(xiàn)本發(fā)明的目的,不過本領(lǐng)域的技術(shù)人員可想出各種修改和其它實施例。另外,任意實施例的特征和/或要素可單獨使用或者與其它實施例結(jié)合使用。于是,附加的權(quán)利要求意圖覆蓋在本發(fā)明的精神和范圍內(nèi)的所有這種修改和實施例。
權(quán)利要求
1.一種在具有可縮放的群通信吞吐量和端到端可靠性的組播覆蓋網(wǎng)絡(luò)樹中,把數(shù)據(jù)分組從源節(jié)點傳送到多個端系統(tǒng)節(jié)點的方法,所述方法包括利用通信協(xié)議或反壓機制防止在組播覆蓋樹中的端系統(tǒng)節(jié)點之間的數(shù)據(jù)分組丟失。
2.按照權(quán)利要求1所述的方法,其中防止數(shù)據(jù)分組丟失的步驟包括利用傳輸控制協(xié)議在組播覆蓋樹中的端系統(tǒng)節(jié)點之間傳送數(shù)據(jù)分組。
3.按照權(quán)利要求1所述的方法,其中防止數(shù)據(jù)分組丟失的步驟包括通過把給定節(jié)點的輸入緩沖器中的可用空間告知組播覆蓋樹中的其它節(jié)點、和把給定節(jié)點的輸入緩沖器中的可用空間的顯著減少告知其它節(jié)點,利用反壓機制防止位于端系統(tǒng)節(jié)點中的輸入緩沖器中的溢出。
4.按照權(quán)利要求1所述的方法,其中防止數(shù)據(jù)分組丟失的步驟包括通過阻止數(shù)據(jù)分組從給定節(jié)點的輸入緩沖器到輸出緩沖器的傳送,利用反壓機制防止位于端系統(tǒng)節(jié)點中的輸出緩沖器中的溢出,除非在輸出緩沖器中存在容納數(shù)據(jù)分組的足夠空間。
5.一種在具有可縮放的群通信吞吐量和端到端可靠性的組播覆蓋樹中,把數(shù)據(jù)分組從源節(jié)點傳送到多個端系統(tǒng)節(jié)點的方法,所述方法包括檢測組播覆蓋樹中的至少一個端系統(tǒng)節(jié)點故障;和重新連接由所述一個端系統(tǒng)節(jié)點的故障造成的孤兒端系統(tǒng)節(jié)點和組播覆蓋樹,從而向組播覆蓋樹中的所有剩余端系統(tǒng)節(jié)點提供可靠的數(shù)據(jù)分組傳送,同時保持從源節(jié)點到每個剩余端系統(tǒng)節(jié)點的完整數(shù)據(jù)分組序列的傳送。
6.按照權(quán)利要求5所述的方法,其中檢測至少一個端系統(tǒng)節(jié)點故障的步驟還包括檢測多個同時的端系統(tǒng)節(jié)點故障,重新連接孤兒端系統(tǒng)節(jié)點的步驟還包括把由多個端系統(tǒng)節(jié)點故障造成的所有孤兒端系統(tǒng)節(jié)點同時重連到組播覆蓋樹上。
7.按照權(quán)利要求5所述的方法,還包括利用保存在一個或多個端系統(tǒng)節(jié)點中的覆蓋樹拓撲使得便于重新連接孤兒端系統(tǒng)節(jié)點和組播覆蓋樹。
8.按照權(quán)利要求5所述的方法,其中檢測至少一個端系統(tǒng)節(jié)點故障還包括利用心跳探查或者利用?;钚盘?。
9.按照權(quán)利要求5所述的方法,其中重新連接孤兒端系統(tǒng)節(jié)點的步驟還包括重新連接故障端系統(tǒng)節(jié)點的每個孤兒端系統(tǒng)節(jié)點和屬于故障端系統(tǒng)節(jié)點的幸存先輩節(jié)點的予樹的替代母節(jié)點;和通過子樹重新傳送保存在幸存先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
10.按照權(quán)利要求9所述的方法,其中幸存的先輩節(jié)點是從故障端系統(tǒng)節(jié)點到源節(jié)點的路徑中的第一個幸存節(jié)點。
11.按照權(quán)利要求9所述的方法,其中重新連接每個孤兒節(jié)點的步驟還包括利用貪心試探法。
12.按照權(quán)利要求11所述的方法,其中利用貪心試探法的步驟包括從生根于故障端系統(tǒng)節(jié)點的孤兒子節(jié)點的多個孤兒子樹中選擇具有最大深度的孤兒子樹;選擇與源節(jié)點最接近的替代母節(jié)點;連接選擇的孤兒子樹與選擇的替代母節(jié)點;和重復(fù)孤兒子樹的選擇,直到所有孤兒子樹已和替代母節(jié)點連接為止。
13.按照權(quán)利要求9所述的方法,其中重新傳送保存在備份緩沖器中的數(shù)據(jù)分組的副本的步驟包括向每個重新連接的孤兒節(jié)點提供足量的數(shù)據(jù)分組的副本,以致每個重新連接的孤兒節(jié)點接收來自源節(jié)點的完整數(shù)據(jù)分組序列。
14.按照權(quán)利要求9所述的方法,還包括把關(guān)于組播覆蓋樹中的重新連接的孤兒節(jié)點的信息分發(fā)給源節(jié)點;和把先輩端系統(tǒng)節(jié)點信息分發(fā)給重新連接的孤兒節(jié)點。
15.按照權(quán)利要求5所述的方法,還包括在組播網(wǎng)絡(luò)樹中的一群端系統(tǒng)節(jié)點中的每個節(jié)點中設(shè)置至少一個備份緩沖器;把在所述一群端系統(tǒng)中的每個節(jié)點中從輸入緩沖器傳送給輸出緩沖器的數(shù)據(jù)分組的副本保存在備份緩沖器中;和把保存的數(shù)據(jù)分組的副本轉(zhuǎn)發(fā)給重新連接的孤兒節(jié)點。
16.按照權(quán)利要求15所述的方法,其中每個備份緩沖器、輸入緩沖器和輸出緩沖器包括有限的大小。
17.按照權(quán)利要求15所述的方法,其中每個備份緩沖器的大小為BBACK,并且BBACK≥m(BOUTmax+BINmax)+BOUTmax,]]>其中BOUTmax是最大輸出緩沖器大小,BINmax是最大輸入緩沖器大小,m是保存在備份緩沖器中的數(shù)據(jù)分組副本能夠容納的同時端系統(tǒng)節(jié)點故障的數(shù)目。
18.按照權(quán)利要求5所述的方法,還包括通過下述步驟使端系統(tǒng)節(jié)點與組播覆蓋樹斷開把未決的斷開通知將被斷開的端系統(tǒng)節(jié)點的母節(jié)點和所有子節(jié)點;使該端系統(tǒng)節(jié)點與所述母節(jié)點和所有子節(jié)點斷開;重新連接斷開的端系統(tǒng)節(jié)點的每個斷開的子節(jié)點與屬于斷開的端系統(tǒng)節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過子樹重新傳送保存在所述幸存的先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
19.按照權(quán)利要求5所述的方法,還包括通過下述步驟連接新的端系統(tǒng)節(jié)點與組播覆蓋樹聯(lián)系源節(jié)點;識別用于連接新的端系統(tǒng)節(jié)點的母節(jié)點;和連接所述新的端系統(tǒng)節(jié)點與識別的母節(jié)點。
20.按照權(quán)利要求19所述的方法,還包括把組播覆蓋樹中的緩沖器大小約束通知所述新的端系統(tǒng)節(jié)點。
21.按照權(quán)利要求19所述的方法,其中識別的母節(jié)點包括遠的葉節(jié)點,以便把來自源節(jié)點的大量傳送數(shù)據(jù)提供給所述新的端系統(tǒng)節(jié)點。
22.按照權(quán)利要求19所述的方法,其中識別母節(jié)點的步驟包括識別具有容納所述新的端系統(tǒng)節(jié)點的足夠可用出度容量的有效端系統(tǒng)節(jié)點。
23.按照權(quán)利要求19所述的方法,還包括在整個組播覆蓋樹內(nèi)分發(fā)更新的拓撲信息。
24.一種在具有可縮放的群通信吞吐量和端到端可靠性的組播覆蓋樹中,把數(shù)據(jù)分組從源節(jié)點傳送到多個端系統(tǒng)節(jié)點的方法,所述方法包括利用通信協(xié)議或反壓機制防止在組播覆蓋樹中的端系統(tǒng)節(jié)點之間的數(shù)據(jù)分組丟失;檢測組播覆蓋樹中的至少一個端系統(tǒng)節(jié)點故障;和重新連接由所述一個端系統(tǒng)節(jié)點的故障造成的孤兒端系統(tǒng)節(jié)點和組播覆蓋樹,從而向組播覆蓋樹中的所有剩余端系統(tǒng)節(jié)點提供可靠的數(shù)據(jù)分組傳送,同時保持從源節(jié)點到每個剩余端系統(tǒng)節(jié)點的完整數(shù)據(jù)分組序列的傳送。
25.按照權(quán)利要求24所述的方法,其中防止數(shù)據(jù)分組丟失的步驟包括利用傳輸控制協(xié)議在組播覆蓋樹中的端系統(tǒng)節(jié)點之間傳送數(shù)據(jù)分組;和利用反壓機制防止端系統(tǒng)節(jié)點中的輸入和輸出緩沖器中的溢出。
26.按照權(quán)利要求25所述的方法,其中反壓機制包含把給定端系統(tǒng)節(jié)點的輸入緩沖器中的可用空間告知組播覆蓋樹中的其它端系統(tǒng)節(jié)點;把給定端系統(tǒng)節(jié)點的輸入緩沖器中的可用空間的顯著減少告知其它端系統(tǒng)節(jié)點;和阻止從給定端系統(tǒng)節(jié)點的輸入緩沖器到輸出緩沖器的數(shù)據(jù)分組傳送,除非在輸出緩沖器中存在容納數(shù)據(jù)分組的足夠空間。
27.按照權(quán)利要求24所述的方法,其中檢測至少一個端系統(tǒng)節(jié)點故障的步驟還包括檢測多個同時的端系統(tǒng)節(jié)點故障,重新連接孤兒端系統(tǒng)節(jié)點的步驟還包括通過下述步驟把由所述多個端系統(tǒng)節(jié)點故障造成的所有孤兒端系統(tǒng)節(jié)點同時重連到組播覆蓋樹上重新連接每個故障節(jié)點的每個孤兒節(jié)點和屬于故障節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過所有子樹重新傳送保存在幸存先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
28.按照權(quán)利要求27所述的方法,其中重新連接每個孤兒節(jié)點的步驟包括利用貪心試探法,包括從生根于故障節(jié)點的孤兒子節(jié)點的多個孤兒子樹中選擇具有最大深度的孤兒子樹;選擇與源節(jié)點最接近的替代母節(jié)點;連接選擇的孤兒子樹與選擇的替代母節(jié)點;和重復(fù)孤兒子樹的選擇,直到所有孤兒子樹已和替代母節(jié)點連接為止。
29.按照權(quán)利要求27所述的方法,還包括把關(guān)于組播覆蓋樹中的重新連接的孤兒節(jié)點的信息分發(fā)給源節(jié)點;和把先輩端系統(tǒng)節(jié)點信息分發(fā)給重新連接的孤兒節(jié)點。
30.按照權(quán)利要求24所述的方法,還包括在組播網(wǎng)絡(luò)樹中的一群端系統(tǒng)節(jié)點中的每個節(jié)點中設(shè)置至少一個備份緩沖器;把在所述一群端系統(tǒng)中的每個節(jié)點中從輸入緩沖器傳送給輸出緩沖器的數(shù)據(jù)分組的副本保存在備份緩沖器中;和把保存的數(shù)據(jù)分組的副本轉(zhuǎn)發(fā)給重新連接的孤兒節(jié)點。
31.按照權(quán)利要求30所述的方法,其中每個備份緩沖器的大小為BBACK,并且BBACK≥m(BOUTmax+BINmax)+BOUTmax,]]>其中BOUTmax是最大輸出緩沖器大小,BINmax是最大輸入緩沖器大小,m是保存在備份緩沖器中的數(shù)據(jù)分組副本能夠容納的同時端系統(tǒng)節(jié)點故障的數(shù)目。
32.按照權(quán)利要求24所述的方法,還包括通過下述步驟使端系統(tǒng)節(jié)點與組播覆蓋樹斷開把未決的斷開通知將被斷開的端系統(tǒng)節(jié)點的母節(jié)點和所有子節(jié)點;使該端系統(tǒng)節(jié)點與所述母節(jié)點和所有子節(jié)點斷開;重新連接斷開的端系統(tǒng)節(jié)點的每個斷開的子節(jié)點與屬于斷開的端系統(tǒng)節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過子樹重新傳送保存在所述幸存的先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
33.按照權(quán)利要求24所述的方法,還包括通過下述步驟連接新的端系統(tǒng)節(jié)點與組播覆蓋樹聯(lián)系源節(jié)點;識別具有容納所述新的端系統(tǒng)節(jié)點的足夠可用出度容量的母節(jié)點;連接所述新的端系統(tǒng)節(jié)點與識別的母節(jié)點;把組播覆蓋樹中的緩沖器大小約束通知所述新的端系統(tǒng)節(jié)點;和在整個組播覆蓋樹內(nèi)分發(fā)更新的拓撲信息。
34.一種包含計算機可執(zhí)行代碼的計算機可讀介質(zhì),當被計算機讀取時,所述計算機可執(zhí)行代碼使計算機執(zhí)行一種在具有可縮放的群通信吞吐量和端到端可靠性的組播覆蓋網(wǎng)絡(luò)樹中,把數(shù)據(jù)分組從源節(jié)點傳送到多個端系統(tǒng)節(jié)點的方法,所述方法包括利用通信協(xié)議或反壓機制防止在組播覆蓋樹中的端系統(tǒng)節(jié)點之間的數(shù)據(jù)分組丟失。
35.按照權(quán)利要求34所述的計算機可讀介質(zhì),其中防止數(shù)據(jù)分組丟失的步驟包括利用傳輸控制協(xié)議在組播覆蓋樹中的端系統(tǒng)節(jié)點之間傳送數(shù)據(jù)分組;和利用反壓機制防止端系統(tǒng)節(jié)點中的輸入和輸出緩沖器中的溢出。
36.按照權(quán)利要求35所述的計算機可讀介質(zhì),其中反壓機制包含把給定端系統(tǒng)節(jié)點的輸入緩沖器中的可用空間告知組播覆蓋樹中的其它端系統(tǒng)節(jié)點;把給定端系統(tǒng)節(jié)點的輸入緩沖器中的可用空間的顯著減少告知其它端系統(tǒng)節(jié)點;和阻止從給定端系統(tǒng)節(jié)點的輸入緩沖器到輸出緩沖器的數(shù)據(jù)分組傳送,除非在輸出緩沖器中存在容納數(shù)據(jù)分組的足夠空間。
37.一種包含計算機可讀代碼的計算機可讀介質(zhì),當被計算機讀取時,所述計算機可讀代碼使計算機執(zhí)行一種在具有可縮放的群通信吞吐量和端到端可靠性的組播覆蓋網(wǎng)絡(luò)樹中,把數(shù)據(jù)分組從源節(jié)點傳送到多個端系統(tǒng)節(jié)點的方法,所述方法包括檢測組播覆蓋樹中的至少一個端系統(tǒng)節(jié)點故障;和重新連接由所述一個端系統(tǒng)節(jié)點的故障造成的孤兒端系統(tǒng)節(jié)點和組播覆蓋樹,從而向組播覆蓋樹中的所有剩余端系統(tǒng)節(jié)點提供可靠的數(shù)據(jù)分組傳送,同時保持從源節(jié)點到每個剩余端系統(tǒng)節(jié)點的完整數(shù)據(jù)分組序列的傳送。
38.按照權(quán)利要求37所述的計算機可讀介質(zhì),其中重新連接孤兒端系統(tǒng)節(jié)點的步驟還包括重新連接故障端系統(tǒng)節(jié)點的每個孤兒端系統(tǒng)節(jié)點和屬于故障端系統(tǒng)節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過所述子樹重新傳送保存在幸存先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
39.按照權(quán)利要求38所述的計算機可讀介質(zhì),其中所述幸存先輩節(jié)點是從故障端系統(tǒng)節(jié)點到源節(jié)點的路徑中的第一個幸存節(jié)點;和重新連接每個孤兒端系統(tǒng)節(jié)點的步驟包括利用貪心試探法。
40.按照權(quán)利要求39所述的計算機可讀介質(zhì),其中利用利用貪心試探法的步驟包括從生根于故障端系統(tǒng)節(jié)點的孤兒子節(jié)點的多個孤兒子樹中選擇具有最大深度的孤兒子樹;選擇與源節(jié)點最接近的替代母節(jié)點;連接選擇的孤兒子樹與選擇的替代母節(jié)點;和重復(fù)孤兒子樹的選擇,直到所有孤兒子樹已和替代母節(jié)點連接為止。
41.按照權(quán)利要求37所述的計算機可讀介質(zhì),其中檢測至少一個端系統(tǒng)節(jié)點故障的步驟還包括檢測多個同時的端系統(tǒng)節(jié)點故障,重新連接孤兒端系統(tǒng)節(jié)點的步驟還包括通過下述步驟把由所述多個端系統(tǒng)節(jié)點故障造成的所有孤兒端系統(tǒng)節(jié)點同時重連到組播覆蓋樹上重新連接每個故障節(jié)點的每個孤兒節(jié)點和屬于故障節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過所有子樹重新傳送保存在幸存先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
42.按照權(quán)利要求37所述的計算機可讀介質(zhì),其中所述方法還包括在組播網(wǎng)絡(luò)樹中的一群端系統(tǒng)節(jié)點中的每個節(jié)點中設(shè)置至少一個備份緩沖器;把在所述一群端系統(tǒng)節(jié)點中的每個節(jié)點中從輸入緩沖器傳送給輸出緩沖器的數(shù)據(jù)分組的副本保存在備份緩沖器中;和把保存的數(shù)據(jù)分組的副本轉(zhuǎn)發(fā)給重新連接的孤兒節(jié)點;其中每個備份緩沖器的大小為BBACK,并且BBACK≥m(BOUTmax+BINmax)+BOUTmax,]]>其中BOUTmax是最大輸出緩沖器大小,BINmax是最大輸入緩沖器大小,m是保存在備份緩沖器中的數(shù)據(jù)分組副本能夠容納的同時端系統(tǒng)節(jié)點故障的數(shù)目。
43.按照權(quán)利要求37所述的計算機可讀介質(zhì),其中所述方法還包括通過下述步驟使端系統(tǒng)節(jié)點與組播覆蓋樹斷開把未決的斷開通知將被斷開的端系統(tǒng)節(jié)點的母節(jié)點和所有子節(jié)點;使該端系統(tǒng)節(jié)點與所述母節(jié)點和所有子節(jié)點斷開;重新連接斷開的端系統(tǒng)節(jié)點的每個斷開的子節(jié)點與屬于斷開的端系統(tǒng)節(jié)點的幸存先輩節(jié)點的子樹的替代母節(jié)點;和通過整個子樹重新傳送保存在所述幸存的先輩節(jié)點中的備份緩沖器中的數(shù)據(jù)分組的副本。
44.按照權(quán)利要求37所述的計算機可讀介質(zhì),其中所述方法還包括通過下述步驟連接新的端系統(tǒng)節(jié)點與組播覆蓋樹聯(lián)系源節(jié)點;識別具有容納所述新的端系統(tǒng)節(jié)點的足夠可用出度容量的母節(jié)點;連接所述新的端系統(tǒng)節(jié)點與識別的母節(jié)點;把組播覆蓋樹中的緩沖器大小約束通知所述新的端系統(tǒng)節(jié)點;和在整個組播覆蓋樹內(nèi)分發(fā)更新的拓撲信息。
全文摘要
本發(fā)明致力于覆蓋組播網(wǎng)絡(luò)中的可縮放性和端到端可靠性。使用一種吞吐量可縮放并且端到端可靠的簡單端系統(tǒng)組播體系結(jié)構(gòu)。在該體系結(jié)構(gòu)中,節(jié)點之間的傳送利用TCP以及反壓機制來提供具有有限大小的轉(zhuǎn)發(fā)緩沖器的中間節(jié)點之間的數(shù)據(jù)分組傳送。在每個節(jié)點中還存在一個有限大小的備份緩沖器來保存從接收器窗口復(fù)制到轉(zhuǎn)發(fā)緩沖器的分組的副本。當重新建立TCP連接時使用這些備份緩沖器,以便在子節(jié)點的父節(jié)點發(fā)生故障之后,向子節(jié)點提供數(shù)據(jù)分組的副本,對組播覆蓋網(wǎng)絡(luò)內(nèi)的所有節(jié)點保持完整的數(shù)據(jù)分組序列。該體系結(jié)構(gòu)提供端到端可靠性,容許多個同時的節(jié)點故障,并且向任意群規(guī)模和任意緩沖器大小提供正的吞吐量。
文檔編號H04L12/26GK1965532SQ200580013441
公開日2007年5月16日 申請日期2005年4月29日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者劉震, 弗蘭克斯·巴塞利, 奧古斯丁·查恩特里奧, 安托·里阿波夫 申請人:國際商業(yè)機器公司