專利名稱:在對等網(wǎng)絡中限制存儲消息的制作方法
絡中限制存儲消息技術領域
本申請一般地涉及對等網(wǎng)絡,更具體地涉及對存儲消息的廣播泛洪(flooding) 進行限制。
背景技術:
對等網(wǎng)絡是覆蓋在另一網(wǎng)絡(在此情況中,因特網(wǎng))上的(有限量的對等設備的) 網(wǎng)絡的一個示例。在這樣的網(wǎng)絡中,通常是如下這種情況一個對等者所需的內(nèi)容片段或服 務可由該覆蓋型網(wǎng)絡中的一個以上的其它節(jié)點提供。
示例對等網(wǎng)絡可以包括基于分布式散列表(DHT)的網(wǎng)絡。DHT是一類分散化 (decentralized)的分布式系統(tǒng),這些系統(tǒng)提供類似于散列表的查找服務多個(名稱, 值)對存儲在DHT中,并且任意參與節(jié)點都能夠高效地取回(retrieve)與給定名稱相 關聯(lián)的值。維護從名稱到值的映射的責任以使得參與者集合的改變引起最少量的破壞 (disruption)的方式分布在節(jié)點之間。這有利地使得DHT可以擴大到極大量的節(jié)點并且可 以處理不間斷的節(jié)點到達、離開和失敗。DHT形成了可用于構建更復雜服務的基礎設施,所 述更復雜服務例如是分布式文件系統(tǒng)、對等文件共享和內(nèi)容分布系統(tǒng)、協(xié)作的web緩存、多 播、任意播、域名服務和即時消息傳遞。
參考附圖可以最佳地理解本發(fā)明在結構和操作二者上的細節(jié),附圖中相似標號指 示相似部分,并且其中
圖1是根據(jù)本發(fā)明原理的示例系統(tǒng)的框圖2是圖1所示系統(tǒng)的一部分的框圖3是用于PUT的示例邏輯的流程圖;以及
圖4是用于GET的示例邏輯的流程圖。
具體實施方式
概述
在此可以理解,可通過在對等化的DHT之間廣播Put (放入)和Get (取得)消息 (分別地,力圖放置數(shù)據(jù)的消息和力圖獲取數(shù)據(jù)的消息)來實現(xiàn)DHT之間的對等化(例如, 在實現(xiàn)DHT的服務提供商之間的對等化,與之形成對照的是在單個服務提供商領域內(nèi)的各 個客戶端之間的對等化)。如果所有DHT與所有其它DHT直接相連,則廣播是直接的,但是 在此可以理解,如果進行對等化的DHT之間的關系在拓撲上更加復雜,使得一些DHT不與其 它DHT直接相連(與在多個服務提供商之間的對等化的情況一樣),則泛洪Put和Get消息 可能是昂貴的。事實上,在此可進一步理解,在所有其它DHT環(huán)中復制記錄的這種要求極大 地增大了各個DHT環(huán)中通過廣播PUT而放置的記錄的數(shù)目,這不利地影響了數(shù)據(jù)庫查找等 待時間。此外,廣播GET消息導致在每一個DHT環(huán)中查找,這增大了消息傳遞開銷。考慮到這些認知,提供了以下描述。
在第一實施例中,一種裝置具有在網(wǎng)絡系統(tǒng)中的第一網(wǎng)絡中的處理器。系統(tǒng)中的 這些網(wǎng)絡并不完全彼此網(wǎng)合(mesh)。一種計算機可讀存儲介質承載指令,用以使得處理器 通過生成指示出內(nèi)容片段的存儲位置的內(nèi)容描述符來對該內(nèi)容的存儲作出響應。內(nèi)容由內(nèi) 容提供商來提供,內(nèi)容提供商僅將內(nèi)容存儲在網(wǎng)絡系統(tǒng)中的網(wǎng)絡子集中。內(nèi)容描述符僅被 發(fā)送到該網(wǎng)絡子集,而該網(wǎng)絡子集的描述符僅被公布給網(wǎng)絡系統(tǒng)中的希望網(wǎng)絡。這些希望 網(wǎng)絡由內(nèi)容提供商來限定。
在一些示例中,使用PUT來公布網(wǎng)絡子集的描述符??墒褂枚嗖UT將內(nèi)容描述 符僅發(fā)送到網(wǎng)絡子集的各個根節(jié)點。網(wǎng)絡系統(tǒng)可以是覆蓋型分布式散列表(DHT)網(wǎng)絡,并 且如果需要,僅在網(wǎng)絡子集改變時才將網(wǎng)絡子集的描述符公布給這些希望網(wǎng)絡。
在一些非限制性示例中,如果內(nèi)容提供商“b”創(chuàng)建了內(nèi)容“a”,則內(nèi)容“a”與具有 Xri://a.b形式的可擴展資源指示符(xri)相關聯(lián)。xri可以被散列化以生成內(nèi)容描述符 鍵。具體而言,可通過運算hash (xri://a. b)來生成內(nèi)容描述符鍵,其中,網(wǎng)絡子集的描述 符由通過對xri中的內(nèi)容提供商字符串進行散列化而生成的內(nèi)容提供商鍵來索引。具體而 言,可通過運算hash (xri //b)來生成網(wǎng)絡子集的內(nèi)容提供商描述符鍵。
在另一實施例中,有形的計算機可讀介質承載可由與覆蓋型網(wǎng)絡中用于從請求者 接收對來自內(nèi)容提供商的內(nèi)容的請求的節(jié)點相關聯(lián)的計算機處理器執(zhí)行的指令。響應于該 請求,內(nèi)容的可擴展資源標識符(xri)被散列化來生成內(nèi)容鍵,并且該內(nèi)容鍵被執(zhí)行GET。 如果該內(nèi)容在該節(jié)點上可得,則取回該內(nèi)容的內(nèi)容位置描述符并將其發(fā)送到請求者。否則, 生成內(nèi)容提供商標識(CPI)鍵,該CPI鍵指示出覆蓋型網(wǎng)絡中來自內(nèi)容提供商的內(nèi)容所存 儲在的存儲節(jié)點的子集。對CPI鍵執(zhí)行GET以獲得這些存儲節(jié)點的子集的標識,并將內(nèi)容 鍵的GET轉發(fā)到與這些存儲節(jié)點的子集的標識相關聯(lián)的節(jié)點。
在一些示例實施例中,指令還可使得處理器從存儲節(jié)點的子集中的至少一個節(jié)點 取回指示出要從其下載內(nèi)容的相應資源的相應內(nèi)容位置描述符。如果GET失敗,則處理器 可生成去往所有其它對等節(jié)點的廣播GET以找到內(nèi)容。如果需要,取回內(nèi)容的處理器可以 在本地DHT中公布內(nèi)容的內(nèi)容位置描述符,以指示出其自身為資源,從而允許同一DHT內(nèi)的 其它請求在本地找到內(nèi)容。
在另一實施例中,一種計算機實現(xiàn)的方法設想了將指示出來自內(nèi)容提供商的內(nèi)容 的實際存儲位置的內(nèi)容位置描述符僅放入(PUT)與內(nèi)容提供商相關聯(lián)的根分布式散列表 (DHT)。該方法包括將指示出來自內(nèi)容提供商的內(nèi)容可能存儲在的DHT環(huán)的子集的輔助鍵 (secondary key)僅放入內(nèi)容提供商希望內(nèi)容在其中可得的DHT環(huán)。當接收到對內(nèi)容的GET 時,根據(jù)內(nèi)容鍵來判斷是否可在本地提供內(nèi)容,并且如果不能,則從輔助鍵獲得與DHT環(huán)的 子集相關聯(lián)的標識信息。隨后將針對該內(nèi)容的GET轉發(fā)到相應的根DHT。
示例實施例
本文中使用了如下首字母縮寫詞和定義
自治DHT(AD)獨立于其它DHT而操作的DHT,其中,AD中的節(jié)點服務于整個DHT ID鍵空間。
對等網(wǎng)關DHT中的指定節(jié)點,該節(jié)點具有與其它AD中的一個或多個對等網(wǎng)關的 因特網(wǎng)協(xié)議(IP)連通性,并且在本地DHT和(一個或多個)對等者之間轉發(fā)Put、Get和對Get的響應。
本源或原宿DHT 內(nèi)容片段最初存儲在的DHT,其是該內(nèi)容的權威性源。
本發(fā)明的原理適用于一個或多個使用情形。例如,在一個情形中,在單個提供商內(nèi) 提供了多個自治系統(tǒng)。更具體地,出于操作的原因,單個服務提供商可以選擇將網(wǎng)絡操作為 自治系統(tǒng)(AS)的集合。各個AS可由不同的組織來運行。這些AS在路由的意義上不一定 必須是真實AS。例如,AS可以是“自治DHT”(AD)。自治DHT是形成自己的獨立DHT環(huán)并且 與在很大程度上獨立于其它AD而操作的一群節(jié)點。每一個AD有權訪問完整的DHT ID空 間,但是可以存儲或者可以不存儲其它AD中所存儲的內(nèi)容。在此情況中希望可選擇性地從 一個AD訪問位于另一個AD中的內(nèi)容。這種情形存在許多變體,例如,提供商具有一個作為 提供商的內(nèi)容的宿主(host)的AD,以及多個服務于不同區(qū)域或者不同類別的客戶(例如, 移動、DSL等)的AD。
另一使用情形是在提供商之間的對等化,其中,操作DHT的服務提供商可能希望 彼此對等化。這種情形與前一種情況的不同主要在于如下事實無法在競爭的提供商之間 假設高度協(xié)作或信任。因此,這種情形要求提供商之間適當水平的隔離和策略控制。這種 情形的變體包括一些提供商其主要功能是作為內(nèi)容的宿主,它們隨后與主要功能是將客戶 連接到內(nèi)容的提供商進行對等。其它變體可以包括一些提供商提供小型提供商與“主干”提 供商之間的連通性。在上面兩種使用情形中,提供商的圖譜都不應當被假定為具有任意特 定結構。
因此,現(xiàn)在轉向圖1,網(wǎng)絡12的系統(tǒng)10被組織成了層級,可以預期該層級在對等內(nèi) 容提供商之間發(fā)展。不應當假設嚴格的層級(在網(wǎng)絡12當中僅具有單個根,并且每一個網(wǎng) 絡是至多一個父網(wǎng)絡的子網(wǎng)絡),因為這種假設在實際情況中太有限制性。每一個網(wǎng)絡12 可以建立分布式散列表(DHT)。
如圖所示,每一個網(wǎng)絡12可以包括如圖所示的相應多個DHT存儲節(jié)點14。每一個 DHT存儲節(jié)點14可以是DHT本身或者可以是另一個如同DHT的實體,該實體盡管在內(nèi)部可 能以某種其它方式來實現(xiàn),但是仍支持DHT的Put/Get接口。在一個示例實施例中,每一個 網(wǎng)絡可以服務于完整的DHT鍵空間中的任意鍵的放入和取得。
每一個網(wǎng)絡12包括相應的網(wǎng)關節(jié)點16(下面將進一步論述),其與其它網(wǎng)絡12的 一個或多個網(wǎng)關節(jié)點通信。因此,不是所有的存儲節(jié)點14都與其它網(wǎng)絡通信;而是,僅僅各 個網(wǎng)絡12的網(wǎng)關節(jié)點16與其它網(wǎng)絡通信。通常,網(wǎng)關16執(zhí)行下面的邏輯,但是如果需要, 則網(wǎng)絡12中的節(jié)點14可以代表網(wǎng)絡執(zhí)行該邏輯的全部或一部分。
在圖1所示的示例實施例中,網(wǎng)絡12標有字母“A”- “F”,并且圖1圖示出可以不 在網(wǎng)絡12之間實現(xiàn)嚴格的自頂向下的層級。取代之,如圖所示,網(wǎng)絡“A”與網(wǎng)絡“B”和“C” 直接通信并且不與其它網(wǎng)絡直接通信,而網(wǎng)絡“B”與網(wǎng)絡“A”、“E”和“F”直接通信。網(wǎng)絡 “E”和“F”彼此直接通信。網(wǎng)絡“C”除了如上所述與網(wǎng)絡“A”直接通信之外,還與僅僅一個 其它網(wǎng)絡(即,網(wǎng)絡“D”)直接通信,而網(wǎng)絡“D”不再與其它網(wǎng)絡直接通信。
于是,現(xiàn)在可以了解,DHT之間的對等可以是選擇性的,就如同因特網(wǎng)服務提供商 之間的對等是選擇性的一樣。因此,DHT之間的對等關系的圖譜是任意的而不是完全網(wǎng)合, 因為并不是每一個DHT都與系統(tǒng)10中的每一個其它DHT直接通信,盡管系統(tǒng)中的所有DHT 都可通過其它DHT彼此間接通信。
圖2示出了一個網(wǎng)絡(在此情況中,來自圖1的網(wǎng)絡A)的簡化視圖。如圖所示, 網(wǎng)絡可以包括多個成員18 (例如,上述DHT存儲節(jié)點14之一),每一個成員18通常具有一 個或多個處理器20,處理器20訪問一個或多個計算機可讀存儲介質22,例如但不限于固態(tài) 存儲裝置和盤存儲裝置。通常,網(wǎng)絡還包括至少一個相應網(wǎng)關M (例如,上述網(wǎng)關節(jié)點16), 網(wǎng)關M具有其自身的處理器沈和計算機可讀存儲介質觀,介質觀可以包含由處理器沈 執(zhí)行的當前邏輯。邏輯的其它部分可以由網(wǎng)絡的一個或多個其它成員來實現(xiàn)。網(wǎng)絡成員18 可以包括但不限于端用戶客戶端設備、因特網(wǎng)服務器、路由器、交換機等。
起初,通過執(zhí)行PUT (鍵,值)操作來將數(shù)據(jù)存儲在DHT中;值被存儲在通常是一個 并且僅僅一個DHT存儲節(jié)點中由PUT消息的固定長度鍵字段指示的位置處。使用GET (鍵) 操作來取回數(shù)據(jù),這返回存儲在由GET消息中的鍵字段指示的位置處的值。略加詳細而言, 通過對內(nèi)容的可擴展資源標識符(xri)進行散列化以生成鍵來索引內(nèi)容。鍵的值是包含內(nèi) 容所存儲的位置(資源)的描述符。隨后可通過如下方式來定位內(nèi)容對該xri進行散列 化并且對生成的鍵執(zhí)行GET以取回描述符,然后從描述符所列出的資源下載內(nèi)容。在一些 示例實施例中,單個平坦的鍵空間由所有DHT共用,并且所有DHT都可以PUT和GET通過該 鍵空間中的鍵而索引的值。
本發(fā)明的原理認識到可擴展資源標識符(xri)通常不僅僅包含內(nèi)容的名稱,而且 包含附加信息,包括內(nèi)容提供商的標識。在此還認識到,內(nèi)容提供商的數(shù)目通常遠小于內(nèi)容 片段的數(shù)目,并且很可能內(nèi)容提供商和DHT運營商(服務提供商)將對內(nèi)容公布達成協(xié)議, 這意味著特定內(nèi)容提供商將僅在DHT環(huán)的子集并且是不會頻繁改變的子集中公布內(nèi)容。
因此,現(xiàn)在轉向圖3,不是使用廣播PUT而是使用如下所述的多播PUT來在覆蓋型 網(wǎng)絡(例如,上述的一個覆蓋型網(wǎng)絡)中公布內(nèi)容。在塊30,內(nèi)容提供商/服務提供商對內(nèi) 容的xri進行散列化以生成內(nèi)容鍵。于是,例如,由內(nèi)容提供商“b”創(chuàng)建的內(nèi)容“a”具有形 式為xri://a. b的xri,并且xri被散列化以生成內(nèi)容鍵=hash (xri //a. b)。該內(nèi)容鍵指 示出內(nèi)容位置描述符的實際存儲位置。
在塊32,對xri中嵌入的內(nèi)容提供商字符串進行散列化以生成輔助鍵,在此稱為 “內(nèi)容提供商id” (CPI)鍵=hash (xri://b)。CPI鍵為內(nèi)容提供商描述符提供索引,該內(nèi) 容提供商描述符指示出覆蓋型網(wǎng)絡中來自相應內(nèi)容提供商的內(nèi)容可能存儲在的存儲節(jié)點 (例如,DHT環(huán))的子集。作不同表述,CPI鍵利用指向內(nèi)容提供商(在上面的示例中,內(nèi)容 提供商“b”)已經(jīng)放置或者有望放置內(nèi)容的DHT的鏈接來為描述符提供索引。這些鏈接可以 是這些DHT的公知對等節(jié)點(類似于BGP中的邊界網(wǎng)關),或者它們可以是環(huán)標識。在一些 實施例中,通過CPI鍵建立的描述符對于不同DHT可以不同。例如,如果DHT“C”與DHT“B” 具有特殊的對等關系,則在DHT “C”中公布的描述符(CPI鍵)可以僅僅包含到DHT “B”的 鏈接,從而輔助基于每一個內(nèi)容提供商存在復雜的對等關系。
移至塊34,將第一鍵(內(nèi)容鍵)PUT到至少一個“根” DHT?!案?DHT的數(shù)目少于 覆蓋型網(wǎng)絡中DHT的總數(shù)目,因而在塊34處的PUT并非廣播PUT而僅僅是多播PUT。實質 上,第一(內(nèi)容)鍵被PUT到特定服務提供商在其中公布的那些DHT環(huán)的根DHT,并且僅僅 被PUT到那些根DHT。
另一方面,在塊36,將第二鍵(CPI鍵)PUT到內(nèi)容提供商希望內(nèi)容在其中可得的所 有DHT環(huán)。在此可以理解,雖然在塊36處PUT看起來是廣播PUT,但是內(nèi)容提供商在其中公布的DHT環(huán)的集合不可能頻繁地改變,因而該PUT操作僅在內(nèi)容提供商希望從其可搜索環(huán) 的列表中添加/刪除DHT環(huán)時才是必需的。
因此,由CPI鍵表示的描述符建立了供內(nèi)容提供商用來控制對其內(nèi)容的訪問的策 略機制。預期內(nèi)容提供商的數(shù)目遠小于內(nèi)容片段的數(shù)目,因而預期內(nèi)容提供商描述符的數(shù) 目將招致較小的存儲開銷。
此外,雖然每次內(nèi)容提供商公布新的內(nèi)容片段或者移動內(nèi)容片段時,需要將內(nèi)容 鍵多播PUT到內(nèi)容提供商的“根"DHT,但是在諸如該內(nèi)容提供商的“根"DHT改變之類的時間 之前,即,在諸如內(nèi)容提供商在其中公布內(nèi)容的環(huán)的列表改變之類的時間之前,不需要PUT CPI 鍵。
圖4圖示出如何使用多播GET在上述覆蓋型網(wǎng)絡中取回內(nèi)容。在塊38,DHT中處 理對內(nèi)容的請求的節(jié)點在塊40對內(nèi)容的全部公布的xri進行散列化并且對生成的內(nèi)容鍵 執(zhí)行GET。如果判定菱形塊42指示出內(nèi)容在該DHT中可得,則在塊44取回內(nèi)容的描述符。 否則(即,在判定菱形塊42處,GET失敗),邏輯流至塊46以對(根據(jù)上述原理得出的)CPI 鍵執(zhí)行GET,因而取回來自該提供商的內(nèi)容可能可得的DHT的列表。在塊48,經(jīng)由多播將對 內(nèi)容鍵的GET轉發(fā)到在塊46發(fā)現(xiàn)的“根” DHT。在塊50,取回一個或多個內(nèi)容位置描述符, 這些描述符指示出要從其下載內(nèi)容的資源,并且將這(一個或多個)描述符返回到發(fā)起GET 的節(jié)點。
于是,從根DHT取回的不是鍵而是由鍵所索引的描述符,如上所述,描述符是通過 對內(nèi)容的xri進行散列而生成的。當經(jīng)由門戶(portal)來廣告內(nèi)容時,使得xri對于作出 請求的服務節(jié)點可得。
在陳舊的CPI描述符或者對等DHT不向特定DHT提供內(nèi)容的策略的情況下,圖4中 的GET可能失敗。如果這種情況發(fā)生,則節(jié)點可借助于去往所有其它對等DHT的廣播GET, 作為查找內(nèi)容的最后嘗試。
在一些示例實現(xiàn)方式中,作為進一步的增強,取回內(nèi)容的節(jié)點隨后基于策略以其 自身作為資源在其本地DHT中公布內(nèi)容的描述符,從而允許來自同一 DHT的其它請求在本 地找到內(nèi)容并避免多播GET。所生成的這個描述符的壽命/刷新率可以取決于通過用于該 內(nèi)容提供商的描述符而強加的策略。例如,如果內(nèi)容提供商指定“單次使用”,則該本地描述 符將不被生成。
如果需要,節(jié)點不必將其DHT添加作為該內(nèi)容提供商的可能“根”,因為內(nèi)容提供 商已經(jīng)通過將其添加到內(nèi)容提供商描述中的DHT列表來完成這個動作。這消除了在從一個 DHT向另一個DHT傳遞內(nèi)容時在所有DHT中再次公布CPI描述符的需要。
在一些實施例中,可以建立CPI鍵的結構/內(nèi)容來建立對等關系、優(yōu)選順序、使用 限制和其它策略細節(jié)。例如,CPI鍵可被用來不僅建立根節(jié)點的列表,而且例如通過從最優(yōu) 選到最不優(yōu)選的順序對根節(jié)點排序來建立對于訪問由鍵表示的DHT的順序的偏好。
雖然在此示出并詳細描述了具體的“在對等網(wǎng)絡中限制存儲消息”,但是應當了 解,本公開所包含的主題僅由權利要求來限制。
權利要求
1.一種裝置,包括在網(wǎng)絡系統(tǒng)中的第一網(wǎng)絡中的處理器,所述系統(tǒng)中的網(wǎng)絡不是完全彼此網(wǎng)合; 計算機可讀存儲介質,承載了用于使得處理器執(zhí)行如下操作的指令 通過生成指示出內(nèi)容片段的存儲位置的內(nèi)容描述符來對該內(nèi)容的 存儲作出響應,所述內(nèi)容是通過內(nèi)容提供商在所述網(wǎng)絡系統(tǒng)中的網(wǎng)絡 子集中存儲內(nèi)容來提供的,所述網(wǎng)絡子集不是整個網(wǎng)絡系統(tǒng); 將所述內(nèi)容描述符僅發(fā)送到所述網(wǎng)絡子集;以及 將所述網(wǎng)絡子集的描述符僅公布到所述網(wǎng)絡系統(tǒng)中除了所述網(wǎng)絡 子集之外的希望網(wǎng)絡,所述希望網(wǎng)絡由所述內(nèi)容提供商限定。
2.根據(jù)權利要求1所述的裝置,其中,所述網(wǎng)絡子集的描述符是使用PUT來公布的。
3.根據(jù)權利要求1所述的裝置,其中,所述內(nèi)容描述符被使用多播PUT僅發(fā)送到所述網(wǎng) 絡子集中的各個根節(jié)點。
4.根據(jù)權利要求1所述的裝置,其中,所述網(wǎng)絡系統(tǒng)是覆蓋型分布式散列表(DHT)網(wǎng)
5.根據(jù)權利要求1所述的裝置,其中,所述網(wǎng)絡子集的描述符僅在所述網(wǎng)絡子集改變 時才被公布到所述希望網(wǎng)絡。
6.根據(jù)權利要求1所述的裝置,其中,如果由內(nèi)容提供商“b”創(chuàng)建了內(nèi)容“a”,則該內(nèi) 容“a”與形式為xri://a. b的可擴展資源指示符(xri)相關聯(lián),并且使用hash (xri //a. b) 對該xri進行散列以生成所述內(nèi)容描述符,所述網(wǎng)絡子集的描述符是使用hash(Xri://b) 生成的。
7.一種有形的計算機可讀介質,承載著可由與覆蓋型網(wǎng)絡中的節(jié)點相關聯(lián)的計算機處 理器執(zhí)行來進行如下操作的指令從請求者接收對來自內(nèi)容提供商的內(nèi)容的請求;對所述內(nèi)容的可擴展資源標識符(xri)進行散列以生成內(nèi)容鍵;對所述內(nèi)容鍵執(zhí)行GET;如果所述內(nèi)容在所述節(jié)點中可得,則取回所述內(nèi)容的內(nèi)容位置描述符并將該內(nèi)容位置 描述符發(fā)送到所述請求者;否則生成內(nèi)容提供商標識(CPI)鍵,該CPI鍵指示出所述覆蓋型網(wǎng)絡中來自所述內(nèi)容提供 商的內(nèi)容所存儲在的存儲節(jié)點的子集;對所述CPI鍵執(zhí)行GET以獲得所述存儲節(jié)點的子集的標識;以及將所述內(nèi)容鍵的GET轉發(fā)到與所述存儲節(jié)點的子集的標識相關聯(lián)的節(jié)點。
8.根據(jù)權利要求7所述的介質,其中,所述指令還使得所述處理器從所述存儲節(jié)點的子集中的至少一個節(jié)點取回指示出自其下載所述內(nèi)容的相應資源 的相應內(nèi)容位置描述符;以及將一個或多個所述內(nèi)容位置描述符返回到所述請求者。
9.根據(jù)權利要求8所述的介質,其中,所述覆蓋型網(wǎng)絡是DHT網(wǎng)絡。
10.根據(jù)權利要求9所述的介質,其中,所述內(nèi)容位置描述符被轉發(fā)到所述存儲節(jié)點的 子集中的根DHT。
11.根據(jù)權利要求7所述的介質,其中,如果GET失敗,則所述處理器生成去往所有其它對等節(jié)點的廣播GET以找到所述內(nèi)容位置描述符。
12.根據(jù)權利要求7所述的介質,其中,取回所述內(nèi)容的所述處理器在將自身指示為資 源的情況下在本地公布所述內(nèi)容的內(nèi)容位置描述符,從而允許來自同一請求者的其它請求 在本地找到所述內(nèi)容。
13.一種計算機實現(xiàn)的方法,包括將指示出來自內(nèi)容提供商的內(nèi)容的實際存儲位置的內(nèi)容鍵僅PUT到與該內(nèi)容提供商 相關聯(lián)的根分布式散列表(DHT);將指示出來自所述內(nèi)容提供商的內(nèi)容可能存儲在的DHT環(huán)的子集的輔助鍵僅PUT到所 述內(nèi)容提供商希望可得所述內(nèi)容的DHT環(huán);當接收到針對所述內(nèi)容的GET時,根據(jù)所述內(nèi)容鍵來判斷是否可在本地提供所述內(nèi) 容,如果不能,則從所述輔助鍵獲得與所述DHT環(huán)的子集相關聯(lián)的標識信息并將針對所述 內(nèi)容的GET轉發(fā)到相應的根DHT。
14.根據(jù)權利要求13所述的方法,其中,所述方法由DHT的網(wǎng)關組件中的處理器執(zhí)行。
15.根據(jù)權利要求13所述的方法,其中,如果GET失敗,則所述方法生成去往所有其它 對等節(jié)點的廣播GET以找到所述內(nèi)容。
16.根據(jù)權利要求13所述的方法,包括使用多播PUT來發(fā)送所述內(nèi)容鍵。
17.根據(jù)權利要求13所述的方法,包括僅在所述DHT環(huán)的子集改變時才PUT所述輔助鍵。
18.根據(jù)權利要求13所述的方法,其中,如果由內(nèi)容提供商“b”創(chuàng)建了內(nèi)容“a”,則該 內(nèi)容“a”與形式為Xri://a.b的可擴展資源指示符(xri)相關聯(lián),并且對該xri進行散列 以生成形式為hash(Xri://a.b)的內(nèi)容鍵,所述輔助鍵是通過對xri中的內(nèi)容提供商字符 串進行散列以產(chǎn)生形式為hash(Xri://b)的描述符來生成的。
19.根據(jù)權利要求13所述的方法,其中,所述輔助鍵是內(nèi)容提供商標識鍵。
20.根據(jù)權利要求13所述的方法,其中,所述內(nèi)容鍵是每次所述內(nèi)容提供商公布新的 內(nèi)容片段或者移動內(nèi)容片段時放入的。全文摘要
在不是彼此完全網(wǎng)合的DHT環(huán)的系統(tǒng)中,通過如下方式來限制PUT和GET消息的泛洪將指示出來自內(nèi)容提供商的內(nèi)容的實際存儲位置的內(nèi)容鍵僅PUT到與該內(nèi)容提供商相關聯(lián)的根DHT,并且將指示出來自該內(nèi)容提供商的內(nèi)容可能存儲在的DHT環(huán)的子集的輔助鍵僅PUT到內(nèi)容提供商希望內(nèi)容在其中可得的DHT環(huán)。當DHT接收到GET時,其首先根據(jù)內(nèi)容鍵來判斷其是否可提供內(nèi)容,如果不能,則DHT從輔助鍵獲得DHT環(huán)的子集并將對內(nèi)容鍵的GET轉發(fā)到相應的根DHT。
文檔編號H04L29/08GK102037711SQ201080001586
公開日2011年4月27日 申請日期2010年5月17日 優(yōu)先權日2009年5月18日
發(fā)明者濟寧·田, 馬尼什·巴德瓦耶 申請人:思科技術公司