新四季網

安全的對等高速緩存共享的製作方法

2023-09-11 22:36:50

專利名稱:安全的對等高速緩存共享的製作方法
安全的對等高速緩存共享 背景
由於經濟全球化,許多企業經營總公司以及許多被稱為分公司的遠程
公司。為在企業的所有公司之間提供網絡連接,通常利用廣域網("WAN")。 WAN是覆蓋廣闊的地理區域的計算機網絡,且其可以包括在不同的地理位 置操作的許多計算機。例如,以西半球為基礎的公司可以利用WAN來向 位於東半球的分公司提供連接。
世界上企業的大部分信息技術("IT")預算被花費在建立和維護分 公司中的技術及其網絡連接上。具體地,這些預算中的大部分被花費在購 買和維護到分公司的WAN鏈路上。全球支付的公司的趨勢預期將增加企 業對WAN的使用以及相關聯的成本。結果,改進WAN利用以降低WAN 維護成本通常是合乎需要的。
當前利用各種技術來最小化WAN利用,並且因此降低相關聯的WAN 鏈路成本。例如,像數據壓縮、服務質量("QoS")、業務整形、傳輸控 制協議("TCP")優化、廣域文件服務("WAFS")、高速緩存、以及 其它技術可被利用來最小化WAN利用。在許多情況下,這些技術被聚集 到駐留在每一分公司的網絡設備中。不幸的是,這些設備通常很昂貴並且 還需要可能在分公司處不可獲得的管理性監督。然而,更麻煩的是,這些 現有的解決方案在其中需要端對端安全的環境中運作得不好。
正是對於這些考慮和其它方面,在此描述了用於安全的對等("P2P") 高速緩存共享的方法、系統、裝置、和計算機可讀介質的各方面。
概述
此處提供了用於安全的P2P高速緩存共享的系統、裝置、方法、和計 算機可讀介質。根據此處所提供的發明的一個方面,通過在對等計算機處 安全地高速緩存數據來最大化網絡鏈路的利用。因為此處所描述的高速緩 存在網絡棧的應用層的下面執行,所以高速緩存過程不需要昂貴的網絡設備、對客戶機或伺服器應用程式的修改或附加的管理性支持。
根據此處所描述的一種方法,在P2P網絡內操作的對等計算機包括高 速緩存管理器程序。高速緩存管理器程序結合網絡協議棧來在對等計算機 上執行,並用作應用協議數據請求的代理。響應於接收到這一請求,高速 緩存管理器可用於聯繫伺服器計算機來檢索所請求的數據的散列值(此處 也被稱為"散列")。散列值是對所請求的數據應用散列函數的結果。在 高速緩存管理器正在其上執行的請求對等計算機具有對該數據的適當的訪 問權限時,伺服器計算機將只提供所請求的數據的散列值。例如,在向高 速緩存管理器提供所請求的數據的散列值之前,伺服器計算機可以檢查所
請求的數據的訪問控制列表("ACL")或執行另一類型的安全檢査。
一旦高速緩存管理器獲得所請求的數據的散列值,高速緩存管理器向 網絡上的其它對等計算機發送對於該數據的廣播請求。該廣播請求允許請 求計算機確定被稱為高速緩存對等計算機的另一對等計算機是否擁有所請
求的數據。該廣播請求包括足以證明請求對等體擁有所請求的數據的散列 值的數據。因為擁有所請求的數據的散列值暗示擁有所請求的數據本身的 權限,所以這無需發送所請求的數據的散列值就可實現。
在一實現中,該廣播請求包括所請求的數據的散列值的散列、請求對 等計算機所生成的隨機數據、和請求對等計算機的標識符。在該實現中,
該廣播請求還包括以下各項的串接的散列所請求的數據的散列值、請求 對等體所生成的隨機數據、時間戳、和請求對等計算機的標識符。利用包
含在該廣播請求中的數據,在其它對等計算機上執行的高速緩存管理器可 以確定請求對等計算機實際上是否擁有所請求的數據的散列值。該廣播請 求中的數據還幫助其它對等計算機確定其是否擁有所請求的數據。
如果在另一對等計算機上執行的高速緩存管理器確定請求對等計算機 擁有所請求的數據的散列值並且其擁有所請求的數據,則在高速緩存對等 計算機上執行的高速緩存管理器生成對該請求的回覆。該回復包括足以證 明高速緩存對等計算機擁有所請求的數據的數據,而不發送所請求的數據 的散列值。具體地,根據一個實現,該回復包括所請求的數據的散列值的 散列,以及高速緩存對等計算機所生成的隨機數據。該回復還包括以下各項的串接的散列所請求的數據的散列值、高速緩存對等計算機所生成的 隨機數據、請求對等計算機的標識符、高速緩存對等計算機的標識符、和 時間戳。
如果請求對等計算機從高速緩存對等計算機接收到對該請求的回覆, 則在請求對等計算機上執行的高速緩存管理器利用該回復的內容來確定高 速緩存對等計算機實際上是否擁有所請求的數據。如果是,則請求對等計 算機建立到高速緩存對等計算機的安全網絡連接,並通過該安全連接從高 速緩存對等計算機檢索所請求的數據。如果請求對等計算機未從任何其它 對等計算機接收到對該請求的回覆,則請求對等計算機建立到其從中獲得 散列的伺服器計算機的連接並從該伺服器計算機檢索所請求的數據。
一旦請求對等計算機或從另一對等計算機或從伺服器計算機獲得所請 求的數據,請求對等計算機可以將所請求的數據存儲在高速緩存中並使用 所請求的數據的散列值的散列來索引該數據。該對等計算機隨後可以利用 所存儲的數據來響應來自其它對等計算機的對該數據的請求。以此方式, 每一對等計算機既用作請求對等計算機又用作高速緩存對等計算機。
上述主題也可被實現為計算機控制的裝置、計算機進程、計算系統或 製品,如電腦程式產品或計算機可讀介質。電腦程式產品可以是計算 機系統可讀並編碼了用於執行計算機進程的指令的電腦程式的計算機存 儲介質。電腦程式產品也可以是計算系統可讀並編碼了用於執行計算機 進程的指令的電腦程式的載波上的傳播信號。通過閱讀以下詳細描述和 査閱相關聯的附圖,這些和各個其它特徵將是顯而易見的。
提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的 一些概念。本概述並不旨在標識出所要求保護的主題的關鍵特徵或必要特 徵,也不旨在用於限定所要求保護的主題的範圍。
附圖簡述


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀