專利名稱:安全的對等高速緩存共享的制作方法
安全的對等高速緩存共享 背景
由于經濟全球化,許多企業(yè)經營總公司以及許多被稱為分公司的遠程
公司。為在企業(yè)的所有公司之間提供網絡連接,通常利用廣域網("WAN")。 WAN是覆蓋廣闊的地理區(qū)域的計算機網絡,且其可以包括在不同的地理位 置操作的許多計算機。例如,以西半球為基礎的公司可以利用WAN來向 位于東半球的分公司提供連接。
世界上企業(yè)的大部分信息技術("IT")預算被花費在建立和維護分 公司中的技術及其網絡連接上。具體地,這些預算中的大部分被花費在購 買和維護到分公司的WAN鏈路上。全球支付的公司的趨勢預期將增加企 業(yè)對WAN的使用以及相關聯(lián)的成本。結果,改進WAN利用以降低WAN 維護成本通常是合乎需要的。
當前利用各種技術來最小化WAN利用,并且因此降低相關聯(lián)的WAN 鏈路成本。例如,像數(shù)據壓縮、服務質量("QoS")、業(yè)務整形、傳輸控 制協(xié)議("TCP")優(yōu)化、廣域文件服務("WAFS")、高速緩存、以及 其它技術可被利用來最小化WAN利用。在許多情況下,這些技術被聚集 到駐留在每一分公司的網絡設備中。不幸的是,這些設備通常很昂貴并且 還需要可能在分公司處不可獲得的管理性監(jiān)督。然而,更麻煩的是,這些 現(xiàn)有的解決方案在其中需要端對端安全的環(huán)境中運作得不好。
正是對于這些考慮和其它方面,在此描述了用于安全的對等("P2P") 高速緩存共享的方法、系統(tǒng)、裝置、和計算機可讀介質的各方面。
概述
此處提供了用于安全的P2P高速緩存共享的系統(tǒng)、裝置、方法、和計 算機可讀介質。根據此處所提供的發(fā)明的一個方面,通過在對等計算機處 安全地高速緩存數(shù)據來最大化網絡鏈路的利用。因為此處所描述的高速緩 存在網絡棧的應用層的下面執(zhí)行,所以高速緩存過程不需要昂貴的網絡設備、對客戶機或服務器應用程序的修改或附加的管理性支持。
根據此處所描述的一種方法,在P2P網絡內操作的對等計算機包括高 速緩存管理器程序。高速緩存管理器程序結合網絡協(xié)議棧來在對等計算機 上執(zhí)行,并用作應用協(xié)議數(shù)據請求的代理。響應于接收到這一請求,高速 緩存管理器可用于聯(lián)系服務器計算機來檢索所請求的數(shù)據的散列值(此處 也被稱為"散列")。散列值是對所請求的數(shù)據應用散列函數(shù)的結果。在 高速緩存管理器正在其上執(zhí)行的請求對等計算機具有對該數(shù)據的適當?shù)脑L 問權限時,服務器計算機將只提供所請求的數(shù)據的散列值。例如,在向高 速緩存管理器提供所請求的數(shù)據的散列值之前,服務器計算機可以檢查所
請求的數(shù)據的訪問控制列表("ACL")或執(zhí)行另一類型的安全檢査。
一旦高速緩存管理器獲得所請求的數(shù)據的散列值,高速緩存管理器向 網絡上的其它對等計算機發(fā)送對于該數(shù)據的廣播請求。該廣播請求允許請 求計算機確定被稱為高速緩存對等計算機的另一對等計算機是否擁有所請
求的數(shù)據。該廣播請求包括足以證明請求對等體擁有所請求的數(shù)據的散列 值的數(shù)據。因為擁有所請求的數(shù)據的散列值暗示擁有所請求的數(shù)據本身的 權限,所以這無需發(fā)送所請求的數(shù)據的散列值就可實現(xiàn)。
在一實現(xiàn)中,該廣播請求包括所請求的數(shù)據的散列值的散列、請求對 等計算機所生成的隨機數(shù)據、和請求對等計算機的標識符。在該實現(xiàn)中,
該廣播請求還包括以下各項的串接的散列所請求的數(shù)據的散列值、請求 對等體所生成的隨機數(shù)據、時間戳、和請求對等計算機的標識符。利用包
含在該廣播請求中的數(shù)據,在其它對等計算機上執(zhí)行的高速緩存管理器可 以確定請求對等計算機實際上是否擁有所請求的數(shù)據的散列值。該廣播請 求中的數(shù)據還幫助其它對等計算機確定其是否擁有所請求的數(shù)據。
如果在另一對等計算機上執(zhí)行的高速緩存管理器確定請求對等計算機 擁有所請求的數(shù)據的散列值并且其擁有所請求的數(shù)據,則在高速緩存對等 計算機上執(zhí)行的高速緩存管理器生成對該請求的回復。該回復包括足以證 明高速緩存對等計算機擁有所請求的數(shù)據的數(shù)據,而不發(fā)送所請求的數(shù)據 的散列值。具體地,根據一個實現(xiàn),該回復包括所請求的數(shù)據的散列值的 散列,以及高速緩存對等計算機所生成的隨機數(shù)據。該回復還包括以下各項的串接的散列所請求的數(shù)據的散列值、高速緩存對等計算機所生成的 隨機數(shù)據、請求對等計算機的標識符、高速緩存對等計算機的標識符、和 時間戳。
如果請求對等計算機從高速緩存對等計算機接收到對該請求的回復, 則在請求對等計算機上執(zhí)行的高速緩存管理器利用該回復的內容來確定高 速緩存對等計算機實際上是否擁有所請求的數(shù)據。如果是,則請求對等計 算機建立到高速緩存對等計算機的安全網絡連接,并通過該安全連接從高 速緩存對等計算機檢索所請求的數(shù)據。如果請求對等計算機未從任何其它 對等計算機接收到對該請求的回復,則請求對等計算機建立到其從中獲得 散列的服務器計算機的連接并從該服務器計算機檢索所請求的數(shù)據。
一旦請求對等計算機或從另一對等計算機或從服務器計算機獲得所請 求的數(shù)據,請求對等計算機可以將所請求的數(shù)據存儲在高速緩存中并使用 所請求的數(shù)據的散列值的散列來索引該數(shù)據。該對等計算機隨后可以利用 所存儲的數(shù)據來響應來自其它對等計算機的對該數(shù)據的請求。以此方式, 每一對等計算機既用作請求對等計算機又用作高速緩存對等計算機。
上述主題也可被實現(xiàn)為計算機控制的裝置、計算機進程、計算系統(tǒng)或 制品,如計算機程序產品或計算機可讀介質。計算機程序產品可以是計算 機系統(tǒng)可讀并編碼了用于執(zhí)行計算機進程的指令的計算機程序的計算機存 儲介質。計算機程序產品也可以是計算系統(tǒng)可讀并編碼了用于執(zhí)行計算機 進程的指令的計算機程序的載波上的傳播信號。通過閱讀以下詳細描述和 査閱相關聯(lián)的附圖,這些和各個其它特征將是顯而易見的。
提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的 一些概念。本概述并不旨在標識出所要求保護的主題的關鍵特征或必要特 征,也不旨在用于限定所要求保護的主題的范圍。
附圖簡述
圖1是示出用于此處所述的過程和計算機系統(tǒng)的說明性操作環(huán)境的 網絡圖2是分別示出在對等計算機上執(zhí)行的說明性網絡協(xié)議棧和在內容服務器計算機上執(zhí)行的網絡協(xié)議棧的各方面的軟件體系結構圖3A-3C是示出此處討論的用于在P2P網絡中安全地高速緩存數(shù)據
的說明性過程的各方面的流程圖4A-4B是分別示出在此處討論的一個實現(xiàn)中利用的數(shù)據請求和對
該請求的回復的內容的數(shù)據結構圖;以及
圖5是示出適于實現(xiàn)此處所述的各個計算機系統(tǒng)的計算機體系結構
的計算機體系結構圖。
詳細描述
以下詳細描述針對用于安全的P2P高速緩存共享的系統(tǒng)、方法、和計 算機可讀介質。盡管此處所述的主題是在結合操作系統(tǒng)和應用程序在計算 系統(tǒng)上的執(zhí)行而執(zhí)行的程序模塊的一般上下文中提供的,但本領域的技術 人員可以認識到,可結合其它類型的程序模塊來執(zhí)行其它實現(xiàn)。本領域技 術人員將認識到,此處所描述的軟件組件還可以用硬件實現(xiàn),如通過使用 專用集成電路("ASIC")、現(xiàn)場可編程門陣列("FPGA")、自定義硬 件或其它類型的硬件設備。
如此處所描述的,程序模塊通常包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù) 據類型的例程、程序、對象、組件、數(shù)據結構和其它類型的結構。此外, 本領域的技術人員可以理解,此處所述的本主題可以使用其它計算機系統(tǒng) 配置來實現(xiàn),包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程消 費電子產品、小型機、大型計算機等。此處所述的本主題也可描述為在其 中任務由通過通信鏈路鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實 現(xiàn),在這種環(huán)境中程序模塊可位于本地和遠程存儲器存儲設備兩者中。然 而,應當理解,此處所述的實現(xiàn)也可結合單機計算機系統(tǒng)和其它類型的計 算設備來利用。
在以下詳細描述中,對構成其一部分并作為說明示出了各具體實施例 或示例的附圖進行了參考?,F(xiàn)在參考附圖(全部若干附圖中相同的標號表 示相同的元素),將描述用于安全的P2P高速緩存共享的計算系統(tǒng)和方法 的各方面。題的說明性操作環(huán)境的各方面。具體地, 圖1是示出形成用于此處所描述的計算系統(tǒng)和過程的操作環(huán)境的計算網絡
100的各方面的網絡圖。如圖1所示,網絡100包括用于將內容服務器104 連接到多個對等計算機102A-102F (此處還被稱為"對等體"、"節(jié)點" 或"客戶機")以及用于相互連接對等計算機102A-102F的WAN。
圖1中示出的網絡體系結構是企業(yè)用來連接總公司園區(qū)或辦事處和多 個遠程位置或分公司的典型的網絡體系結構。然而,應當理解,圖1中示 出的網絡環(huán)境僅僅是說明性的,且此處所描述的實現(xiàn)可被利用來在任何類 型的網絡環(huán)境中操作的計算機系統(tǒng)之間安全地傳送數(shù)據。結果,圖1中示 出的和此處所描述的網絡體系結構應被認為僅僅是說明性的且絕不是限制 性的。
圖1中示出的WAN包括內容服務器104直接連接到的總公司網絡108。 總公司網絡108又連接到分布式公共計算網絡,如因特網110。分公司網絡 106A-106C也連接到因特網110。分公司網絡106A-106C是適于局部地連 接兩個或更多計算機系統(tǒng)的局域網("LAN")。例如,對等計算機102A-102C 連接到分公司網絡106A,而對等計算機102D-102F連接到分公司網絡 106B。應當理解,可以利用比圖1所示的更多或更少的分公司網絡,且更 多或更少的對等計算機可以連接到每一分公司網絡。還應當理解,可以利 用圖1中未示出的其它網絡來完成對等計算機102A-102F之間的和到內容 服務器104的網絡通路。
根據此處所描述的實現(xiàn),對等計算機102A-102F可用于創(chuàng)建P2P連網 系統(tǒng)。P2P連網系統(tǒng)是一種網絡,其主要依賴該網絡中參與者的計算能力、 帶寬和存儲而非將其集中在相對低數(shù)量的服務器。如以下將更詳細地描述 的,對等計算機102A-102F所創(chuàng)建的P2P連網系統(tǒng)可用于在對等體 102A-102F的某些或全部上高速緩存數(shù)據,并以安全的方式將所高速緩存 的數(shù)據提供給其它對等計算機。以此方式,通過WAN從內容服務器104 所檢索的數(shù)據可以高速緩存在分公司網絡中。在來自對等計算機102A-102F 之一的對該數(shù)據的后續(xù)請求的時刻,利用高速緩存的數(shù)據而非再次通過 WAN從內容服務器104中檢索該數(shù)據。以此方式,降低了通過WAN所發(fā)
10送的網絡業(yè)務量。關于該過程的附加細節(jié)在以下參考圖2-5提供。
圖1中示出的對等計算機102A-102F的每一個都包括標準臺式計算機、 膝上型計算機、手持式計算機、服務器或其它類型的計算機系統(tǒng)。如以下 詳細討論的,對等計算機102A-102F的每一個都包括協(xié)調在對等計算機 102A-102F上安全地高速緩存數(shù)據的過程和在必要時從P2P高速緩存或從 內容服務器104檢索所請求的數(shù)據的過程的高速緩存管理器程序。關于對 等計算機102A-102F中利用的軟件和硬件的附加細節(jié)及其操作將在以下參 考圖2-5來提供。
圖1所示的內容服務器計算機104包括可用于接收和響應來自對等計 算機102A-102F的、對存儲在內容服務器104上的或其可訪問的數(shù)據的請 求的標準服務器計算機。該內容可以包括任何類型的數(shù)字數(shù)據,包括但不 限于,電子郵件("e-mail")消息、存儲在內容服務器104或其它位置的 數(shù)據文件,存儲在內容服務器104或因特網IIO上的網頁,諸如日歷事件、 聯(lián)系人、任務、或便條等個人信息管理器("PIM")數(shù)據,或其它類型的 數(shù)據。如以下更詳細地討論的,內容服務器104通過提供唯一地描述對等 計算機102A-102F所請求的數(shù)據的散列值,來幫助在對等計算機102A-102F 上高速緩存數(shù)據。同樣,如果所請求的數(shù)據未被對等計算機102A-102F之 一所高速緩存,則內容服務器104將向請求對等計算機直接提供所請求的 數(shù)據。關于內容服務器104中利用的硬件和軟件的附加細節(jié)及其操作將在 以下參考圖2-5來描述。
現(xiàn)在參考圖2,將提供關于此處所呈現(xiàn)的用于在P2P系統(tǒng)中安全地高 速緩存數(shù)據的各實施例的附加細節(jié)。具體地,圖2是示出對等計算機 102A-102F和內容服務器104所利用的網絡協(xié)議棧的各方面的軟件體系結 構圖。對于內容服務器104,應用程序206A由服務器104在協(xié)議棧的頂部 執(zhí)行。應用程序206A包括用于接收和響應對存儲在服務器104上或另一聯(lián) 網的位置上的內容的請求的服務器應用程序。例如,在一實現(xiàn)中,應用程 序206A包括用于接收和響應對其所引用的網頁和數(shù)據的請求的web服務 器應用程序。另選地,應用程序206A可以包括電子郵件服務器應用程序、 文件服務器應用程序、或任何其它類型的服務器側應用程序。應用協(xié)議204A就在應用程序206A下面執(zhí)行。應用協(xié)議204A是應用 程序專用協(xié)議。例如,在應用程序206A是web服務器應用程序的情況下, 應用協(xié)議204A可以是超文本傳輸協(xié)議("HTTP")。在應用程序206A 是電子郵件服務器應用程序的情況下,應用協(xié)議204A可以是消息應用程序 設計接口 ( "MAPI")協(xié)議。在應用程序206A是文件服務器應用程序的 情況下,應用協(xié)議204A可以是通用因特網文件服務("CIFS")協(xié)議。 應當理解,此處參考圖2所描述的應用協(xié)議僅僅是說明性的,且其它適當 的應用協(xié)議可被用來為其它類型的服務器側應用程序提供協(xié)議服務。
在該網絡協(xié)議棧中,服務器104還在應用協(xié)議204A的下面執(zhí)行代理 208。代理208利用接收和響應來自在對等計算機102A-102F上執(zhí)行的高速 緩存管理器202A的請求的一個或多個協(xié)議專用填補210A-210C。具體地, 協(xié)議專用填補210A-210C生成可從內容服務器204下載的內容的被稱為散 列值的簽名。散列值是對所請求的數(shù)據應用散列函數(shù)的結果。在此處所描 述的一個實現(xiàn)中,填補210A-210C所利用的散列函數(shù)是密碼上安全的單向 散列函數(shù)。這暗示散列函數(shù)是無沖突的(即,不同的輸入數(shù)據將不生成相 同的散列),且散列值不能被用來生成生成該散列的輸入數(shù)據。這種散列 函數(shù)對本領域技術人員而言是公知的。關于填補210A-210C所生成的散列 值的使用的附加細節(jié)將在以下參考圖3A-4B來提供。
根據另一實現(xiàn),該散列值可以包括每一數(shù)據塊具有唯一密鑰的加密鑰 的散列消息認證碼("HMAC")。在該實現(xiàn)中,秘密由服務器104生成 并維護,并被用來生成HMAC。該秘密還連同HMAC被傳遞到每一對等計 算機。在一實現(xiàn)中,給定的數(shù)據塊總是對每一服務器計算機利用同一秘密。 在另一實現(xiàn)中,該按塊秘密可以在服務器計算機之間共享。每一數(shù)據塊具 有唯一密鑰的HMAC的使用防止在可能已知某些純文本的情況下的蠻力攻 擊。
應當理解,對于某些協(xié)議和應用程序,例如像CIFS,分開的服務器可 以提供作為由協(xié)議專用填補210A-210C執(zhí)行的此處所描述的功能。對于其 它協(xié)議,該功能可以通過對利用該協(xié)議的應用程序206A的附加軟件來提 供。例如,在對等計算機之一上執(zhí)行的客戶機應用程序和在內容服務器104
12上執(zhí)行的電子郵件應用程序之間的MAPI通信的情況下,在服務器104上 存在協(xié)議專用填補210B。在對等體上執(zhí)行的代理與填補210B通信以請求 所請求的數(shù)據的散列值。在一實現(xiàn)中,在對等計算機上執(zhí)行的代理是高速 緩存管理器202A。以下更詳細地描述填補210A-210C和高速緩存管理器 202A的操作。
如圖2中還示出的,傳輸控制協(xié)議/網際協(xié)議("TCP/IP")層200A 位于代理208下面。如本領域內已知的,TCP/IP層200A實現(xiàn)共同保證從 發(fā)送者到接收者的數(shù)據的可靠、按序傳遞的TCP協(xié)議和網際協(xié)議。關于 TCP/IP層200A的細節(jié)對本領域技術人員而言是公知的。應當理解,圖2 示出的關于對等計算機102A-102B和內容服務器104的網絡協(xié)議??梢园?括圖2中未示出的附加協(xié)議層。這些協(xié)議層在本領域內是共知的。
圖2還示出對等計算機102A-102F所利用的連網協(xié)議棧的各方面。具 體地,圖2示出對等計算機102A和對等計算機102B的各方面。在圖2所 示的示例中,對等計算機102A以請求對等計算機的角色來操作。請求對等 計算機是對等計算機102A-102F之一,其從內容服務器104或從另一對等 計算機請求了數(shù)據。在圖2中,對等計算機102B以高速緩存對等計算機的 角色來操作。高速緩存對等計算機是對等計算機102A-102F之一,其高速
緩存了其使之對請求對等計算機可用的數(shù)據。
應當理解,對等計算機102A-102F的每一個時??梢约扔米髡埱髮Φ?計算機又用作高速緩存對等計算機。這些角色還可以同時執(zhí)行。即,在任 何給定的時刻,單個對等計算機可以用作對于一個請求的請求對等計算機, 并用作對于其它請求的高速緩存對等計算機。在替換實現(xiàn)中,對等計算機 102A-102F中的某一些的高速緩存功能可被關閉,因而使這些對等體只以 請求對等計算機的角色來動作。
對等體102A-102B所利用的連網協(xié)議棧還分別包括客戶機應用程序 206B-206C。這些客戶機應用程序包括但不限于,個人消息管理器桌面客戶 機、文件傳輸程序、web瀏覽器、或任何其它類型的應用程序。此處所提 供的對等計算機102A-102B所利用的網絡協(xié)議棧分別還包括應用協(xié)議 204B-204C。應用協(xié)議204B-204C在對等體上執(zhí)行與以上參考內容服務器104所描述的相似的功能。對等計算機102A-102B的TCP/IP層200B-200C
分別還執(zhí)行與以上參考內容服務器104描述的相似的功能。
如上簡述,對等計算機102A-102B的每一個分別包括高速緩存管理器 202A-202B作為其網絡協(xié)議棧的一部分。在該棧中,高速緩存管理器在應 用協(xié)議和TCP/IP層之間執(zhí)行。在諸如對等體102A等請求對等體上執(zhí)行的 高速緩存管理器202A可用于從應用協(xié)議204B接收數(shù)據請求。響應于這一 請求,高速緩存管理器202A聯(lián)系代理208并請求所請求的數(shù)據的散列。因 為擁有所請求的數(shù)據的散列值是對所請求的數(shù)據本身的享有權利的證明, 所以代理208確定高速緩存管理器202A是否有權享有該數(shù)據。例如,代理 208可以檢査ACL來確定對等體102A是否有權享有該數(shù)據。如果對等體 102A有權享有該數(shù)據,則代理208向高速緩存管理器202A返回所請求的 數(shù)據的散列值。
一旦高速緩存管理器202A獲得所請求的數(shù)據的散列值,則高速緩存管 理器202A向其它對等計算機發(fā)送廣播請求來確定任何其它對等計算機是 否擁有所請求的數(shù)據。該廣播請求包括足以證明請求對等體擁有所請求的 數(shù)據的散列值的數(shù)據,而不發(fā)送散列值本身。該廣播請求還包括幫助對等 計算機的每一個確定其是否擁有所請求的數(shù)據的數(shù)據。以下參考圖4A提供 關于在這一請求中所發(fā)送的數(shù)據的附加細節(jié)。
如果諸如例如圖2中的對等計算機102B等對等計算機擁有所請求的數(shù) 據,則在該對等體上執(zhí)行的高速緩存管理器生成對該請求的回復,并將該 回復發(fā)送到請求對等體。該回復包括足以證明高速緩存對等體也擁有所請 求的數(shù)據的散列值以及所請求的數(shù)據本身的數(shù)據,而不發(fā)送散列值。關于 在高速緩存對等體所生成的回復中發(fā)送的數(shù)據的附加細節(jié)在以下參考圖4B 來提供。
在請求對等體從高速緩存對等計算機之一接收回復時,該請求對等體 驗證該回復是有效的。如果是,則請求對等體建立到高速緩存對等體的安 全連接并檢索所請求的數(shù)據。如果否,則高速緩存對等體提供對該請求的 回復,請求對等體的高速緩存管理器202A聯(lián)系代理208來直接從內容服務 器104獲得所請求的數(shù)據。 一旦請求對等體擁有所請求的數(shù)據,則該數(shù)據被高速緩存在該請求對等體上,以響應于來自其它對等體的數(shù)據請求來使 用。應當理解,該過程可以重復多次以獲得單個數(shù)據文件。例如,該過程 可以對于文件的每一塊或每一部分來重復,直到獲得了整個文件為止。關
于該過程的附加細節(jié)在以下參考圖3A-4B來提供。
圖3A-3C是示出分別由高速緩存對等計算機、請求對等計算機和內容 服務器104執(zhí)行的例程300、 330和370的流程圖。參考圖3A-3C,對等計 算機102A將被稱為請求對等體,而對等計算機102B將被稱為高速緩存對 等體。還將參考以上參考圖2描述的各軟件組件來描述例程300、330和370。
應理解,參考圖3A-3C所描述的邏輯操作被實現(xiàn)為(1)計算機實現(xiàn)的動 作的序列或運行于計算系統(tǒng)上的程序模塊,和/或(2)計算系統(tǒng)內的互連機器 邏輯電路或電路模塊。該實現(xiàn)是取決于計算機系統(tǒng)的性能要求來選擇的。 因此,此處所描述的邏輯操作被不同地稱為操作、結構設備、動作或模塊。 這些操作、結構設備、動作和模塊可用軟件、固件、專用數(shù)字邏輯以及任 何組合來實現(xiàn)。
例程330在操作332處開始,在此在請求對等體102A上執(zhí)行的應用程 序206B向應用協(xié)議204B請求數(shù)據。在操作334處,應用協(xié)議204B又向 高速緩存管理器202A請求該數(shù)據。響應于接收到這一請求,高速緩存管理 器202A向在內容服務器104上執(zhí)行的適當?shù)膮f(xié)議專用填補請求所請求的數(shù) 據的散列值。這在操作336處發(fā)生。
例程370在操作372處開始,在此在內容服務器104上執(zhí)行的代理208 從高速緩存管理器202A接收對散列值的請求。從操作372,例程370繼續(xù) 到操作374,在此內容服務器104確定請求對等體102A是否有權享有所請 求的數(shù)據。這可以例如通過檢查ACL或定義對等計算機或其用戶的訪問權 限的其它類型的數(shù)據結構來發(fā)生。如果請求對等體102A有權享有該數(shù)據, 則例程370從判定操作374繼續(xù)到以下在圖3B示出和描述的操作380。如 果請求對等體102A無權享有該數(shù)據,則例程370從操作374繼續(xù)到操作 376,在此向請求對等體102A返回錯誤。該錯誤由請求對等體102A在操 作338和340處處理。從操作376,例程370繼續(xù)到操作378,其在此結束。
在操作380,代理208和適當?shù)膮f(xié)議專用填補210使用上述散列函數(shù)
15生成所請求的數(shù)據的散列值。
一旦生成了散列值,則內容服務器104將該
散列值返回給請求對等體102A的高速緩存管理器202A。例程370隨后繼 續(xù)到以下描述的操作384和386。
在例程330的操作344處,請求對等體102A從內容服務器104接收該 散列值。例程330隨后繼續(xù)到操作346,在此請求對等體102A向其它對等 計算機102A-102F發(fā)送廣播消息來確定是否對等計算機102A-102F中的任 一個擁有所請求的數(shù)據。如上簡述,該廣播消息包括足以證明請求對等體 102A擁有該散列值的數(shù)據,而不在該請求中發(fā)送散列值本身。
根據一個實現(xiàn),圖4A中示出的數(shù)據結構400在該廣播消息中發(fā)送。如 圖4A所示,數(shù)據結構400包括以下各項的串接的散列402:從內容服務器 104接收到的所請求的數(shù)據的散列值404、請求對等體102A曾使用的數(shù)字 406 ("現(xiàn)時值")、時間戳408、和請求對等體的標識符410。現(xiàn)時值包 括隨機數(shù)據并被用來幫助防止重放攻擊和將回復與廣播請求進行匹配。時 間戳408也被包括以幫助防止重放攻擊。標識符410包括請求對等體102A 的唯一標識符,如請求對等體102A的IP地址或全限定域名。該廣播請求 還包括所請求的數(shù)據412的散列的散列、請求對等體102A的現(xiàn)時值406、 時間戳408、和請求對等體102A的標識符410。如以下將詳細描述的,高 速緩存對等體102B利用數(shù)據結構400的內容來確定請求對等體102A是否 擁有所請求的數(shù)據的散列值,而不要求在該請求中發(fā)送該散列值。
根據一個實現(xiàn),所請求的數(shù)據的散列的散列412可以包括與常數(shù)串串 接的散列的散列。例如,常數(shù)串"MS_P2P—Caching"可以與該散列串接。 對等計算機能以此方式索引所生成的散列值,以準許關于其是否擁有所述 塊的快速判定。在其中利用HMAC的實施例中,所請求的數(shù)據的散列的散 列412將利用從服務器104獲得的秘密而非常數(shù)串。
例程300在操作302處開始,在此高速緩存對等體102B接收請求對等 體102A所發(fā)送的廣播消息。例程300隨后繼續(xù)到操作304,在此高速緩存 對等體304嘗試使用該廣播請求中提供的所請求的數(shù)據412的散列的散列 來定位所請求的數(shù)據。這是可能的,因為在一實現(xiàn)中,高速緩存對等體102B 使用所存儲的數(shù)據的散列值的散列來索引高速緩存的數(shù)據。以此方式,每
16一高速緩存對等體102B可以進行關于其實際上是否擁有所請求的數(shù)據的
快速判定。
在操作306處,如果高速緩存對等體102B確定其不擁有所請求的數(shù)據, 則例程300繼續(xù)到操作308,其在此結束。如果高速緩存對等體102b確定 其擁有所請求的數(shù)據,則例程300從判定操作306繼續(xù)到操作310。在操作 310處,高速緩存對等體102B驗證請求對等體實際上擁有所請求的數(shù)據的 散列值。在一實現(xiàn)中,這通過生成以下各項的散列來執(zhí)行所請求的數(shù)據 的散列(高速緩存對等體102B在擁有所請求的數(shù)據時將擁有該散列)、請 求對等體406的現(xiàn)時值406、時間戳408、和請求對等體102A的標識符410。 該所得值隨后與請求對等體102A在廣播請求中所發(fā)送的散列402進行比 較。如果兩個值匹配,則請求對等體102A實際上擁有所請求的數(shù)據的散列 值且有權從高速緩存對等體102B接收數(shù)據本身。
如果高速緩存對等體102B不能驗證請求對等體102A擁有所請求的數(shù) 據的散列值,則例程300從操作312繼續(xù)到操作314,其在此結束。如果高 速緩存對等體102B驗證請求對等體102A擁有所請求的數(shù)據的散列值,則 例程300從操作312繼續(xù)到操作316。在操作316處,高速緩存對等體102B 生成對請求對等體102A的回復。該回復包括足以證明高速緩存對等計算機 擁有所請求的數(shù)據的數(shù)據,而不發(fā)送所請求的數(shù)據的散列值。
根據一個實現(xiàn),圖4B中示出的數(shù)據結構450在該回復中發(fā)送。如圖 4B所示,數(shù)據結構450包括以下各項的散列452:所請求的數(shù)據的散列值 404、高速緩存對等體102A所生成的現(xiàn)時值454、請求對等體102A的標識 符410、高速緩存對等體102B的標識符456、和時間戳408。數(shù)據結構450 還包括所請求的數(shù)據的散列值的散列412,其與高速緩存對等體102B的現(xiàn) 時值454串接。如以下更詳細地描述的,存儲在數(shù)據結構450中的數(shù)據被 請求對等體102A用來驗證高速緩存對等體102B實際上擁有所請求的數(shù) 據。
從操作346,例程330繼續(xù)到操作348,在此高速緩存管理器202A確 定是否接收到對廣播消息的任何回復。如果未接收到回復,則沒有對等計 算機高速緩存了所請求的數(shù)據。因此,在這種情況下,例程330從操作348繼續(xù)到操作350,在此與內容服務器104建立安全連接且所請求的數(shù)據直接 從內容服務器104檢索。在例程370的操作384處,內容服務器104向請 求對等體102A發(fā)送該數(shù)據。在請求對等體102A接收該數(shù)據時,例程330 繼續(xù)到操作358,在此高速緩存管理器202A存儲所請求的數(shù)據并利用所請 求的數(shù)據的散列值的散列來索引該數(shù)據。以此方式,該數(shù)據被索引和高速 緩存,以響應于來自其它對等體的數(shù)據請求而使用。高速緩存管理器202A 還將所請求的數(shù)據返回給應用程序206B。例程330隨后繼續(xù)到操作360, 其在此結束。
如果在操作348處,高速緩存管理器202A確定接收到對廣播消息的回 復,則例程330從操作348繼續(xù)到操作352,在此接收該回復。應當理解, 可以接收并以此處所描述的方式處理多個回復。此外,在接收到多個回復 時,請求對等體102A可以基于各種因素來選擇從響應的高速緩存對等體的 哪一個來檢索該數(shù)據,該因素包括高速緩存對等體的哪一個擁有最多數(shù)據、 到高速緩存對等體的網絡連接的速率或等待時間,以及其它因素。
在例程370的操作354處,請求對等體102A確定高速緩存對等體102B 是否接收到有效回復。在一實現(xiàn)中,這通過生成以下各項的散列452來實 現(xiàn)所請求的數(shù)據的散列值404、高速緩存對等體102A所生成的現(xiàn)時值454、 請求對等體102A的標識符410、高速緩存對等體102B的標識符456、和 時間戳408。所生成的散列隨后與在回復中所發(fā)送的散列452進行比較。如 果兩個值匹配,則回復是有效的且所請求的數(shù)據可以從高速緩存對等體 102B檢索。因此,如果請求對等體102A確定該回復是無效的,則例程330 從操作354分支到操作360,其在此結束。如果回復是有效的,則例程330 繼續(xù)到操作356。
在操作356,請求對等體102A建立到高速緩存對等體102B的安全網 絡連接,諸如例如通過使用安全套接字層("SSL")連接。同樣在操作 356處,請求對等體102A從高速緩存對等體102B檢索所請求的數(shù)據。具 體地,在其中利用HMAC的實施例中,請求對等體102A向高速緩存對等 體102B發(fā)送與秘密串接的數(shù)據的散列的散列。按塊秘密也必須被發(fā)送到高 速緩存對等體102B。高速緩存對等體102B隨后利用該秘密來驗證請求對等體102A的授權。如果請求對等體102A的授權被驗證,則高速緩存對等 體102B建立連接并在例程330的操作320處發(fā)送所請求的數(shù)據。 一旦在請 求對等體102A處接收到所請求的數(shù)據,則在操作358處,該數(shù)據被索弓l、 高速緩存、并返回給應用程序206B。例程330隨后繼續(xù)到操作360,其在 此結束。
現(xiàn)參考圖5,將討論在此處提供的各實施例中利用的計算機500的說 明性計算機體系結構。圖5中示出的計算機體系結構示出常規(guī)的臺式機、 膝上型計算機、手持式計算機、或服務器計算機,且可被用來實現(xiàn)上述對 等計算機102A-102F或內容服務器104。圖5中所示的計算機體系結構包 括中央處理單元502 ( "CPU")、包括隨機存取存儲器506 ( "RAM") 和只讀存儲器("ROM" ) 508的系統(tǒng)存儲器510、以及將存儲器耦合至 CPU 502的系統(tǒng)總線504?;据斎?輸出系統(tǒng)存儲在ROM510中,它包含 幫助諸如在啟動期間在計算機500內元件之間傳遞信息的基本例程。計算 機500還包括用于存儲操作系統(tǒng)520、應用程序和其它程序模塊的大容量存 儲設備518,這將在以下更為詳盡地描述。
大容量存儲設備518通過連接至總線504的大容量存儲控制器(未示 出)連接到CPU 502。大容量存儲設備518及其相關聯(lián)的計算機可讀介質 為計算機500提供非易失性存儲。盡管此處包含的計算機可讀介質的描述 指的是大容量存儲設備,如硬盤或CD-ROM驅動器,但本領域的技術人員 應理解,計算機可讀介質可以是可由計算機500訪問的任何可用介質。
作為示例而非限制,計算機可讀介質可以包括計算機存儲介質和通信 介質。計算機存儲介質包括以存儲如計算機可讀指令、數(shù)據結構、程序模 塊或其它數(shù)據等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動 和不可移動介質。計算機存儲介質包括但不限于,RAM、 ROM、 EPROM、 EEPROM、閃存或其它固態(tài)存儲器技術、CD-ROM、數(shù)字多功能盤("DVD")、 HD-DVD、 BLU-RAY或其它光學存儲、磁帶盒、磁帶、磁盤存儲或其它磁 性存儲設備、或能用于存儲所需信息且可以由計算機500訪問的任何其它 介質。
根據各實施例,計算機500可以使用通過諸如參考圖1所描述的WAN等的網絡514與遠程計算機的邏輯連接在聯(lián)網環(huán)境中操作。計算機500可 以通過連接至總線504的網絡接口單元512來連接到網絡514。應理解,網 絡接口單元512也可用于連接至其它類型的網絡和遠程計算機系統(tǒng)。計算 機500還可以包括用于接收和處理來自多個其它設備的輸入的輸入/輸出控 制器516,這些設備包括鍵盤、鼠標或者電子指示筆(未在圖5中示出)。 類似地,輸入/輸出控制器可以提供至顯示屏、打印機或其它類型的輸出設 備(也未在圖5中示出)的輸出。
如前簡述,多個程序模塊和數(shù)據文件可以存儲在計算機500的大容量 存儲設備518和RAM 508內,包括適于控制聯(lián)網計算機操作的操作系統(tǒng) 520,如華盛頓州雷蒙德市的微軟公司的WINDOWS XP或WINDOWS VISTA操作系統(tǒng)。大容量存儲設備518和RAM 508還可以存儲一個或多個 程序模塊。具體地,大容量存儲設備518和RAM 508可以存儲在圖2中示 出且參考其描述的各軟件組件,如客戶機應用程序206B、高速緩存管理器 202B、散列522B、和從其它對等體或內容服務器接收到的數(shù)據524B。在 內容服務器104的情況下,大容量存儲設備518可被用來存儲服務器應用 程序206A、代理208、協(xié)議專用填補210、散列522A和數(shù)據524A。其它 數(shù)據和程序模塊也可以存儲在對等體102A-102F和內容服務器104的大容 量存儲設備518上。
基于以上,可以理解,此處提供了用于安全的P2P高速緩存的系統(tǒng)、 方法、裝置、數(shù)據結構和計算機可讀介質。盡管用對計算機結構特征、方 法動作和計算機可讀介質專用的語言描述了此處呈現(xiàn)的本主題,但可以理 解,所附權利要求書中定義的本發(fā)明不必限于此處所述的具體特征、動作 或介質。相反,具體特征、動作和介質是作為實現(xiàn)權利要求的示例形式公 開的。上述主題僅作為說明提供,并且不應被解釋為限制??蓪Υ颂幩?的主題作出各種修改和改變,而不必遵循所示和所述的示例實施例和應用, 且不背離所附權利要求書中所述的本發(fā)明的真正精神和范圍。
20
權利要求
1. 一種用于安全地檢索高速緩存在包括兩個或更多聯(lián)網的對等計算機的對等網絡中的數(shù)據的方法,所述方法包括在所述網絡上發(fā)送對所請求的數(shù)據的廣播請求,所述廣播請求包括足以向所述各對等計算機證明擁有所請求的數(shù)據的散列值的數(shù)據;從高速緩存對等計算機接收對所述廣播請求的回復,所述回復包括足以證明所述高速緩存對等計算機擁有所請求的數(shù)據的數(shù)據;以及響應于接收到所述回復,從所述高速緩存對等計算機接收所請求的數(shù)據。
2. 如權利要求1所述的方法,其特征在于,還包括在發(fā)送所述廣播請求之前向服務器計算機發(fā)送對所請求的數(shù)據的散列值的請求;以及 從所述服務器計算機接收所請求的數(shù)據的散列值;
3. 如權利要求1所述的方法,其特征在于,所述廣播請求的數(shù)據包括 所請求的數(shù)據的散列值的散列、請求對等計算機所生成的隨機數(shù)據、時間 戳、所述請求對等計算機的標識符,以及以下各項的串接的散列所請求 的數(shù)據的散列值、所述請求對等體所生成的所述隨機數(shù)據、所述時間戳、 和所述請求對等計算機的標識符。
4. 如權利要求1所述的方法,其特征在于,所述回復的數(shù)據包括所述 高速緩存對等計算機所生成的隨機數(shù)據,所請求的數(shù)據的散列值的散列, 以及以下各項的串接的散列所請求的數(shù)據的散列值、所述高速緩存對等 計算機所生成的所述隨機數(shù)據、所述請求對等計算機的標識符、所述高速 緩存對等計算機的標識符、和時間戳。
5. 如權利要求2所述的方法,其特征在于,還包括響應于未從所述對 等計算機的任一個接收到對所述廣播請求的回復,從所述服務器計算機檢索所請求的數(shù)據。
6. 如權利要求5所述的方法,其特征在于,還包括響應于從所述高速 緩存對等計算機檢索所請求的數(shù)據存儲所請求的數(shù)據;以及使用與一串相串接的所請求的數(shù)據的散列值的散列來索引所存儲的所 請求的數(shù)據。
7. 如權利要求6所述的方法,其特征在于,從所述高速緩存對等計算 機接收所請求的數(shù)據包括建立到所述高速緩存對等計算機的安全網絡連接;以及通過所述安全網絡連接從所述高速緩存對等計算機接收所請求的數(shù)據。
8. —種其上存儲計算機可執(zhí)行指令的計算機可讀介質,所述指令在由計算機執(zhí)行時,將使所述計算機執(zhí)行如權利要求1所述的方法。
9. 一種用于執(zhí)行如權利要求1所述的方法的計算機控制的裝置。
10. —種用于安全地提供高速緩存在包括兩個或更多聯(lián)網的對等計 算機的對等網絡中的數(shù)據的方法,所述方法包括在高速緩存對等計算機處接收對所請求的數(shù)據的廣播請求,所述廣播 請求包括足以證明所述請求對等計算機擁有所請求的數(shù)據的散列值的數(shù)據;響應于接收到所述廣播請求,確定所述高速緩存對等計算機是否擁有所請求的數(shù)據;響應于確定所述高速緩存對等計算機擁有所請求的數(shù)據,發(fā)送對所述 廣播請求的回復,所述回復包括足以證明所述高速緩存對等計算機擁有所 請求的數(shù)據的數(shù)據;以及向所述請求對等計算機發(fā)送所請求的數(shù)據。
11. 如權利要求IO所述的方法,其特征在于,所述廣播請求的數(shù)據 包括所請求的數(shù)據的散列值的散列、請求對等計算機所生成的隨機數(shù)據、 時間戳、所述請求對等計算機的標識符,以及以下各項的串接的散列所 請求的數(shù)據的散列值、所述請求對等體所生成的所述隨機數(shù)據、所述時間 戳、和所述請求對等體的標識符。
12. 如權利要求11所述的方法,其特征在于,確定所述高速緩存對 等計算機是否擁有所請求的數(shù)據包括搜索存儲在所述高速緩存對等計算機處的索引以尋找所請求的數(shù)據的散列值的散列;以及響應于在所述索引中定位所請求的數(shù)據的散列值的散列,確定所述高 速緩存對等計算機擁有所請求的數(shù)據。
13. 如權利要求12所述的方法,其特征在于,所述回復的數(shù)據包括所述高速緩存對等計算機所生成的隨機數(shù)據,所請求的數(shù)據的散列值的散列,以及以下各項的串接的散列所請求的數(shù)據的散列值、所述高速緩存 對等計算機所生成的所述隨機數(shù)據、所述請求對等計算機的標識符、所述高速緩存對等計算機的標識符、和時間戳。
14. 如權利要求13所述的方法,其特征在于,向所述請求對等計算機發(fā)送所請求的數(shù)據包括建立與所述請求對等計算機的安全網絡連接;以及 通過所述安全網絡連接向所述請求對等計算機發(fā)送所請求的數(shù)據。
15. —種其上存儲計算機可執(zhí)行指令的計算機可讀介質,所述指令在 由計算機執(zhí)行時,將使所述計算機執(zhí)行如權利要求IO所述的方法。
16. —種用于在包括兩個或更多聯(lián)網的對等計算機的對等網絡中高 速緩存數(shù)據的方法,所述方法包括提供高速緩存管理器以在所述對等計算機的每一個處執(zhí)行,所述高速 緩存管理器可用于從應用協(xié)議接收數(shù)據請求,發(fā)送包括足以向所述各對等 計算機證明擁有所請求的數(shù)據的散列值的數(shù)據的廣播請求,接收包括足以 證明一高速緩存對等計算機擁有所請求的數(shù)據的數(shù)據的、對所述廣播請求 的回復,以及響應于接收所述回復從所述高速緩存對等計算機接收所請求 的數(shù)據。
17. 如權利要求16所述的方法,其特征在于,所述高速緩存管理器結合連網協(xié)議棧在所述對等計算機上執(zhí)行。
18. 如權利要求17所述的方法,其特征在于,所述高速緩存管理器還可用于存儲接收到的所請求的數(shù)據,以響應于對所述數(shù)據的請求來使用。
19. 如權利要求18所述的方法,其特征在于,所述高速緩存管理器 還可用于接收包括足以證明請求對等計算機擁有所請求的數(shù)據的散列的數(shù)據的廣播請求,響應于接收到所述廣播請求確定高速緩存對等計算機是否擁有 所請求的數(shù)據,發(fā)送包括足以證明所述高速緩存對等計算機擁有所請求的 數(shù)據的數(shù)據的、對所述廣播請求的回復,以及向所述請求的對等計算機發(fā) 送所請求的數(shù)據。
20. —種其上存儲計算機可執(zhí)行指令的計算機可讀介質,所述指令在 由計算機執(zhí)行時,將使所述計算機執(zhí)行如權利要求16所述的方法。
全文摘要
提供了用于安全的P2P高速緩存的系統(tǒng)、裝置、方法和計算機可讀介質。在一方法中,請求對等體從服務器獲得所請求的數(shù)據的散列。請求對等體隨后向其它對等體發(fā)送數(shù)據請求。該請求證明請求對等體擁有該散列。如果高速緩存對等體擁有該數(shù)據,則其生成證明其擁有所請求的數(shù)據的、對該請求的回復。如果請求對等體從高速緩存對等體接收到回復,則請求對等體建立到該高速緩存對等體的連接并從該高速緩存對等體檢索該數(shù)據。如果請求對等體未從任何其它對等體接收到對該請求的回復,則請求對等體建立到服務器的連接并從該服務器中檢索該數(shù)據。請求對等體存儲該數(shù)據,以響應于來自其它對等體的請求來使用。
文檔編號G06F12/08GK101523360SQ200780036500
公開日2009年9月2日 申請日期2007年9月20日 優(yōu)先權日2006年9月29日
發(fā)明者D·R·西蒙, K·E·阿邁德 申請人:微軟公司