專利名稱:使用多目的地路由選擇并行化對(duì)等覆蓋的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)等覆蓋網(wǎng)絡(luò),并且尤其涉及一種在覆蓋網(wǎng)絡(luò)內(nèi)使覆 蓋操作并行化的方法。
背景技術(shù):
覆蓋網(wǎng)絡(luò)是一種在另一網(wǎng)絡(luò)之上構(gòu)建的網(wǎng)絡(luò)。覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn) 可被認(rèn)為是通過(guò)邏輯鏈路連接的,每個(gè)邏輯鏈路對(duì)應(yīng)于下層網(wǎng)絡(luò)內(nèi)的 一條路徑。許多對(duì)等網(wǎng)絡(luò)都被實(shí)現(xiàn)為在因特網(wǎng)上運(yùn)行的覆蓋網(wǎng)絡(luò)。傳 統(tǒng)上,覆蓋網(wǎng)絡(luò)依賴于單播消息發(fā)送以在節(jié)點(diǎn)之間進(jìn)行通信。最近,已經(jīng)提出主機(jī)組多播進(jìn)行覆蓋消息發(fā)送操作。簡(jiǎn)而言之, 主機(jī)組多播協(xié)議創(chuàng)建組地址,并且每個(gè)路由器存儲(chǔ)活動(dòng)的每個(gè)組地址 的狀態(tài)。路由器內(nèi)的狀態(tài)隨著同時(shí)多播的組的數(shù)量增加而增加。創(chuàng)建 組存在延時(shí),并且網(wǎng)絡(luò)可具有有限數(shù)量的組地址。對(duì)于大型覆蓋網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)具有該節(jié)點(diǎn)向其發(fā)送消息的每個(gè)其 它節(jié)點(diǎn)集合的組地址是不實(shí)際的。如果每個(gè)節(jié)點(diǎn)保持覆蓋網(wǎng)絡(luò)的全部 或多個(gè)子網(wǎng)的多播地址,則由于網(wǎng)絡(luò)內(nèi)包含大量節(jié)點(diǎn),所以會(huì)存在過(guò) 大的傳輸量和路由器開(kāi)銷。另外,如果對(duì)等節(jié)點(diǎn)希望使用本地主機(jī)組多播來(lái)向一組節(jié)點(diǎn)發(fā)出并行查詢,則必須首先在路由器內(nèi)創(chuàng)建狀態(tài),并且使接收機(jī)開(kāi)始多播。 此設(shè)定增加了延時(shí),并且僅適合于多播路徑將被重用一段時(shí)間的情況。但是,在對(duì)等網(wǎng)絡(luò)中,節(jié)點(diǎn)的集合動(dòng)態(tài)變化劇烈,并且節(jié)點(diǎn)之間 的請(qǐng)求集合不可預(yù)測(cè),從而這種多播組的重用是有限的。主機(jī)組多播被設(shè)計(jì)用于較少量的非常大的接受者集合。因此,將 主機(jī)組多播用于并行化網(wǎng)絡(luò)覆蓋操作并不是個(gè)好選擇,其中在消息內(nèi) 存在許多同時(shí)的小的對(duì)等組。因此,需要在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并 行化。此部分的說(shuō)明僅僅提供了與本公開(kāi)相關(guān)的背景信息,可能不構(gòu)成 現(xiàn)有技術(shù)。發(fā)明內(nèi)容提供了一種用于在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的方法。該方法包括識(shí)別具有并行消息發(fā)送方案的覆蓋操作;確定該消息發(fā)送方案 內(nèi)的每個(gè)并行消息的目的地地址;將每個(gè)目的地地址編碼成數(shù)據(jù)分 組;以及在覆蓋網(wǎng)絡(luò)上使用多目的地、多播路由選擇協(xié)議發(fā)送該數(shù)據(jù) 分組。其它適用領(lǐng)域?qū)奈闹薪o出的說(shuō)明中顯而易見(jiàn)。應(yīng)理解,說(shuō)明和 特定示例將僅是為了說(shuō)明而不打算限制本公開(kāi)的范圍。
圖l是具有覆蓋網(wǎng)絡(luò)的示例性網(wǎng)絡(luò)配置的圖; 圖2是示出用于在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的示例性方法 的流程圖;圖3是覆蓋網(wǎng)絡(luò)的一部分的圖;圖4A-4B是示出如何用來(lái)說(shuō)明多目的地、多播路由選擇協(xié)議部 分的圖;圖5是示出Kademlia覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)查找的圖; 圖6是示出事件檢測(cè)和報(bào)告算法的圖;以及 圖7A和7B是分別示出遍歷多播樹(shù)的傳統(tǒng)方案以及所提出的依 賴于多目的地、多播路由選擇協(xié)議的消息發(fā)送方案的圖。文中所迷的附圖僅是示例性的,而不打算限制本公開(kāi)的范圍。
具體實(shí)施方式
圖l是具有覆蓋網(wǎng)絡(luò)的示例性網(wǎng)絡(luò)配置的圖。簡(jiǎn)而言之,下層網(wǎng)絡(luò)10通常包含通過(guò)多個(gè)網(wǎng)絡(luò)路由選擇設(shè)備14 (即,路由器)互聯(lián)的 多個(gè)網(wǎng)絡(luò)設(shè)備12。這些設(shè)備之間的物理網(wǎng)絡(luò)鏈路在附圖中用實(shí)線指 示。覆蓋網(wǎng)絡(luò)20在下層網(wǎng)絡(luò)IO之上構(gòu)建。覆蓋網(wǎng)絡(luò)20是在設(shè)備之 間定義的一系列邏輯鏈路,并且在附圖中用虛線指示。示例性覆蓋網(wǎng) 絡(luò)架構(gòu)包括內(nèi)容尋址網(wǎng)絡(luò)(Content Addressable Network, CAN)、 Chord、 Tapestry、 Freenet、 Gnutella和Fast Track。 4艮容易理解, 此公開(kāi)適合于其它類型的覆蓋網(wǎng)絡(luò)架構(gòu)。圖2示出用于在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的方法。首先,在 22識(shí)別合適的覆蓋操作。示例性覆蓋操作可包括但不局限于節(jié)點(diǎn)加入 覆蓋網(wǎng)絡(luò);節(jié)點(diǎn)離開(kāi)覆蓋網(wǎng)絡(luò);路由選擇表升級(jí);節(jié)點(diǎn)將路由選擇表 或路由選擇表摘錄轉(zhuǎn)發(fā)給其它節(jié)點(diǎn);節(jié)點(diǎn)與另一節(jié)點(diǎn)交換節(jié)點(diǎn)狀態(tài)和 /或覆蓋測(cè)量;節(jié)點(diǎn)向一些其它節(jié)點(diǎn)發(fā)送請(qǐng)求;以及節(jié)點(diǎn)向一些其它節(jié) 點(diǎn)公布事件。下文將進(jìn)一步說(shuō)明這些操作中的一些操作。很容易理解, 此方法應(yīng)用于具有并行消息發(fā)送方案的其它覆蓋操作(即,將至少兩 個(gè)單播消息從一個(gè)源節(jié)點(diǎn)發(fā)送到多個(gè)目的地節(jié)點(diǎn))。然后,使用多目的地、多播路由選擇在覆蓋網(wǎng)絡(luò)上發(fā)送可應(yīng)用的 消息。通常,源節(jié)點(diǎn)確定消息24的目的地列表,并且將每個(gè)目的地 地址26編碼到單個(gè)數(shù)據(jù)分組的報(bào)頭內(nèi)。在覆蓋網(wǎng)絡(luò)內(nèi),源節(jié)點(diǎn)通常 已知這種消息的目的地地址。參照?qǐng)D3,假^L節(jié)點(diǎn)A試圖向節(jié)點(diǎn)B、 C和D發(fā)送消息。節(jié)點(diǎn)A如下編碼數(shù)據(jù)分組凈艮頭[src-Adest-B C Dpayload。然后,從源節(jié)點(diǎn)發(fā)送28數(shù)據(jù)分組。繼而,允許多播的路由器將沿傳輸路徑將數(shù)據(jù)分組轉(zhuǎn)發(fā)到其目的 地。在接收到數(shù)據(jù)分組時(shí),允許多播的路由器如下處理數(shù)據(jù)分組。對(duì) 于數(shù)據(jù)分組內(nèi)的每個(gè)目的地地址,路由器執(zhí)行路由表查找以確定下一 跳。對(duì)于每個(gè)不同的下一跳,復(fù)制數(shù)據(jù)分組,然后修改目的地列表,從而每個(gè)數(shù)據(jù)分組僅包含將通過(guò)與該數(shù)據(jù)分組相關(guān)聯(lián)的下一跳被路 由到的目的地地址。最后,路由器將修改后的數(shù)據(jù)分組轉(zhuǎn)發(fā)到可應(yīng)用 的下一跳。在圖3內(nèi),路由器Rl將具有目的地列表[B C D的單個(gè)數(shù)據(jù)分組 轉(zhuǎn)發(fā)到路由器R2。當(dāng)路由器R2接收到該數(shù)據(jù)分組時(shí),其將該數(shù)據(jù)分 組的一個(gè)拷貝發(fā)送給路由器R4,并且將該數(shù)據(jù)分組的一個(gè)拷貝發(fā)送 給路由器R5。被發(fā)送給路由器R4的數(shù)據(jù)分組具有修改后的目的地列 表B。另一方面,被發(fā)送給路由器R5的數(shù)據(jù)分組將具有修改后的目 的地列表[C D。此數(shù)據(jù)分組將被路由器R5和R6轉(zhuǎn)發(fā)直到其到達(dá)路 由器R7。在路由器R7,數(shù)據(jù)分組將再次被分割到兩個(gè)數(shù)據(jù)分組內(nèi), 每個(gè)分組分別具有目的地C和D。很容易理解,具有單個(gè)目的地的數(shù) 據(jù)分組將沿它們的剩余路由被單播。顯式多播(Xcast)協(xié)議是一個(gè)示例性的多目的地、多播路由選 擇協(xié)議。Xcast協(xié)議的其它細(xì)節(jié)可在通過(guò)引用合并于此的、互聯(lián)網(wǎng)工 程任務(wù)組發(fā)布的Explicit Multicast Basic Specification內(nèi)找到。但是, 很容易理解,其它多目的地、多播路由選擇協(xié)議也在此公開(kāi)的范圍內(nèi)。在一個(gè)示例性實(shí)施例中,多目的地、多播路由選擇協(xié)議在源節(jié)點(diǎn) 的應(yīng)用層實(shí)現(xiàn)。換句話說(shuō),執(zhí)行覆蓋操作的應(yīng)用識(shí)別具有并行消息發(fā) 送方案的那些操作,并且相應(yīng)地傳送消息。在另一個(gè)示例性實(shí)施例中,每個(gè)對(duì)等端Pj具有隊(duì)列Q,該隊(duì)列 具有待發(fā)送的待處理消息。隊(duì)列內(nèi)的消息可以是單播消息或多播消 息。多播消息可由在對(duì)等端內(nèi)實(shí)現(xiàn)的覆蓋操作直接添加,或者可由在 Q的內(nèi)容的預(yù)先處理期間組合消息得到。在Q中添加單播消息之后,對(duì)等端檢查Q并且可組合單播消息 集合u以產(chǎn)生給組gk的多播消息mk,其中mk包含單播消息的內(nèi)容, PjEgk, |gk|=|u|+l,并且gkEFi,其中pj是給定對(duì)等端而Fi是大小i=2, 3, ..., n的覆蓋內(nèi)的對(duì)等端集合的所有組合的集合。對(duì)等端可從隊(duì)列 中除掉一個(gè)或多個(gè)消息,組合其它單播/多播消息,和/或等待其它消息。對(duì)等端用于將任何消息的最大排隊(duì)延遲保持為低于閾值dq。其它防止多播消息的準(zhǔn)則包括使分組達(dá)到其凈荷的大小限度;使分組達(dá) 到其目的地地址列表的大小限度;使分組達(dá)到與構(gòu)造、存儲(chǔ)、接收和 處理該分組所需的時(shí)間或?qū)Φ榷速Y源有關(guān)的處理限度;使分組達(dá)到與 消息在被傳送之前可在隊(duì)列內(nèi)保持多久相關(guān)的時(shí)間延遲;或者將消息 的內(nèi)容組合成完全重疊、部分重疊或無(wú)重疊的多播消息(重疊越多, 使用多播時(shí)的效率增益就越高)。假設(shè)對(duì)等端同意將單播消息組合成多播消息以及從多播消息中 提取單播消息的規(guī)則。假設(shè)用于q以組合消息的判定準(zhǔn)則考慮到多播對(duì)網(wǎng)絡(luò)效率的好處與組合的單播消息的內(nèi)容的重疊量成比例。多播路由選擇為覆蓋設(shè)計(jì)者提供效率和并發(fā)性。但是,首先用于 組數(shù)的多播算法的可伸縮性必需滿足覆蓋的可伸縮性需求。如果C是 支持此覆蓋的同時(shí)多播組狀態(tài)的網(wǎng)絡(luò)的容量,則NdC。同樣,如果 v是最大的組大小,則lgmax卜v。其次,組形成的覆蓋速率r以及組成 員關(guān)系改變可由多播機(jī)制實(shí)現(xiàn)。創(chuàng)建新的多播組的時(shí)間tc<dq。此方法假設(shè)下層網(wǎng)絡(luò)采用允許多播的路由器。在許多情況下,這 是有效的假設(shè)。在其它情況下,僅僅下層網(wǎng)絡(luò)內(nèi)的路由器的子集是允 許多播的。在這些情況下,允許多播的路由器使用特殊隧道連接在它 們之間傳送數(shù)據(jù)分組。在另外的情況中,下層網(wǎng)絡(luò)沒(méi)有提供任何允許多播的路由器。在 這些情況下,可在下層網(wǎng)絡(luò)內(nèi)在其它路由器附近部署專用計(jì)算機(jī)。這 些計(jì)算機(jī)將配置成實(shí)現(xiàn)上述路由選擇協(xié)議,從而形成邏輯多播骨干 網(wǎng)。希望發(fā)送多播分組的源節(jié)點(diǎn)將該分組發(fā)送給邏輯多播骨干網(wǎng)內(nèi)最 近的計(jì)算機(jī),該計(jì)算機(jī)繼而在邏輯多播骨干網(wǎng)上將分組路由到其目的 地。下文將進(jìn)一步說(shuō)明此方法如何應(yīng)用于具體的覆蓋操作。圖4A示 出示例性覆蓋網(wǎng)絡(luò)的當(dāng)前狀態(tài)。但是,由于對(duì)等環(huán)境趨向?yàn)槭莿?dòng)態(tài)的, 所以如圖4B所示,節(jié)點(diǎn)42可加入該網(wǎng)絡(luò)而另一個(gè)節(jié)點(diǎn)44可離開(kāi)該 網(wǎng)絡(luò)。為此,進(jìn)入或離開(kāi)的節(jié)點(diǎn)必須將其狀態(tài)改變傳遞給網(wǎng)絡(luò)內(nèi)的其 它節(jié)點(diǎn)。例如,進(jìn)入節(jié)點(diǎn)可如圖4C所示將請(qǐng)求消息單播給網(wǎng)絡(luò)內(nèi)的多個(gè)節(jié)點(diǎn)。進(jìn)入節(jié)點(diǎn)可如圖4D所示使用多目的地、多播路由選擇發(fā) 送單個(gè)分組而不是發(fā)送多個(gè)單播消息。可理解,不同類型的覆蓋網(wǎng)絡(luò) 采用不同的消息發(fā)送方案以便在節(jié)點(diǎn)之間通信。但是,這些類型的覆 蓋操作尤其適合于上述方式的并行化。Kademlia是多跳躍覆蓋,依賴于其對(duì)稱距離度量(XOR函數(shù)), 其能夠發(fā)出對(duì)其路由選擇表保持、查找和輸入的并行請(qǐng)求。在節(jié)點(diǎn)查 找期間,對(duì)等端計(jì)算到節(jié)點(diǎn)的XOR距離,查看對(duì)應(yīng)的k-桶(bucket) 以選擇其已經(jīng)知道的a-最近節(jié)點(diǎn),并且向這些對(duì)等端傳送并行請(qǐng)求。 響應(yīng)返回較進(jìn)的節(jié)點(diǎn)。Kademlia重復(fù)向a-最近節(jié)點(diǎn)發(fā)送額外的并行 請(qǐng)求,直到其接收到來(lái)自其已看到的k-最近節(jié)點(diǎn)的響應(yīng)。a的典型值 是3。圖5示出在110 k-桶內(nèi)的節(jié)點(diǎn)的節(jié)點(diǎn)查找。對(duì)于160-位地址空 間,將有多達(dá)160個(gè)桶。其它Kademlia操作包括DHT存儲(chǔ)、DHT刷新和DHT查找, 其利用節(jié)點(diǎn)查找。Kademlia對(duì)等端對(duì)于給定桶內(nèi)的節(jié)點(diǎn)查找進(jìn)行至 少k/a次迭代。對(duì)于k=20而a=3,這是對(duì)7個(gè)多播組的三向查詢。對(duì) 于160個(gè)桶,每個(gè)對(duì)等端將需要至少160個(gè)組來(lái)對(duì)其地址空間進(jìn)行查 詢。如果多播查詢是a向的,貝'〗Chuang-Sirbu伸縮法則估計(jì)使用多 目的地、多播路由選擇可有18%的節(jié)省,并且如果查詢是k-向的, k=20,則盡管響應(yīng)被單播,Chuang-Sirbu伸縮法仍估計(jì)可由上述方 式的多播Kademlia請(qǐng)求得到42%的節(jié)省。Meridian是測(cè)量值覆蓋,其中使用距覆蓋網(wǎng)內(nèi)的其它節(jié)點(diǎn)的相 對(duì)距離求解覆蓋查找,象最近節(jié)點(diǎn)發(fā)現(xiàn)以及中心領(lǐng)袖選擇。每個(gè)對(duì)等 端將其相鄰節(jié)點(diǎn)組織成一組同心環(huán),每個(gè)環(huán)包含k-O (logN)個(gè)主條 目和I個(gè)副條目。在N-2500節(jié)點(diǎn)的仿真中,k-16,環(huán)數(shù)i*=9。 Meridian 使用散播(gossip)協(xié)議在覆蓋網(wǎng)內(nèi)傳播成員關(guān)系變化。在散播期間, 消息被發(fā)送給其每個(gè)環(huán)內(nèi)隨機(jī)選擇的節(jié)點(diǎn)。消息包含從其每個(gè)環(huán)內(nèi)隨 機(jī)選擇的一個(gè)節(jié)點(diǎn)。可以以上述方式使用單個(gè)i*向消息將單播散播消 息多播給1*個(gè)目的地。在EpiChord內(nèi),對(duì)等端保持全路由選擇表,并且與多跳躍覆蓋的O (logN)跳性能相比,接近DHT操作上的1跳性能,而代價(jià)是 路由選擇表的更新和存儲(chǔ)增加。當(dāng)EpiChord對(duì)等端加入覆蓋網(wǎng)時(shí), 該對(duì)等端通過(guò)獲得前驅(qū)和后繼對(duì)等端的路由選擇表的拷貝而被初始 化。此后,當(dāng)存在來(lái)自不在路由選擇表內(nèi)的對(duì)等端的請(qǐng)求時(shí)對(duì)等端添 加新條目,并且除去被認(rèn)為不再活動(dòng)的條目。如果與查找在路由選擇 表內(nèi)增加新條目的速率相比流動(dòng)速率(Churn Rate)足夠高,則對(duì)等端 將探測(cè)消息發(fā)送給被稱為片段(slice)的地址空間的各部分。隨著地址 范圍移動(dòng)遠(yuǎn)離當(dāng)前對(duì)等端的位置,按指數(shù)增加的大小組織片段。這導(dǎo) 致路由選擇表?xiàng)l目集中在該對(duì)等端周圍,而這提高了路由選擇的收斂 性。為了提高查找成功率,EpiChord使用針對(duì)最接近該節(jié)點(diǎn)的對(duì)等 端的p-向請(qǐng)求。在高流動(dòng)期間,對(duì)等端在其路由選擇表的每個(gè)片段內(nèi) 保持至少兩個(gè)活動(dòng)條目。當(dāng)片段內(nèi)的條目數(shù)低于2時(shí),對(duì)等端向片段 內(nèi)的id發(fā)出并行查找消息??墒褂枚嗄康牡?、多播路由選擇按上述方 式發(fā)送這些并行查找消息。這些查找的響應(yīng)用于在路由選擇表的片段 內(nèi)增加條目。除了基于每個(gè)對(duì)等端的可用帶寬預(yù)算保持傳輸量之外, Accordion類似于EpiChord。 Accordion使用遞歸并行查找以便保持 覆蓋網(wǎng)中的其相鄰的路由選擇表?xiàng)l目最新,并且減小過(guò)期的可能性。 請(qǐng)求查找的對(duì)等端基于關(guān)鍵字選擇目的地,并且在其路由選擇表內(nèi)形 成間隙(gap)。對(duì)被轉(zhuǎn)發(fā)的查找的響應(yīng)包含這些路由選擇表間隙的條 目。在對(duì)等端的帶寬預(yù)算內(nèi)的過(guò)大帶寬用于并行探索查找以獲得對(duì)等 端的路由選擇表內(nèi)的最大伸縮間隙的路由選擇表?xiàng)l目。并行化的程度 基于查找傳輸量和帶寬預(yù)算的等級(jí)被動(dòng)態(tài)調(diào)整,直到最高配置,例如 6向。用多目的地查找代替Accordion的p-向轉(zhuǎn)發(fā)和探索查找可使邊 緣傳輸量減少(p-l)/2p;例如p-5,意味著在邊緣上減少40%。對(duì) 于固定帶寬預(yù)算,這意味著對(duì)等端可使其探索速率增加2.5倍,大大 提高了路由選擇表的精確性。可選擇地,對(duì)于較低的帶寬預(yù)算,對(duì)等D1HT是單跳覆蓋,其定義了覆蓋保持算法EDRA (事件檢測(cè)及 報(bào)告算法),其中事件是任何加入/離開(kāi)行為。EDRA在對(duì)數(shù)時(shí)間內(nèi)在 系統(tǒng)中傳播所有事件。如圖6所示,每個(gè)加入/離開(kāi)事件在相對(duì)位置log2 (0 )到log2 ( n )被轉(zhuǎn)發(fā)給log2 ( x )個(gè)后繼對(duì)等端。下列傳統(tǒng)的符號(hào), 0是對(duì)等端向在環(huán)內(nèi)的其后繼者傳播事件的間隔,并且p-「logl是對(duì) 等端在該間隔內(nèi)發(fā)送的消息的最大數(shù)量。被傳播的事件是從最后一個(gè) 亊件消息開(kāi)始被直接接收的那些事件以及從前驅(qū)者接收的那些事件。 每個(gè)消息具有生存時(shí)間(TTL)并且被確認(rèn)。如果不存在將要報(bào)告的 事件,則僅發(fā)送TTL-O的消息。在任何間隔0內(nèi),對(duì)等端發(fā)送包含其當(dāng)前事件的至多plog,個(gè)消息。每個(gè)消息包含相同事件集合,但是具有在范圍0…p)內(nèi)的不同 TTL。用包含該事件集合和對(duì)等端,TTL對(duì)列表的p-向多目的地分 組代替p個(gè)單播消息。每個(gè)接收該消息的對(duì)等端從該列表中提取出其 TTL。在大小n-10A6時(shí),Chuang-Sirbu伸縮法則估計(jì)實(shí)現(xiàn)41.6%的 消息減少節(jié)省(p=20)。在大小11=10"時(shí),Chuang-Sirbu估計(jì)實(shí)現(xiàn) 34%的節(jié)省(p-10)。已經(jīng)示出,已顯示Random walk (隨機(jī)游動(dòng))是在被表示為冪 律曲線圖的無(wú)結(jié)構(gòu)拓樸內(nèi)的最有效的搜索技術(shù)。在隨機(jī)游動(dòng)內(nèi),如果 不能在本地匹配輸入查詢,則除了從其接收到請(qǐng)求的鄰居之外,該請(qǐng) 求被轉(zhuǎn)發(fā)給隨機(jī)選擇的鄰居,使用隨機(jī)游走的系統(tǒng)包括Gia和LMS。 多目的地、多播路由選擇可用于并行隨機(jī)游走內(nèi)的初始節(jié)點(diǎn)以減小邊 緣傳輸量以及一些內(nèi)部傳輸量。其還可用于隨后的跳中。一些對(duì)等覆蓋支持一種應(yīng)用層多播,其中覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)將數(shù) 據(jù)分組轉(zhuǎn)發(fā)給多播樹(shù)內(nèi)的子節(jié)點(diǎn)。多播樹(shù)定義了覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)之 間的數(shù)據(jù)路徑。多播樹(shù)是通過(guò)考慮節(jié)點(diǎn)的入度(in-degree)和出度 (out-degree)的約束形成的。由于節(jié)點(diǎn)通常使用單播鏈路來(lái)連接父和子 節(jié)點(diǎn),所以每個(gè)鏈路使用節(jié)點(diǎn)的網(wǎng)絡(luò)接口上的帶寬。為了容納在每個(gè) 節(jié)點(diǎn)處允許的有限分支因數(shù),通常增加樹(shù)中的路徑長(zhǎng)度,這導(dǎo)致更長(zhǎng) 的端對(duì)端等待時(shí)間。在本領(lǐng)域內(nèi)已知多種用于構(gòu)造和保持這些類型的多播樹(shù)的協(xié)議。提出了一種使用多目的地、多播路由選擇協(xié)議在多播樹(shù)內(nèi)的節(jié)點(diǎn) 之間傳送數(shù)據(jù)分組的新消息發(fā)送方法。為此,覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)配置 成根據(jù)多目的地、多播路由選擇協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)分組。然后,使用多目的地、多播路由選擇協(xié)議根據(jù)多播樹(shù)在節(jié)點(diǎn)之間傳送數(shù)據(jù)分組。圖7A 和7B給出了傳統(tǒng)方案和新提出的消息發(fā)送方案之間的比較。在圖7A 內(nèi),使用傳統(tǒng)的單播方法發(fā)送數(shù)據(jù)分組;而在圖7B內(nèi),使用多目的 地、多播路由選擇協(xié)議發(fā)送數(shù)據(jù)分組。因此,在單個(gè)序列的多目的地 尋址的分組內(nèi)攜帶到節(jié)點(diǎn)上的許多外出鏈路的內(nèi)容。通常,多目的地 路由選擇節(jié)點(diǎn)的出度非常高,這導(dǎo)致與傳統(tǒng)方法相比等待時(shí)間更低的 多播樹(shù)。另外,多目的地、多播路由選擇的這種集中意味著多目的地路由 選擇的大小限度可被克服。假設(shè)多目的地分組局限于最大50個(gè)目的 地,并且每個(gè)節(jié)點(diǎn)局限于假定C個(gè)連接。但是,我們可形成數(shù)百萬(wàn)個(gè) 節(jié)點(diǎn)的覆蓋樹(shù),其中每個(gè)節(jié)點(diǎn)連接到至多<:*50個(gè)外出節(jié)點(diǎn)。接收單 個(gè)進(jìn)入分組的每個(gè)節(jié)點(diǎn)使用對(duì)應(yīng)于該節(jié)點(diǎn)的相鄰節(jié)點(diǎn)的地址集合轉(zhuǎn) 發(fā)該進(jìn)入分組。樹(shù)的根可連接到C*50個(gè)子節(jié)點(diǎn)。其中的每個(gè)節(jié)點(diǎn)繼 而可使用單獨(dú)的多目的地分組連接到至多C*50個(gè)子節(jié)點(diǎn)。在樹(shù)的第 三層,可能的扇出(fanout)為(C*50) A3。如果C=2,則在高度為3 的樹(shù)中,存在10A6個(gè)可尋址節(jié)點(diǎn)。在再一個(gè)示例中, 一些分布式散列表(DHT)支持基于位置的 搜索。例如,應(yīng)用可搜索與特定位置(例如綿度-經(jīng)度位置)相關(guān)的服 務(wù)或信息。網(wǎng)格常被用于使多個(gè)位置與單個(gè)標(biāo)識(shí)符相關(guān)聯(lián)。對(duì)于特定 位置,參考網(wǎng)格以找到距該位置最近的網(wǎng)格點(diǎn)。該網(wǎng)格點(diǎn)的位置數(shù)據(jù) (例如,郵件地址,郵政編碼,綿度-經(jīng)度位置等)然后被用作訪問(wèn) DHT的關(guān)鍵字。在一些情況下,網(wǎng)格上的多個(gè)點(diǎn)被并行查詢。例如, 如果希望在比單個(gè)網(wǎng)格點(diǎn)大的區(qū)域內(nèi)搜索服務(wù),則可查詢給定區(qū)域內(nèi) 的臨近網(wǎng)格點(diǎn)。提出使用多目的地、多播路由選擇協(xié)議,而不是向每 個(gè)網(wǎng)格點(diǎn)發(fā)送單播消息,來(lái)查詢一組相鄰的網(wǎng)格點(diǎn)。此技術(shù)尤其適合于定位服務(wù)發(fā)現(xiàn)機(jī)制。任何類型的服務(wù)發(fā)現(xiàn)機(jī)制 可支持用于發(fā)現(xiàn)、廣告和調(diào)用的特定協(xié)議。其還支持特定的服務(wù)描述 格式和語(yǔ)義。服務(wù)發(fā)現(xiàn)機(jī)制可在網(wǎng)絡(luò)管理域內(nèi)被管理,并且可具有定義其協(xié)議和格式的類型。示例性類型包括SLP、 UDDI和LDAP???設(shè)想,DHT可用于在對(duì)等環(huán)境內(nèi)定位所關(guān)心的服務(wù)發(fā)現(xiàn)機(jī)制。關(guān)于此 技術(shù)的其它細(xì)節(jié)可在2005年9月8日申請(qǐng)的美國(guó)臨時(shí)專利申請(qǐng)No. 60/715,388內(nèi)找到,該專利申請(qǐng)通過(guò)引用合并于此。標(biāo)識(shí)符的非空集合可被級(jí)聯(lián)并且用作DHT的輸入。將每個(gè)這樣 的關(guān)鍵字和對(duì)服務(wù)發(fā)現(xiàn)機(jī)制的引用插入該DHT內(nèi)。對(duì)DHT的引用可 以是服務(wù)發(fā)現(xiàn)機(jī)制及其存取方法、URI或用于與服務(wù)發(fā)現(xiàn)機(jī)制通信的 軟件接口的描述。對(duì)于給定的服務(wù)發(fā)現(xiàn)機(jī)制,可在DHT內(nèi)插入多于一個(gè)的關(guān)鍵字,從而支持搜索機(jī)制的不同方式。實(shí)際上,標(biāo)識(shí)符可被 分段,并且將每個(gè)分段單獨(dú)插入該DHT內(nèi)。這在一些基于DHT的系 統(tǒng)內(nèi)支持通配符(wild card)和全文檢索查找。服務(wù)發(fā)現(xiàn)機(jī)制還具有其它屬性,例如域的位置或者域管理的服務(wù) 的位置。在這些情況下,DHT的基于位置的搜索可用于定位合適的服 務(wù)發(fā)現(xiàn)機(jī)制??扇缟纤鍪褂枚嗄康牡亍⒍嗖ヂ酚蛇x擇協(xié)議查詢?cè)谒?關(guān)心位置附近的多個(gè)網(wǎng)格點(diǎn)。這樣,對(duì)等端可基于位置發(fā)現(xiàn)服務(wù)發(fā)現(xiàn) 機(jī)制。另外,上文僅說(shuō)明了一些示例性覆蓋操作。容易理解,上述的多 目的地、多播路由選擇協(xié)議可應(yīng)用于具有并行消息發(fā)送方案的其它覆 蓋操作。上文的說(shuō)明本質(zhì)上僅是示例性的而不是打算限制本公開(kāi)、應(yīng) 用或^f吏用。
權(quán)利要求
1.一種在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的方法,包括識(shí)別具有并行消息發(fā)送方案的覆蓋操作;確定該消息發(fā)送方案內(nèi)每個(gè)消息的目的地地址;形成具有每個(gè)目的地地址的數(shù)據(jù)分組;以及使用多目的地、多播路由選擇協(xié)議在該覆蓋網(wǎng)絡(luò)上傳送該數(shù)據(jù)分組。
2. 根據(jù)權(quán)利要求1的方法,還包括根據(jù)顯式多播(Xcast) 協(xié)議傳送該數(shù)據(jù)分組。
3. 根據(jù)權(quán)利要求l的方法,還包括在路由選擇設(shè)備處接收該 數(shù)據(jù)分組,以及使用多目的地、多播路由選擇協(xié)議轉(zhuǎn)發(fā)該數(shù)據(jù)分組。
4. 根據(jù)權(quán)利要求3的方法,其中轉(zhuǎn)發(fā)該數(shù)據(jù)分組還包括 識(shí)別該數(shù)據(jù)分組內(nèi)的每個(gè)目的地地址的下一跳; 為每個(gè)所識(shí)別的下一跳復(fù)制該數(shù)據(jù)分組; 修改每個(gè)數(shù)據(jù)分組內(nèi)列出的目的地地址,從而每個(gè)數(shù)據(jù)分組僅包含要通過(guò)與該數(shù)據(jù)分組相關(guān)聯(lián)的該下一跳被路由到的目的地地址;以 及將每個(gè)修改后的數(shù)據(jù)分組轉(zhuǎn)發(fā)給可用的下一跳。
5. 根據(jù)權(quán)利要求l的方法,還包括 在該覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)處定義外出消息隊(duì)列; 向該隊(duì)列添加與覆蓋操作相關(guān)聯(lián)的消息;識(shí)別該隊(duì)列內(nèi)的、在該覆蓋網(wǎng)絡(luò)內(nèi)具有不同的目的地但是包含重 疊內(nèi)容的消息;在通過(guò)該覆蓋網(wǎng)絡(luò)傳送該數(shù)據(jù)分組之前,將所識(shí)別的消息組合成 單個(gè)數(shù)據(jù)分組。
6. 根據(jù)權(quán)利要求5的方法,其中組合所識(shí)別的消息還包括將 不同目的地中的每一個(gè)的目的地地址形成到該數(shù)據(jù)分組的報(bào)頭中。
7. —種用于在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的方法,包括在該覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)處定義外出消息隊(duì)列; 向該隊(duì)列添加消息;識(shí)別該隊(duì)列內(nèi)的、在該覆蓋網(wǎng)絡(luò)內(nèi)具有不同目的地但是包含重疊 內(nèi)容的消息;將所識(shí)別的消息組合成單個(gè)多播數(shù)據(jù)分組;以及使用多目的地、多播路由選擇協(xié)議從該節(jié)點(diǎn)傳送該多播數(shù)據(jù)分組。
8. 根據(jù)權(quán)利要求7的方法,其中組合所識(shí)別的消息還包括將 該不同目的地中的每一個(gè)的目的地地址編碼到該數(shù)據(jù)分組的報(bào)頭內(nèi)。
9. 根據(jù)權(quán)利要求8的方法,還包括除非目的地地址的列表超 過(guò)大小限度,否則組合所識(shí)別的消息。
10. 根據(jù)權(quán)利要求7的方法,還包括除非該數(shù)據(jù)分組的凈荷超 過(guò)大小限度,否則組合所識(shí)別的消息。
11. 根據(jù)權(quán)利要求7的方法,還包括當(dāng)超過(guò)與隊(duì)列內(nèi)的消息相 關(guān)聯(lián)的最大排隊(duì)延時(shí)度量時(shí),使用單播路由選擇協(xié)議傳送該消息。
12. 根據(jù)權(quán)利要求7的方法,還包括使用單播路由選擇協(xié)議傳 送不包含重疊內(nèi)容的消息。
13. 根據(jù)權(quán)利要求7的方法,還包括根據(jù)顯式多播(Xcast) 協(xié)議傳送該數(shù)據(jù)分組。
14. 一種覆蓋網(wǎng)絡(luò)的消息發(fā)送方案,包括該覆蓋網(wǎng)絡(luò)內(nèi)的主機(jī)節(jié)點(diǎn),可操作來(lái)執(zhí)行至少 一個(gè)具有并行消息 的覆蓋操作,其中該主機(jī)節(jié)點(diǎn)確定每個(gè)并行消息的目的地地址,將每 個(gè)目的地地址編碼到單個(gè)數(shù)據(jù)分組內(nèi),并且使用多目的地、多播路由 選擇協(xié)議傳送該數(shù)據(jù)分組;以及位于下層網(wǎng)絡(luò)內(nèi)的多個(gè)路由器,可操作來(lái)根據(jù)該多目的地、多播 路由選擇協(xié)議將該數(shù)據(jù)分組轉(zhuǎn)發(fā)給每個(gè)目的地地址。
15. 根據(jù)權(quán)利要求14的消息發(fā)送方案,其中每個(gè)路由器適于接 收該數(shù)據(jù)分組,并且可操作來(lái)識(shí)別該數(shù)據(jù)分組內(nèi)的每個(gè)目的地地址的 下一跳,為每個(gè)所識(shí)別的下一跳復(fù)制該數(shù)據(jù)分組,修改每個(gè)數(shù)據(jù)分組內(nèi)列出的目的地地址以便每個(gè)數(shù)據(jù)分組僅包含將通過(guò)與該數(shù)據(jù)分組 相關(guān)聯(lián)的下一跳被路由到的目的地地址,并且將每個(gè)修改后的數(shù)據(jù)分 組轉(zhuǎn)發(fā)給可用的下一跳。
16. 根據(jù)權(quán)利要求14的消息發(fā)送方案,其中該多目的地、多播 路由選擇協(xié)議還被定義為顯式多播(Xcast)協(xié)議。
17. —種用于具有多個(gè)節(jié)點(diǎn)的覆蓋網(wǎng)絡(luò)的消息發(fā)送方案,包括 保持分級(jí)樹(shù)結(jié)構(gòu),該分級(jí)樹(shù)結(jié)構(gòu)定義了在該覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)之間的數(shù)據(jù)路徑;配置該覆蓋網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)以根據(jù)多目的地、多播路由選擇協(xié)議轉(zhuǎn) 發(fā)數(shù)據(jù)分組;以及使用該多目的地、多播路由選擇協(xié)議,根據(jù)該分級(jí)樹(shù)結(jié)構(gòu)在節(jié)點(diǎn) 之間傳送數(shù)據(jù)分組。
18. 根據(jù)權(quán)利要求17的消息發(fā)送方案,其中該多目的地、多播 路由選擇協(xié)議還被定義為顯式多播(Xcast)協(xié)議。
全文摘要
提供了一種用于在覆蓋網(wǎng)絡(luò)內(nèi)使覆蓋操作并行化的方法。該方法包括識(shí)別具有并行消息發(fā)送方案的覆蓋操作;確定該消息發(fā)送方案內(nèi)每個(gè)消息的目的地地址;將每個(gè)目的地地址編碼到數(shù)據(jù)分組中;以及使用多目的地、多播路由選擇協(xié)議在該覆蓋網(wǎng)絡(luò)上傳送該數(shù)據(jù)分組。
文檔編號(hào)G06F15/173GK101273346SQ200680032825
公開(kāi)日2008年9月24日 申請(qǐng)日期2006年9月8日 優(yōu)先權(quán)日2005年9月8日
發(fā)明者J·比福德 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社