亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

安全的對(duì)等高速緩存共享的制作方法

文檔序號(hào):6456028閱讀:218來源:國(guó)知局
專利名稱:安全的對(duì)等高速緩存共享的制作方法
安全的對(duì)等高速緩存共享 背景
由于經(jīng)濟(jì)全球化,許多企業(yè)經(jīng)營(yíng)總公司以及許多被稱為分公司的遠(yuǎn)程
公司。為在企業(yè)的所有公司之間提供網(wǎng)絡(luò)連接,通常利用廣域網(wǎng)("WAN")。 WAN是覆蓋廣闊的地理區(qū)域的計(jì)算機(jī)網(wǎng)絡(luò),且其可以包括在不同的地理位 置操作的許多計(jì)算機(jī)。例如,以西半球?yàn)榛A(chǔ)的公司可以利用WAN來向 位于東半球的分公司提供連接。
世界上企業(yè)的大部分信息技術(shù)("IT")預(yù)算被花費(fèi)在建立和維護(hù)分 公司中的技術(shù)及其網(wǎng)絡(luò)連接上。具體地,這些預(yù)算中的大部分被花費(fèi)在購 買和維護(hù)到分公司的WAN鏈路上。全球支付的公司的趨勢(shì)預(yù)期將增加企 業(yè)對(duì)WAN的使用以及相關(guān)聯(lián)的成本。結(jié)果,改進(jìn)WAN利用以降低WAN 維護(hù)成本通常是合乎需要的。
當(dāng)前利用各種技術(shù)來最小化WAN利用,并且因此降低相關(guān)聯(lián)的WAN 鏈路成本。例如,像數(shù)據(jù)壓縮、服務(wù)質(zhì)量("QoS")、業(yè)務(wù)整形、傳輸控 制協(xié)議("TCP")優(yōu)化、廣域文件服務(wù)("WAFS")、高速緩存、以及 其它技術(shù)可被利用來最小化WAN利用。在許多情況下,這些技術(shù)被聚集 到駐留在每一分公司的網(wǎng)絡(luò)設(shè)備中。不幸的是,這些設(shè)備通常很昂貴并且 還需要可能在分公司處不可獲得的管理性監(jiān)督。然而,更麻煩的是,這些 現(xiàn)有的解決方案在其中需要端對(duì)端安全的環(huán)境中運(yùn)作得不好。
正是對(duì)于這些考慮和其它方面,在此描述了用于安全的對(duì)等("P2P") 高速緩存共享的方法、系統(tǒng)、裝置、和計(jì)算機(jī)可讀介質(zhì)的各方面。
概述
此處提供了用于安全的P2P高速緩存共享的系統(tǒng)、裝置、方法、和計(jì) 算機(jī)可讀介質(zhì)。根據(jù)此處所提供的發(fā)明的一個(gè)方面,通過在對(duì)等計(jì)算機(jī)處 安全地高速緩存數(shù)據(jù)來最大化網(wǎng)絡(luò)鏈路的利用。因?yàn)榇颂幩枋龅母咚倬?存在網(wǎng)絡(luò)棧的應(yīng)用層的下面執(zhí)行,所以高速緩存過程不需要昂貴的網(wǎng)絡(luò)設(shè)備、對(duì)客戶機(jī)或服務(wù)器應(yīng)用程序的修改或附加的管理性支持。
根據(jù)此處所描述的一種方法,在P2P網(wǎng)絡(luò)內(nèi)操作的對(duì)等計(jì)算機(jī)包括高 速緩存管理器程序。高速緩存管理器程序結(jié)合網(wǎng)絡(luò)協(xié)議棧來在對(duì)等計(jì)算機(jī) 上執(zhí)行,并用作應(yīng)用協(xié)議數(shù)據(jù)請(qǐng)求的代理。響應(yīng)于接收到這一請(qǐng)求,高速 緩存管理器可用于聯(lián)系服務(wù)器計(jì)算機(jī)來檢索所請(qǐng)求的數(shù)據(jù)的散列值(此處 也被稱為"散列")。散列值是對(duì)所請(qǐng)求的數(shù)據(jù)應(yīng)用散列函數(shù)的結(jié)果。在 高速緩存管理器正在其上執(zhí)行的請(qǐng)求對(duì)等計(jì)算機(jī)具有對(duì)該數(shù)據(jù)的適當(dāng)?shù)脑L 問權(quán)限時(shí),服務(wù)器計(jì)算機(jī)將只提供所請(qǐng)求的數(shù)據(jù)的散列值。例如,在向高 速緩存管理器提供所請(qǐng)求的數(shù)據(jù)的散列值之前,服務(wù)器計(jì)算機(jī)可以檢查所
請(qǐng)求的數(shù)據(jù)的訪問控制列表("ACL")或執(zhí)行另一類型的安全檢査。
一旦高速緩存管理器獲得所請(qǐng)求的數(shù)據(jù)的散列值,高速緩存管理器向 網(wǎng)絡(luò)上的其它對(duì)等計(jì)算機(jī)發(fā)送對(duì)于該數(shù)據(jù)的廣播請(qǐng)求。該廣播請(qǐng)求允許請(qǐng) 求計(jì)算機(jī)確定被稱為高速緩存對(duì)等計(jì)算機(jī)的另一對(duì)等計(jì)算機(jī)是否擁有所請(qǐng)
求的數(shù)據(jù)。該廣播請(qǐng)求包括足以證明請(qǐng)求對(duì)等體擁有所請(qǐng)求的數(shù)據(jù)的散列 值的數(shù)據(jù)。因?yàn)閾碛兴?qǐng)求的數(shù)據(jù)的散列值暗示擁有所請(qǐng)求的數(shù)據(jù)本身的 權(quán)限,所以這無需發(fā)送所請(qǐng)求的數(shù)據(jù)的散列值就可實(shí)現(xiàn)。
在一實(shí)現(xiàn)中,該廣播請(qǐng)求包括所請(qǐng)求的數(shù)據(jù)的散列值的散列、請(qǐng)求對(duì) 等計(jì)算機(jī)所生成的隨機(jī)數(shù)據(jù)、和請(qǐng)求對(duì)等計(jì)算機(jī)的標(biāo)識(shí)符。在該實(shí)現(xiàn)中,
該廣播請(qǐng)求還包括以下各項(xiàng)的串接的散列所請(qǐng)求的數(shù)據(jù)的散列值、請(qǐng)求 對(duì)等體所生成的隨機(jī)數(shù)據(jù)、時(shí)間戳、和請(qǐng)求對(duì)等計(jì)算機(jī)的標(biāo)識(shí)符。利用包
含在該廣播請(qǐng)求中的數(shù)據(jù),在其它對(duì)等計(jì)算機(jī)上執(zhí)行的高速緩存管理器可 以確定請(qǐng)求對(duì)等計(jì)算機(jī)實(shí)際上是否擁有所請(qǐng)求的數(shù)據(jù)的散列值。該廣播請(qǐng) 求中的數(shù)據(jù)還幫助其它對(duì)等計(jì)算機(jī)確定其是否擁有所請(qǐng)求的數(shù)據(jù)。
如果在另一對(duì)等計(jì)算機(jī)上執(zhí)行的高速緩存管理器確定請(qǐng)求對(duì)等計(jì)算機(jī) 擁有所請(qǐng)求的數(shù)據(jù)的散列值并且其擁有所請(qǐng)求的數(shù)據(jù),則在高速緩存對(duì)等 計(jì)算機(jī)上執(zhí)行的高速緩存管理器生成對(duì)該請(qǐng)求的回復(fù)。該回復(fù)包括足以證 明高速緩存對(duì)等計(jì)算機(jī)擁有所請(qǐng)求的數(shù)據(jù)的數(shù)據(jù),而不發(fā)送所請(qǐng)求的數(shù)據(jù) 的散列值。具體地,根據(jù)一個(gè)實(shí)現(xiàn),該回復(fù)包括所請(qǐng)求的數(shù)據(jù)的散列值的 散列,以及高速緩存對(duì)等計(jì)算機(jī)所生成的隨機(jī)數(shù)據(jù)。該回復(fù)還包括以下各項(xiàng)的串接的散列所請(qǐng)求的數(shù)據(jù)的散列值、高速緩存對(duì)等計(jì)算機(jī)所生成的 隨機(jī)數(shù)據(jù)、請(qǐng)求對(duì)等計(jì)算機(jī)的標(biāo)識(shí)符、高速緩存對(duì)等計(jì)算機(jī)的標(biāo)識(shí)符、和 時(shí)間戳。
如果請(qǐng)求對(duì)等計(jì)算機(jī)從高速緩存對(duì)等計(jì)算機(jī)接收到對(duì)該請(qǐng)求的回復(fù), 則在請(qǐng)求對(duì)等計(jì)算機(jī)上執(zhí)行的高速緩存管理器利用該回復(fù)的內(nèi)容來確定高 速緩存對(duì)等計(jì)算機(jī)實(shí)際上是否擁有所請(qǐng)求的數(shù)據(jù)。如果是,則請(qǐng)求對(duì)等計(jì) 算機(jī)建立到高速緩存對(duì)等計(jì)算機(jī)的安全網(wǎng)絡(luò)連接,并通過該安全連接從高 速緩存對(duì)等計(jì)算機(jī)檢索所請(qǐng)求的數(shù)據(jù)。如果請(qǐng)求對(duì)等計(jì)算機(jī)未從任何其它 對(duì)等計(jì)算機(jī)接收到對(duì)該請(qǐng)求的回復(fù),則請(qǐng)求對(duì)等計(jì)算機(jī)建立到其從中獲得 散列的服務(wù)器計(jì)算機(jī)的連接并從該服務(wù)器計(jì)算機(jī)檢索所請(qǐng)求的數(shù)據(jù)。
一旦請(qǐng)求對(duì)等計(jì)算機(jī)或從另一對(duì)等計(jì)算機(jī)或從服務(wù)器計(jì)算機(jī)獲得所請(qǐng) 求的數(shù)據(jù),請(qǐng)求對(duì)等計(jì)算機(jī)可以將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在高速緩存中并使用 所請(qǐng)求的數(shù)據(jù)的散列值的散列來索引該數(shù)據(jù)。該對(duì)等計(jì)算機(jī)隨后可以利用 所存儲(chǔ)的數(shù)據(jù)來響應(yīng)來自其它對(duì)等計(jì)算機(jī)的對(duì)該數(shù)據(jù)的請(qǐng)求。以此方式, 每一對(duì)等計(jì)算機(jī)既用作請(qǐng)求對(duì)等計(jì)算機(jī)又用作高速緩存對(duì)等計(jì)算機(jī)。
上述主題也可被實(shí)現(xiàn)為計(jì)算機(jī)控制的裝置、計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)或 制品,如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算 機(jī)系統(tǒng)可讀并編碼了用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存 儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品也可以是計(jì)算系統(tǒng)可讀并編碼了用于執(zhí)行計(jì)算機(jī) 進(jìn)程的指令的計(jì)算機(jī)程序的載波上的傳播信號(hào)。通過閱讀以下詳細(xì)描述和 査閱相關(guān)聯(lián)的附圖,這些和各個(gè)其它特征將是顯而易見的。
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特 征,也不旨在用于限定所要求保護(hù)的主題的范圍。
附圖簡(jiǎn)述


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