專利名稱:分層結(jié)簇的p2p流系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于從諸如數(shù)字電子消費(fèi)設(shè)備和/或計(jì)算機(jī)之類的技術(shù)設(shè)備創(chuàng)建網(wǎng)絡(luò)的方法。
背景技術(shù):
在計(jì)算機(jī)技術(shù)中,建立用于交換數(shù)據(jù)和共享硬件資源的連接"i殳備的網(wǎng)絡(luò)是眾所周知的。分離的設(shè)備一般被稱作節(jié)點(diǎn)。當(dāng)前,節(jié)點(diǎn)通常為計(jì)算機(jī),但可以是其他技術(shù)設(shè)備,諸如機(jī)頂盒、蜂窩電話、移動(dòng)電子設(shè)備等。節(jié)點(diǎn)之間的互聯(lián)主要是電連接的、光連接的或無線電連接。可以將網(wǎng)絡(luò)分類為基于客戶機(jī)-服務(wù)器或?qū)Φ鹊?P2P)架構(gòu)(architecture )。在基于P2P的網(wǎng)絡(luò)中,節(jié)點(diǎn)也被稱作對(duì)等者(peer)。盡管在客戶機(jī)-服務(wù)器架構(gòu)中每個(gè)節(jié)點(diǎn)被定義為客戶機(jī)或服務(wù)器,但在P2P網(wǎng)絡(luò)中沒有這樣的區(qū)分。替代的是,對(duì)等者包括服務(wù)器和客戶機(jī)功能的這兩者。P2P技術(shù)使得每個(gè)節(jié)點(diǎn)能夠向網(wǎng)絡(luò)中的任何其他節(jié)點(diǎn)提供服務(wù)或資源,或使用由網(wǎng)絡(luò)中的任何其他節(jié)點(diǎn)所提供的服務(wù)或資源。
P2P網(wǎng)絡(luò)通常不限于任何特殊的應(yīng)用或根本的(underlying)網(wǎng)絡(luò)拓樸,而是可以被理解為節(jié)點(diǎn)或?qū)Φ日叩募希龉?jié)點(diǎn)或?qū)Φ日呷Q于特定的協(xié)議的某個(gè)集合。對(duì)等者直接與其他對(duì)等者通信使得不需要中央網(wǎng)絡(luò)組織(organization)是P2P網(wǎng)絡(luò)的特點(diǎn)。大多數(shù)P2P網(wǎng)絡(luò)支持對(duì)等者可以在任何時(shí)間與網(wǎng)絡(luò)連接或/人網(wǎng)絡(luò)斷開。
對(duì)于以下基本的網(wǎng)絡(luò)組織需要上述的P2P協(xié)議諸如,例如發(fā)現(xiàn)其他連接的對(duì)等者、向其他對(duì)等者提供自身的服務(wù)或資源(廣告(advertising)),理解其他對(duì)等者的廣告消息、或分配連接容量來建立與其他對(duì)等者的某種連接。此外,存在使一組對(duì)等者能夠協(xié)作并從而形成對(duì)等者組(peer group)的協(xié)議。這樣的對(duì)等者組通常用于在對(duì)等者組內(nèi)提供共同的服務(wù)的集合。然而,沒有一般地限定對(duì)等者組的用途。屬于對(duì)等者組的對(duì)等者通常能夠訪問相同的組內(nèi)的所有其他的連接的對(duì)等者,并且能夠被相同的組內(nèi)的所有其他的連接的對(duì)等者所訪問。此外,每個(gè)對(duì)等者可以是另外的對(duì)等者組的成員。為了向?qū)Φ日呓M添加對(duì)等者,或從對(duì)等者組移除對(duì)等者,總是需要用戶執(zhí)行某種管理活動(dòng)。
用于P2P流系統(tǒng)的隨枳j流體理i侖(H. Kumar, Y. Liu and K. Hoss, inProceeding of正EE INFOCOM, 2007)教導(dǎo)了 P2P流系統(tǒng)中的最大視頻流速率由視頻源服務(wù)器的容量(capacity),系統(tǒng)中對(duì)等者的數(shù)目和所有對(duì)等者的總計(jì)(aggregate )上載容量確定。還提出了理想調(diào)度(perfect scheduling )算法以實(shí)現(xiàn)最大流速率。在這樣的調(diào)度算法中,每個(gè)對(duì)等者將直接從服務(wù)器獲得的視頻內(nèi)容上載至系統(tǒng)中的所有其他對(duì)等者。為了在所有對(duì)等者上保證100%的上載容量利用率,不同的對(duì)等者從服務(wù)器下載不同的內(nèi)容,且對(duì)等者從服務(wù)器下載內(nèi)容的速率與其上載容量成比例。
理想調(diào)度算法實(shí)現(xiàn)了系統(tǒng)允許的最大流速率。假定系統(tǒng)中有n個(gè)對(duì)等者,且對(duì)等者i的上載容量為Ui, i = 1, 2,…,n。在系統(tǒng)中存在具有上載容量us的一個(gè)源。由^^表示的系統(tǒng)允許的最大流速率為
rmax =min{w ,——( 1 )
("'+l^')"的值為每個(gè)對(duì)等者的平均上載容量。圖i圖示了根據(jù)現(xiàn)有技
術(shù)的示范系統(tǒng)100,其展示了怎樣利用理想調(diào)度算法在三個(gè)異類(heterogeneous)節(jié)點(diǎn)之間調(diào)度數(shù)據(jù)的不同部分。在系統(tǒng)中描繪了三個(gè)對(duì)等者120、 130、 140。假定服務(wù)器110具有容量6,而al30、 b 140和c 120的上載容量分別為2、 4和6,并且所有對(duì)等者具有足夠的下載容量,則系統(tǒng)中可以支持的最大視頻速率為6。為了實(shí)現(xiàn)該速率,服務(wù)器將視頻數(shù)據(jù)分為6個(gè)部分151、 152、 153, a130負(fù)責(zé)上載視頻數(shù)據(jù)中的1個(gè)部分,而b 140和c 120負(fù)責(zé)上載每個(gè)視頻數(shù)據(jù)中的2個(gè)部分和3個(gè)部分。以此方式,所有對(duì)等者130、 140、 120可以以最大速率6來下載視頻。為了實(shí)施這樣的理想調(diào)度算法,每個(gè)對(duì)等者需要維持連接并與系統(tǒng)中的所有其他對(duì)等者交換視頻內(nèi)容。另外,服務(wù)器需要將視頻流分割為具有不同速率的多個(gè)子流, 一個(gè)子流 用于每個(gè)對(duì)等者。真實(shí)的P2P流系統(tǒng)可以很容易地具有幾千個(gè)對(duì)等者。利用
當(dāng)前的操作系統(tǒng),常規(guī)的對(duì)等者維持幾千個(gè)并發(fā)的(concurrent)連接是不現(xiàn) 實(shí)的。服務(wù)器實(shí)時(shí)地將視頻流分為幾千個(gè)子流也是有挑戰(zhàn)性的。因而期望存 在可以實(shí)現(xiàn)接近理論上限(upper bound)的流速率的P2P流系統(tǒng)、并且該方 案相當(dāng)實(shí)用以在實(shí)際中使用。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一方面,公開了用于在節(jié)點(diǎn)的網(wǎng)絡(luò)中廣播數(shù)據(jù)的裝置和方 法。該數(shù)據(jù)可以包括視頻信號(hào)、音頻信號(hào)、音頻和視頻信號(hào)的這兩者、以及 諸如文本、輔助數(shù)據(jù)或編碼信息之類的數(shù)據(jù)形式。根據(jù)示范實(shí)施例,用于廣 播信號(hào)的方法包括以下步驟從多個(gè)對(duì)等者接收對(duì)所述信號(hào)的多個(gè)請(qǐng)求,確 定請(qǐng)求數(shù)據(jù)的對(duì)等者的數(shù)目,將所述多個(gè)對(duì)等者組織為多個(gè)對(duì)等者子集,將 所述信號(hào)劃分為與對(duì)等者子集的數(shù)目相等的所述信號(hào)的多個(gè)部分,將每個(gè)對(duì) 等者子集內(nèi)的單個(gè)對(duì)等者指定為所述對(duì)等者子集的簇首(cluster head),以 及向每個(gè)對(duì)等者子集中的所述簇首傳送所述信號(hào)的部分。
根據(jù)本發(fā)明的另一方面,用于廣播信號(hào)的方法進(jìn)一步包括步驟使得每 個(gè)簇首能夠向所述其他簇首中的每一個(gè)傳送它們各種所接收的信號(hào)部分,以 使每個(gè)簇首從每個(gè)其他簇首中接收信號(hào)的每個(gè)部分,從而使得每個(gè)簇首能夠 生成表示該信號(hào)的重新組合(recombined)的信號(hào)。
根據(jù)本發(fā)明的另一方面,該裝置包括接口,用于從多個(gè)節(jié)點(diǎn)接收對(duì)數(shù) 據(jù)的請(qǐng)求;處理器,用于確定請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)的數(shù)目、將所述多個(gè)節(jié)點(diǎn)組織 為多個(gè)節(jié)點(diǎn)子集、將數(shù)據(jù)劃分為與節(jié)點(diǎn)子集的數(shù)目相等的多個(gè)部分;以及傳 送器,用于向每個(gè)節(jié)點(diǎn)子集的簇首發(fā)送數(shù)據(jù)的部分。
圖1圖示了根據(jù)現(xiàn)有技術(shù)的示范系統(tǒng)(100),其描繪了使用理想調(diào)度算 法的P2P架構(gòu);
圖2圖示了根據(jù)本發(fā)明的分層結(jié)簇(hierarchically clustered)的P2P流
系統(tǒng);
圖3圖示了根據(jù)本發(fā)明的用于教導(dǎo)處理新的對(duì)等者加入的方法的示范實(shí)施例;
圖4圖示了根據(jù)本發(fā)明的用于教導(dǎo)處理對(duì)等者離開的方法的示范實(shí)施
例;
圖5圖示了根據(jù)本發(fā)明的簇重新平衡(re-balancing)的第一階段的示范
實(shí)施例;
圖6圖示了根據(jù)本發(fā)明的重新平衡的第二階段的示范實(shí)施例;
圖7圖示了根據(jù)本發(fā)明的簇合并(merge)處理的示范實(shí)施例;
圖8圖示了根據(jù)本發(fā)明的簇分割(spilt)處理的示范實(shí)施例;
圖9圖示了根據(jù)本發(fā)明的引導(dǎo)(bootstrap)節(jié)點(diǎn)的架構(gòu)的示范實(shí)施例;
圖10圖示了根據(jù)本發(fā)明的HCPS系統(tǒng)的垂直擴(kuò)展的示范實(shí)施例。
具體實(shí)施例方式
除本發(fā)明構(gòu)思之外,圖中示出的元件是眾所周知的,并且將不進(jìn)行詳細(xì) 描述。此外,假定熟悉了電視廣播和接收機(jī),也不在這里詳細(xì)描述。分層結(jié) 簇的P2P流方案(HCPS)專注于(address)理想調(diào)度算法所面對(duì)的可縮放 性(scalability)問題。HCPS將對(duì)等者分組為簇(cluster),而不是形成單個(gè) 的大網(wǎng)格(mesh)。簇中的對(duì)等者的數(shù)目相對(duì)地小,以使理想調(diào)度算法可以 成功地應(yīng)用于簇的層(level )。對(duì)等者可以是設(shè)備、蜂窩電話、電視信號(hào)處 理設(shè)備、射頻接收機(jī)、計(jì)算機(jī)、瘦客戶機(jī)(thin client)、機(jī)頂盒、調(diào)制解調(diào) 器、遠(yuǎn)程設(shè)備、橋接設(shè)備等以網(wǎng)絡(luò)結(jié)構(gòu)布置(arrange)的設(shè)備。簇中的一個(gè) 對(duì)等者被選擇為簇首(cluster head),并作為該簇的源而操作。簇首通過在 系統(tǒng)層級(jí)(hierarchy)中加入上層(upperlevel)簇來接收流內(nèi)容。簇首可以 是根據(jù)由系統(tǒng)設(shè)計(jì)者確定的任何準(zhǔn)則選擇的簇中的任何對(duì)等者。簇首可以是 設(shè)備、蜂窩電話、電視信號(hào)處理設(shè)備、射頻接收機(jī)、計(jì)算機(jī)、瘦客戶機(jī)、機(jī) 頂盒、調(diào)制解調(diào)器、遠(yuǎn)程設(shè)備、橋接設(shè)備等設(shè)備。
轉(zhuǎn)向圖2,呈現(xiàn)了根據(jù)本發(fā)明的提出的系統(tǒng)200的簡(jiǎn)單例子的示范實(shí)施 例。在圖2的系統(tǒng)中,對(duì)等者al至a3、 bl至b3 ^f皮組織為兩層層級(jí)L入 在基礎(chǔ)層(base level) L3,對(duì)等者被分組為小尺寸的對(duì)等者子集,或簇240、 250、 260。在簇內(nèi),對(duì)等者完全地連接。具有最大上載容量的對(duì)等者al、 bl、 cl被選擇為簇首。在頂層L2,所有簇首和視頻服務(wù)器形成兩個(gè)簇220、 230。 視頻服務(wù)器210使用理想調(diào)度算法在頂層(top level) L2將內(nèi)容分配至所有簇首al、 bl、 cl。在基礎(chǔ)層L3,每個(gè)簇首al、 bl、 cl在其簇中作為視頻服 務(wù)器,并再次使用理想調(diào)度算法來向相同簇中的其他對(duì)等者分配所下載的視 頻。每個(gè)一般對(duì)等者上的連接數(shù)目由其簇尺寸來限定。另外,簇首al、 bl、 cl維持上層簇L2中的連接。.
在示范實(shí)施例中假定簇的尺寸由Nm^來限定,并且源可以支持多至Ns 個(gè)頂層簇(top layer cluster)。如圖2所示,兩層HCPS系統(tǒng)可以容納多至 Ns(Nmax)2個(gè)對(duì)等者。假定Ns=10且Nmax=20,則HCPS可以支持多至4000個(gè) 對(duì)等者。對(duì)等者需要維持的連接的最大數(shù)目對(duì)于簇首來說是40,對(duì)于一般對(duì) 等者來說是20,這是非常易于管理(manageable)的??梢酝ㄟ^向?qū)蛹?jí)添加 更多的層(垂直擴(kuò)展)來容納更多的對(duì)等者。
在設(shè)計(jì)根據(jù)本發(fā)明的系統(tǒng)時(shí),期望將對(duì)等者結(jié)簇(cluster)以使可以最大 化可支持的流速率。使用理想調(diào)度算法利用完全連接的網(wǎng)格來實(shí)現(xiàn)對(duì)于給定 的對(duì)等者集合(set)和源的最大流速率rmax。 HCPS中構(gòu)建的網(wǎng)格不是完全 連接的,其可能減小最大可支持流速率。期望存在允許HCPS支持接近rmax 的流速率的對(duì)等者結(jié)簇的策略。試探性的(heuristic)對(duì)等者結(jié)簇策略允許 HCPS具有好的可支持流速率。
為了將給定的HCPS網(wǎng)格拓樸所期望的可支持流速率用公式表示為最優(yōu) 化問題,假定HCPS網(wǎng)格中有C個(gè)簇、N個(gè)對(duì)等者和一個(gè)源。簇c具有Vc 個(gè)對(duì)等者,c=l,2,..,,C。用Ui來表示對(duì)等者i的上載容量。對(duì)等者可以作為一 般對(duì)等者、或作為上層簇中的簇首和基礎(chǔ)層簇中的一般對(duì)等者,來參與HCPS
網(wǎng)格。用Uie來表示作為一般對(duì)等者的對(duì)等者i向簇C貢獻(xiàn)的上載容量的量,
并用h^來表示作為簇首的對(duì)等者i向簇c貢獻(xiàn)的上載容量的量。進(jìn)一步用
Us來表示源的上載容量,并用UeS來表示用于上層簇C的源的容量的量。如果
rc隨表示使用理想調(diào)度算法的簇c的最大流速率,則給定的基于簇的HCPS 網(wǎng)格的最大可支持流速率rHCPS可以用公式表示為下面的最優(yōu)化問題
<formula>formula see original document page 10</formula> ( 2 )
受約束于
<formula>formula see original document page 10</formula> ( 3 )<formula>formula see original document page 11</formula>
其中方程(3)對(duì)于所有c( c^,2,…,C)成立,而方程(4)對(duì)于所有i( i=l,2,.."N) 成立。如果對(duì)等者i不在簇c中,則Ui^O;如果對(duì)等者i不是簇c的簇首, 則hic=0。
對(duì)于給定的網(wǎng)格拓樸的最大可支持流速率為可以由所有簇支持的流速 率。因?yàn)榇厥讌⑴c上層簇和下層簇的這兩者,并且源的上載容量^^皮幾個(gè)頂層 簇使用,所以可以通過調(diào)整簇的上載容量和源的上載容量的分配來將HCPS 的可支持流速率最大化(方程2)。方程(3)中的第一項(xiàng)表示每個(gè)對(duì)等者的 平均上載容量,而第二項(xiàng)表示簇首的上載容量(簇首可以是源或?qū)Φ日?。 因?yàn)樵诖豤處的流速率的最大值rcmax由理想調(diào)度算法支配(govern),所以 這引入了方程(3)。進(jìn)一步地,為上層簇和下層簇分配的簇首的帶寬的量必 須不超過其總上載容量(方程4)。最后,對(duì)于源來說,用于所有簇的總的分 配的上載容量必須不超過源的總上載容量(方程5 )。
期望在HCPS網(wǎng)格拓樸中支持接近最優(yōu)速率r咖x的流速率。假定存在具 有一個(gè)源節(jié)點(diǎn)的400個(gè)對(duì)等者,簇尺寸為20,并且為簇首將對(duì)等者分組為 20個(gè)基礎(chǔ)層簇和一個(gè)頂層簇。根據(jù)在方程(2)中以公式表示的最優(yōu)化問題 來計(jì)算HCPS的最大可支持流速率。
根據(jù)方程(2),最大可支持流速率rHCPs選取所有簇中的最小簇流速率。 該簇流速率(方程3)為簇平均上載容量和簇首速率中的最小值。應(yīng)當(dāng)以相 似的平均上載容量將對(duì)等者劃分為簇,以避免浪費(fèi)資源。應(yīng)當(dāng)將每個(gè)對(duì)等者 的各個(gè)簇的平均上載容量的差異最小化。簇首的上載容量應(yīng)當(dāng)盡可能大。為 基礎(chǔ)層容量所分配的簇首的容量必須大于平均上載容量,以避免成為瓶頸。
進(jìn)一步地,簇首還加入頂層簇。理想地,簇首速率應(yīng)當(dāng)大于或等于2fHCPS。
期望應(yīng)當(dāng)用相對(duì)小的數(shù)目根據(jù)以上來限定簇中的對(duì)等者的數(shù)目。簇中的 對(duì)等者的數(shù)目確定對(duì)等者的輸出度(out-degree ),大尺寸的簇阻止簇恰當(dāng)?shù)?執(zhí)行最優(yōu)調(diào)度的使用。
由于對(duì)等者的動(dòng)態(tài)性,即對(duì)等者始終加入和離開系統(tǒng),應(yīng)當(dāng)動(dòng)態(tài)地調(diào)整 HCPS網(wǎng)格以具有一致的高的可支持的流速率。HCPS系統(tǒng)具有引導(dǎo)(bootstrap)節(jié)點(diǎn),該引導(dǎo)節(jié)點(diǎn)具有整個(gè)網(wǎng)絡(luò)的知識(shí)系統(tǒng)中的對(duì)等者、它 們的上載容量、網(wǎng)格拓樸(簇的成員關(guān)系(membership)及其簇首)等。引 導(dǎo)節(jié)點(diǎn)也運(yùn)行優(yōu)化器(optimizer)以解決方程(2)公式表示的最優(yōu)化問題。 同時(shí),簇首管理它所屬的簇。它的責(zé)任包括(i)基于成員對(duì)等者的上載容 量和作為簇首分配的上載容量的量來局部地執(zhí)行理想調(diào)度算法;(ii)處理局 部的對(duì)等者的離開和崩潰(crash); (iii)處理來自引導(dǎo)節(jié)點(diǎn)的指令,該指令 包括新的對(duì)等者加入簇、簇合并、簇分割和簇首的改變;(iv)維持與引導(dǎo)節(jié) 點(diǎn)的通信,周期性地向引導(dǎo)節(jié)點(diǎn)更新關(guān)于簇成員關(guān)系的信息。
圖3至圖5分別描述了新的對(duì)等者加入、對(duì)等者離開和簇重新平衡操作 的處理。
轉(zhuǎn)向圖3,示出了用于教導(dǎo)處理新的對(duì)等者加入的方法的示范實(shí)施例 300。新到達(dá)者首先聯(lián)系引導(dǎo)節(jié)點(diǎn)(305 )?;趯?duì)等者的上載容量u和當(dāng)前 的可支持流速率rHCPs來將對(duì)等者分類(310)。如果"^^m'+^則該對(duì)等者 被分類為HPeer (具有大的上載容量);如果/^" —5 <" <Zcra+3 ,則該對(duì)等 者被分類為MPeer (具有中等上載容量);否則該對(duì)等者被分類為L(zhǎng)Peer (具 有小的上載容量)。其對(duì)等者的數(shù)目不大于Nmax的所有簇適合(eligible) 接受新的對(duì)等者,其中Nmax為簇允許的節(jié)點(diǎn)的最大數(shù)目。
如果新的對(duì)等者的上載容量u比一些適合的簇首的上載容量大一容限
(margin) (315),則該對(duì)等者被指派(assign)至具有最小簇首上載容量的 簇。新的對(duì)等者將替換原有簇首,而原有簇首變?yōu)橐话銓?duì)等者并留在簇中
(320 )。
引導(dǎo)節(jié)點(diǎn)將新的對(duì)等者重新指向(redirect)至簇首,并通知簇首該新的
對(duì)等者將替換它。簇首將成員關(guān)系信息轉(zhuǎn)移至該新的對(duì)等者,并將其自身從 上層簇中取消注冊(cè)(un-register)。原有簇首從此變成一般對(duì)等者。該新的對(duì)等 者通過將其自身注冊(cè)到上層簇來?yè)?dān)任簇首的角色,并向簇中的對(duì)等者通知新 的簇首在何處。新的簇首執(zhí)行理想調(diào)度算法并運(yùn)行簇。注意該容限的值典型 地為配置參數(shù)。因?yàn)榇厥赘淖兊拈_銷(overhead)很重,所以該容限典型地 被設(shè)置為相對(duì)大的值。
如果新的對(duì)等者不替換任何簇首,則根據(jù)u的值和簇中的平均上載容量 將其指派至某簇。在對(duì)等者之間簇的指派的示范實(shí)施例中,如果對(duì)等者為 HPeer( 325 ),則將對(duì)等者指派至具有最小的平均上載容量的簇(330 );如果對(duì)等者為MPeer( 335 ),則將對(duì)等者指派至具有最小的對(duì)等者數(shù)目的蔟 (MO);如果對(duì)等者為L(zhǎng)Peer( 345 ),則將對(duì)等者指派至具有最大的平均上 載容量的簇(330)。該分配將平衡簇之間的上載資源。將新的對(duì)等者重新指 向至對(duì)應(yīng)的簇首,并且引導(dǎo)節(jié)點(diǎn)請(qǐng)求該簇首接納(admit)新的對(duì)等者。該簇 首接受新的對(duì)等者,并通知該簇中的其他對(duì)等者。在新的對(duì)等者和其他對(duì)等 者之間建立連接,并且簇首通過應(yīng)用理想調(diào)度來調(diào)整傳送速率。在所有蔟是 滿的(fbll)并且不能接受新的對(duì)等者的情況中,引導(dǎo)節(jié)點(diǎn)隨機(jī)選擇一個(gè)簇 并將其分割為兩個(gè)簇。
轉(zhuǎn)向圖4,示出了用于教導(dǎo)處理對(duì)等者離開的方法的示范實(shí)施例(400 )。 在對(duì)等者決定離開時(shí)(405 ),如果對(duì)等者為一般對(duì)等者(407),則它向簇首 通知其離開(415)。簇首從其簇成員列表上去掉(takeoff)該對(duì)等者,并向 其他對(duì)等者通知該對(duì)等者的離開(450)。然后,簇首基于理想調(diào)度重新計(jì)算 向其他對(duì)等者的發(fā)送速率。簇首還向引導(dǎo)節(jié)點(diǎn)通知該對(duì)等者的離開(460)。
在離開的對(duì)等者為簇首(407)的情況中,該對(duì)等者向引導(dǎo)節(jié)點(diǎn)通知其 離開(410)。引導(dǎo)節(jié)點(diǎn)從該簇中的現(xiàn)存對(duì)等者中選擇一個(gè)對(duì)等者作為新的簇 首(420)。然后,引導(dǎo)節(jié)點(diǎn)向所選擇的節(jié)點(diǎn)通知該節(jié)點(diǎn)將是簇首(430)。然 后,新的簇首接管簇首的功能。然后,新的簇首從其簇成員列表中去掉舊的 簇首,并向其他對(duì)等者通知該簇首的離開(450)。然后新的簇首基于理想調(diào) 度重新計(jì)算向其他對(duì)等者的發(fā)送速率。簇首還向引導(dǎo)節(jié)點(diǎn)通知該對(duì)等者的離 開(460)。
如果對(duì)等者崩潰,則對(duì)于一般對(duì)等者來說處理是相同的。簇首注意到對(duì) 等者的崩潰,并以與一般的離開相同的方式處理它。如果簇首崩潰,則該簇 中的一對(duì)等者可以通知引導(dǎo)節(jié)點(diǎn)。引導(dǎo)節(jié)點(diǎn)選擇具有最大上載容量的對(duì)等者 作為新的簇首。引導(dǎo)節(jié)點(diǎn)表現(xiàn)如同簇首,并使所選擇的對(duì)等者替代其自身變 為新的簇首。
作為對(duì)等者動(dòng)態(tài)性的結(jié)果,簇可能在簇中的對(duì)等者的數(shù)目和資源量的方 面失去平衡。轉(zhuǎn)向圖5,示出了簇的重新平衡的第一階段。在HCPS中,引 導(dǎo)節(jié)點(diǎn)周期性地嘗試使簇重新平衡。在時(shí)段(epoch)的末尾,引導(dǎo)節(jié)點(diǎn)首 先嘗試平衡簇的尺寸。將簇按簇的尺寸的降序(descending)進(jìn)行排序(sort) (510)。如果具有最大對(duì)等者數(shù)目的簇和具有最小對(duì)等者數(shù)目的簇(520) 之間的差距(gap)大于閾值-max(aATax,〃i^,其中^為平均蔟尺寸(530),則這兩個(gè)簇將被合并然后被分割為兩個(gè)平衡的簇(540)。下面分別描述合并 和分割操作。上面的處理持續(xù),直至沒有簇違反該條件(550)。然后該處理 開始如圖6中進(jìn)一步描繪的重新平衡的第二階段(560)。
現(xiàn)在轉(zhuǎn)向圖6,示出了重新平衡的第二階段(600)。在簇的重新平衡的 第二階段中,引導(dǎo)節(jié)點(diǎn)嘗試使資源平衡。按每個(gè)對(duì)等者平均上載容量的降序 對(duì)簇進(jìn)行排序(610)。如果具有最高上載容量的簇和具有最低上載容量的簇 (620 )的平均上載容量之差大于閾值版,其中為系統(tǒng)平均上載容量(630 ), 則這兩個(gè)簇將被合并然后被分割為兩個(gè)平衡的簇(640 )。
現(xiàn)在轉(zhuǎn)向圖7,示出了簇的合并處理(700)。引導(dǎo)節(jié)點(diǎn)向兩個(gè)簇首通知 合并的確定,并指示哪個(gè)簇將被合并(710)。被合并的簇首將其自身從上層 簇中取消注冊(cè)(720),并將成員列表發(fā)送至新的簇首(730)。新的簇首向新 的簇中的所有對(duì)等者通知該成員列表(740)。在對(duì)等者之間建立連接。新的 簇首還使用理想調(diào)度來重新計(jì)算發(fā)送速率。新的簇首在擴(kuò)大的簇內(nèi)執(zhí)行理想 調(diào)度(750)。
現(xiàn)在轉(zhuǎn)向圖8,示出了簇的分割處理(800)。簇分割的目的是將對(duì)等者 劃分為具有大約相似數(shù)目的對(duì)等者和每個(gè)對(duì)等者相似的平均上載容量的兩 個(gè)簇。引導(dǎo)節(jié)點(diǎn)管理整個(gè)處理。簇首按上載容量的降序?qū)?duì)等者排序(810)。 具有最大上載容量的對(duì)等者變?yōu)檎谛纬?emerge)的新簇的簇首(820)。 在下一輪(round)中,將在所排序的列表的頂部的兩個(gè)對(duì)等者從列表中取 出(830)。將具有較大上載容量的對(duì)等者指派至具有較小總計(jì)上載容量的簇 (835 ),并將具有較小上載容量的對(duì)等者指派至具有較大總計(jì)上載容量的 簇。該處理持續(xù),直至指派了所有對(duì)等者(825 )。如果在最后一輪中只有一 個(gè)對(duì)等者,則將該對(duì)等者指派至具有更多總計(jì)上載容量的簇(845 )。
一旦決定了簇成員關(guān)系,則新的簇首創(chuàng)建新的簇(850)。它將其自身注 冊(cè)到上層簇,然后向所有對(duì)等者廣播成員列表(855 )。該簇首使用理想調(diào)度 來計(jì)算向每個(gè)對(duì)等者的發(fā)送速率(860)。原有簇首也向簇中剩余的對(duì)等者通 知該新的成員列表,并計(jì)算新的發(fā)送速率。
動(dòng)態(tài)對(duì)等者管理使得HCPS能夠具有平衡成員簇的自適應(yīng)能力以便實(shí)現(xiàn) 高的流速率,這使得與其他P2P流系統(tǒng)相比,HCPS是所期望的。例如假定 一個(gè)節(jié)點(diǎn)i需要花費(fèi)ts的傳送延遲以將一個(gè)指定的數(shù)據(jù)段遞送至其他對(duì)等 者,則通過理想調(diào)度算法,頂層中的最后的對(duì)等者接收數(shù)據(jù)塊(chunk)將等待tp+Nmaxns的時(shí)間,其中tp為從服務(wù)器到節(jié)點(diǎn)i的傳播延遲。給定所 設(shè)計(jì)的小數(shù)目Nmax和傳統(tǒng)的傳播和傳送延遲, 一個(gè)簇中的延遲可以非常小。 對(duì)于兩層HCPS系統(tǒng),因?yàn)榛A(chǔ)層中的一般對(duì)等者從蔟首獲取數(shù)據(jù)的處理與 蔟首從服務(wù)器獲取數(shù)據(jù)的處理相似,所以數(shù)據(jù)塊將遇到至多兩個(gè)以上這樣的 處理以抵達(dá)系統(tǒng)的所有節(jié)點(diǎn)。
現(xiàn)在轉(zhuǎn)向圖9,示出了引導(dǎo)節(jié)點(diǎn)的架構(gòu)(900)。引導(dǎo)節(jié)點(diǎn)具有三個(gè)關(guān)4建 (key)組件(910至930)。通信接口組件負(fù)責(zé)處理對(duì)等者與引導(dǎo)節(jié)點(diǎn)之間 的輸入(incoming) /輸出(outgoing)信令(signaling )。協(xié)調(diào)組件執(zhí)行關(guān)4建 算法。這些算法包括基于前面的描述的簇重新平衡算法、對(duì)等者的加入、對(duì) 等者的離開、對(duì)等者的合并、對(duì)等者的分割等。它使用存儲(chǔ)在組件3 (930) 中的對(duì)等者相關(guān)信息和簇相關(guān)信息。它還可以基于輸入信令信息來更新組件 3 (930)。組件3 (930)為跟蹤對(duì)等者相關(guān)信息和簇相關(guān)信息的數(shù)據(jù)庫(kù)。該 信息包括但不限于對(duì)等者IP地址、對(duì)等者上載容量、對(duì)等者是否是簇首、 對(duì)等者加入哪個(gè)簇等等。
對(duì)等者節(jié)點(diǎn)的架構(gòu)(未示出)與引導(dǎo)節(jié)點(diǎn)的架構(gòu)相似。對(duì)等者也具有三 個(gè)組件。通信接口組件負(fù)責(zé)處理與其他對(duì)等者和引導(dǎo)節(jié)點(diǎn)的通信信令。協(xié)調(diào) 組件執(zhí)行關(guān)鍵算法。如果對(duì)等者為簇首,則它執(zhí)行理想調(diào)度算法,并處理成 員對(duì)等者的到達(dá)、離開/崩潰、與其他簇的簇的合并和簇的分割等等。如果對(duì) 等者為一般對(duì)等者,則它與簇首和引導(dǎo)節(jié)點(diǎn)聯(lián)系以更新其信息。它還從簇首 和引導(dǎo)節(jié)點(diǎn)接收指令以替換其他簇首。簇相關(guān)信息數(shù)據(jù)庫(kù)存儲(chǔ)屬于相同簇的 對(duì)等者的信息。
轉(zhuǎn)向圖10,示出了 HCPS系統(tǒng)的垂直擴(kuò)展(expansion)的示范實(shí)施例 1000。與其他信號(hào)層P2P流系統(tǒng)相比,HCPS能夠利用兩層結(jié)構(gòu)來支持更多 數(shù)目的對(duì)等者。垂直展開的系統(tǒng)包括第一視頻服務(wù)器1010和用于第二層簇 1051至1056的第一資源層1020、 1030??梢酝ㄟ^添加附加層來進(jìn)一步增加 對(duì)等者的數(shù)目,這在下文中被稱為垂直擴(kuò)展。第二層簇(1051至1056)中 的對(duì)等者可以作為服務(wù)器來驅(qū)動(dòng)另外的兩層HCPS系統(tǒng)。當(dāng)然,作為領(lǐng)導(dǎo) (head)下面兩層簇(1040、 1050)的對(duì)等者需要具有足夠的上載容量以在 當(dāng)前簇中貢獻(xiàn)(contributed以及作為低層簇(1057至1062)的源而貢獻(xiàn)。 利用垂直擴(kuò)展,隨著系統(tǒng)的層增加,對(duì)等者的數(shù)目成指數(shù)地增加。
權(quán)利要求
1.一種用于處理信號(hào)的方法,其包括以下步驟從多個(gè)設(shè)備接收對(duì)所述信號(hào)的多個(gè)請(qǐng)求;將所述多個(gè)設(shè)備組織為多個(gè)設(shè)備子集;將所述信號(hào)劃分為與設(shè)備子集的數(shù)目相等的所述信號(hào)的多個(gè)部分;將每個(gè)設(shè)備子集內(nèi)的單個(gè)設(shè)備指定為所述設(shè)備子集的簇首;以及向每個(gè)設(shè)備子集內(nèi)的所述簇首提供所述信號(hào)的部分。
2. 根據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟 向每個(gè)設(shè)備子集內(nèi)的每個(gè)所述簇首分配數(shù)據(jù),所述數(shù)據(jù)指示設(shè)備子集內(nèi)的其他設(shè)備。
3. 根據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟 使得每個(gè)簇首能夠向每個(gè)所述其他簇首提供它們各自所接收的信號(hào)的部分,以使每個(gè)簇首從每個(gè)其他簇首接收信號(hào)的每個(gè)部分,從而使得每個(gè)簇 首能夠生成表示該信號(hào)的重新組合的信號(hào)。
4. 根據(jù)權(quán)利要求3所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟 使得設(shè)備子集內(nèi)的每個(gè)簇首能夠?qū)⒃撔盘?hào)的重新組合的信號(hào)表示劃分為多個(gè)部分,并能夠向設(shè)備子集內(nèi)的每個(gè)其他設(shè)備提供這些部分中的一個(gè)。
5. 根據(jù)權(quán)利要求4所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟 使得設(shè)備子集內(nèi)的每個(gè)其他設(shè)備能夠向設(shè)備子集內(nèi)的每個(gè)所述其他設(shè)備提供它們各自接收的該信號(hào)的重新組合的表示的部分,以使設(shè)備子集內(nèi)的 每個(gè)其他設(shè)備從設(shè)備子集內(nèi)的每個(gè)其他設(shè)備接收該信號(hào)的重新組合的表示 的每個(gè)部分,從而使得設(shè)備子集內(nèi)的每個(gè)其他設(shè)備能夠生成表示重新組合的 信號(hào)的數(shù)據(jù)集,其中所述重新組合的信號(hào)表示所述信號(hào)。
6. 根據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟 接收向所述多個(gè)設(shè)備添加附加設(shè)備的請(qǐng)求; 響應(yīng)所述附加設(shè)備的上載容量將所述附加設(shè)備分類; 響應(yīng)所述多個(gè)設(shè)備子集的一個(gè)設(shè)備子集的平均上載容量,將所述附加設(shè)備指派至所述多個(gè)設(shè)備子集內(nèi)的所述一個(gè)設(shè)備子集。
7,根據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,進(jìn)一步包括步驟 接收從所述多個(gè)設(shè)備中移除離開的設(shè)備的請(qǐng)求;確定所述離開的設(shè)備是否是設(shè)備子集內(nèi)的簇首。從所述設(shè)備子集內(nèi)移除所述設(shè)備;以及響應(yīng)作為簇首的所述離開的設(shè)備來指定所述設(shè)備子集的另 一設(shè)備;
8.根據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟響應(yīng)每個(gè)設(shè)備子集內(nèi)的設(shè)備的數(shù)目將設(shè)備子集排序;將具有最大數(shù)目設(shè)備的設(shè)備子集與具有最小數(shù)目設(shè)備的設(shè)備子集組合為組合的設(shè)備子集;將所述組合的設(shè)備子集劃分為兩個(gè)平衡的設(shè)備子集,其中每個(gè)平衡的設(shè)備子集比另 一平衡的設(shè)備子集多具有不多于一個(gè)的設(shè)備。
9,娘據(jù)權(quán)利要求1所述的廣播信號(hào)的方法,其進(jìn)一步包括步驟響應(yīng)每個(gè)設(shè)備子集的平均上載容量將設(shè)備子集排序;將具有最大的平均上載容量的設(shè)備子集與具有最小的上載容量的設(shè)備子集組合為組合的設(shè)備子集;將所述組合的設(shè)備子集劃分為兩個(gè)平衡的設(shè)備子集,其中每個(gè)平衡的設(shè)備子集具有相似的平均上載容量。
10. —種裝置,其包括第 一接口 ,用于從多個(gè)設(shè)備接收對(duì)數(shù)據(jù)的請(qǐng)求;處理器,用于將所述多個(gè)設(shè)備組織為多個(gè)設(shè)備子集、用于將該數(shù)據(jù)劃分為與設(shè)備子集的數(shù)目相等的多個(gè)部分;以及第二接口 ,用于向每個(gè)設(shè)備子集的簇首發(fā)送該數(shù)據(jù)的部分。
11. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以響應(yīng)所指定的設(shè)備的上載容量,將所述多個(gè)設(shè)備子集的每個(gè)子集中的所述多個(gè)設(shè)備中的一個(gè)設(shè)備指定為簇首。
12. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以向每個(gè)設(shè)備子集內(nèi)的每個(gè)所述簇首分配數(shù)據(jù),所述數(shù)據(jù)指示設(shè)備子集內(nèi)的其他設(shè)備。
13. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以使得每個(gè)簇首能夠向每個(gè)所述其他簇首提供它們各自所接收的信號(hào)部分,以使每個(gè)簇首從每個(gè)其他簇首接收信號(hào)的每個(gè)部分,從而使得每個(gè)簇首能夠生成表示該信號(hào)的重新組合的信號(hào)。
14. 根據(jù)權(quán)利要求13所述的裝置,所述處理器進(jìn)一步操作以使得設(shè)備子集內(nèi)的每個(gè)簇首能夠?qū)⒃撔盘?hào)的重新組合的信號(hào)表示劃分為多個(gè)部分,并向設(shè)備子集內(nèi)的每個(gè)其他設(shè)備提供這些部分中的一個(gè)。
15. 根據(jù)權(quán)利要求14所述的裝置,所述處理器進(jìn)一步操作以使得設(shè)備子集內(nèi)的每個(gè)其他設(shè)備能夠向設(shè)備子集內(nèi)的每個(gè)所述其他設(shè)備提供它們各自接收的該信號(hào)的重新組合的表示的部分,以使設(shè)備子集內(nèi)的每個(gè)其他設(shè)備從設(shè)備子集內(nèi)的每個(gè)其他設(shè)備接收該信號(hào)的重新組合的表示的每個(gè)部分,從而使得設(shè)備子集內(nèi)的每個(gè)其他設(shè)備能夠生成表示重新組合的信號(hào)的數(shù)據(jù)集,其中所述重新組合的信號(hào)表示該信號(hào)。
16. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以接收向所述多個(gè)設(shè)備添加附加設(shè)備的請(qǐng)求;響應(yīng)所述附加設(shè)備的上載容量將所述附加設(shè)備分類;以及響應(yīng)所述多個(gè)設(shè)備子集中的一個(gè)子集的平均上載容量,將所述附加設(shè)備指派至所述多個(gè)設(shè)備子集中的所述一個(gè)子集。
17. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以接收從所述多個(gè)設(shè)備中移除離開的設(shè)備的請(qǐng)求;確定所述離開的設(shè)備是否是設(shè)備子集內(nèi)的簇首;從所述設(shè)備子集移除所述設(shè)備;以及響應(yīng)作為簇首的所述離開的設(shè)備,指定所述設(shè)備子集內(nèi)的另一設(shè)備。
18. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以響應(yīng)每個(gè)設(shè)備子集內(nèi)的設(shè)備的數(shù)目來將設(shè)備子集排序;將具有最大數(shù)目設(shè)備的設(shè)備子集與具有最小數(shù)目設(shè)備的設(shè)備子集組合為組合的設(shè)備子集;將所述組合的設(shè)備子集劃分為兩個(gè)平衡的設(shè)備子集,其中每個(gè)平衡的設(shè)備子集比另一平衡的設(shè)備子集多具有不多于一個(gè)的設(shè)備。
19. 根據(jù)權(quán)利要求10所述的裝置,所述處理器進(jìn)一步操作以響應(yīng)每個(gè)設(shè)備子集的平均上載容量來將設(shè)備子集排序;將具有最大的平均上載容量的設(shè)備子集與具有最小的上載容量的設(shè)備子集組合為組合的設(shè)備子集;將所述組合的設(shè)備子集劃分為兩個(gè)平衡的設(shè)備子集,其中每個(gè)平衡的設(shè)備子集具有相似的平均上載容量。
20. —種在網(wǎng)絡(luò)上分配信號(hào)的方法,其包括步驟將多個(gè)設(shè)備組織為第 一簇和多個(gè)第二簇,其中第 一簇中的設(shè)備的數(shù)目等于第二簇的數(shù)目;將信號(hào)劃分為與所述第 一簇中的設(shè)備的數(shù)目相等的多個(gè)部分;向所述第一簇中的每個(gè)所述設(shè)備分配信號(hào)的部分以及標(biāo)識(shí)所述多個(gè)第二簇中的一個(gè)簇的信息,以使所述第 一簇中的所述多個(gè)設(shè)備中的每一 個(gè)設(shè)備可以在所述第 一簇中的設(shè)備之間分配信號(hào)的部分,以使所述第一簇中的每個(gè)設(shè)備可以生成所述信號(hào)的第一重新組合的表示;以及以使所述第 一簇中的所述多個(gè)設(shè)備中的每一個(gè)能夠?qū)⑺鲂盘?hào)的第一重新組合的表示劃分為與多個(gè)第二簇中的一個(gè)簇中的設(shè)備的數(shù)目相等的多個(gè)部分,所述第二簇對(duì)應(yīng)于所述標(biāo)識(shí)所述多個(gè)第二簇中的一個(gè)簇的信息;以及向所述第二簇中的每個(gè)所述設(shè)備分配所述信號(hào)的所述第一重新組合的表示的部分,以使所述第二簇中的所述多個(gè)設(shè)備中的每個(gè)設(shè)備可以在所述第二簇中的設(shè)備之間分配所述信號(hào)的所述第一重新組合的表示的部分,以使所述第二簇中的每個(gè)設(shè)備可以生成所述信號(hào)的第二重新組合的表示。
全文摘要
包括被分組為簇和層級(jí)的對(duì)等者的HCPS(分層結(jié)簇的P2P流系統(tǒng))。HCPS積極地在簇之間平衡上載能力,并在每個(gè)簇中執(zhí)行最優(yōu)調(diào)度算法,以保證最優(yōu)地利用系統(tǒng)資源。HCPS包括可被用于實(shí)際應(yīng)用的、并仍然可實(shí)現(xiàn)接近理論上限的流速率的架構(gòu)。
文檔編號(hào)H04L29/08GK101637007SQ200780052263
公開日2010年1月27日 申請(qǐng)日期2007年12月14日 優(yōu)先權(quán)日2007年3月20日
發(fā)明者勇 劉, 超 梁, 陽(yáng) 郭 申請(qǐng)人:湯姆森特許公司