CN101523360B - 安全的对等高速缓存共享 - Google Patents

安全的对等高速缓存共享 Download PDF

Info

Publication number
CN101523360B
CN101523360B CN2007800365009A CN200780036500A CN101523360B CN 101523360 B CN101523360 B CN 101523360B CN 2007800365009 A CN2007800365009 A CN 2007800365009A CN 200780036500 A CN200780036500 A CN 200780036500A CN 101523360 B CN101523360 B CN 101523360B
Authority
CN
China
Prior art keywords
data
asking
peer computer
request
peer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007800365009A
Other languages
English (en)
Other versions
CN101523360A (zh
Inventor
K·E·阿迈德
D·R·西蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101523360A publication Critical patent/CN101523360A/zh
Application granted granted Critical
Publication of CN101523360B publication Critical patent/CN101523360B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供了用于安全的P2P高速缓存的系统、装置、方法、和计算机可读介质。在一方法中,请求对等体从服务器获得所请求的数据的散列。请求对等体随后向其它对等体发送数据请求。该请求证明请求对等体拥有该散列。如果高速缓存对等体拥有该数据,则其生成证明其拥有所请求的数据的、对该请求的回复。如果请求对等体从高速缓存对等体接收到回复,则请求对等体建立到该高速缓存对等体的连接并从该高速缓存对等体检索该数据。如果请求对等体未从任何其它对等体接收到对该请求的回复,则请求对等体建立到服务器的连接并从该服务器中检索该数据。请求对等体存储该数据,以响应于来自其它对等体的请求来使用。

Description

安全的对等高速缓存共享
背景
由于经济全球化,许多企业经营总公司以及许多被称为分公司的远程公司。为在企业的所有公司之间提供网络连接,通常利用广域网(“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示出了用于此处所述主题的说明性操作环境的各方面。具体地,图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所发送的网络业务量。关于该过程的附加细节在以下参考图2-5提供。
图1中示出的对等计算机102A-102F的每一个都包括标准台式计算机、膝上型计算机、手持式计算机、服务器或其它类型的计算机系统。如以下详细讨论的,对等计算机102A-102F的每一个都包括协调在对等计算机102A-102F上安全地高速缓存数据的过程和在必要时从P2P高速缓存或从内容服务器104检索所请求的数据的过程的高速缓存管理器程序。关于对等计算机102A-102F中利用的软件和硬件的附加细节及其操作将在以下参考图2-5来提供。
图1所示的内容服务器计算机104包括可用于接收和响应来自对等计算机102A-102F的、对存储在内容服务器104上的或其可访问的数据的请求的标准服务器计算机。该内容可以包括任何类型的数字数据,包括但不限于,电子邮件(“e-mail”)消息、存储在内容服务器104或其它位置的数据文件,存储在内容服务器104或因特网110上的网页,诸如日历事件、联系人、任务、或便条等个人信息管理器(“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上执行的电子邮件应用程序之间的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使用上述散列函数生成所请求的数据的散列值。一旦生成了散列值,则内容服务器104将该散列值返回给请求对等体102A的高速缓存管理器202A。例程370随后继续到以下描述的操作384和386。
在例程330的操作544处,请求对等体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使用所存储的数据的散列值的散列来索引高速缓存的数据。以此方式,每一高速缓存对等体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处,该数据被索引、高速缓存、并返回给应用程序206B。例程330随后继续到操作360,其在此结束。
现参考图5,将讨论在此处提供的各实施例中利用的计算机500的说明性计算机体系结构。图5中示出的计算机体系结构示出常规的台式机、膝上型计算机、手持式计算机、或服务器计算机,且可被用来实现上述对等计算机102A-102F或内容服务器104。图5中所示的计算机体系结构包括中央处理单元502(“CPU”)、包括随机存取存储器506(“RAM”)和只读存储器(“ROM”)508的系统存储器510、以及将存储器耦合至CPU 502的系统总线504。基本输入/输出系统存储在ROM 510中,它包含帮助诸如在启动期间在计算机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或WINDOWSVISTA操作系统。大容量存储设备518和RAM 508还可以存储一个或多个程序模块。具体地,大容量存储设备518和RAM 508可以存储在图2中示出且参考其描述的各软件组件,如客户机应用程序206B、高速缓存管理器202B、散列522B、和从其它对等体或内容服务器接收到的数据524B。在内容服务器104的情况下,大容量存储设备518可被用来存储服务器应用程序206A、代理208、协议专用填补210、散列522A和数据524A。其它数据和程序模块也可以存储在对等体102A-102F和内容服务器104的大容量存储设备518上。
基于以上,可以理解,此处提供了用于安全的P2P高速缓存的系统、方法、装置、数据结构和计算机可读介质。尽管用对计算机结构特征、方法动作和计算机可读介质专用的语言描述了此处呈现的本主题,但可以理解,所附权利要求书中定义的本发明不必限于此处所述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式公开的。上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。

Claims (17)

1.一种用于安全地检索高速缓存在包括两个或更多联网的对等计算机的对等网络中的数据的方法,所述方法包括:
在所述网络上发送对所请求的数据的广播请求,所述广播请求包括足以向所述各对等计算机证明拥有所请求的数据的散列值的数据,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符;
从高速缓存对等计算机接收对所述广播请求的回复,所述回复包括足以证明所述高速缓存对等计算机拥有所请求的数据的数据;以及
响应于接收到所述回复,从所述高速缓存对等计算机接收所请求的数据。
2.如权利要求1所述的方法,其特征在于,还包括在发送所述广播请求之前:
向服务器计算机发送对所请求的数据的散列值的请求;以及
从所述服务器计算机接收所请求的数据的散列值。
3.如权利要求1所述的方法,其特征在于,所述回复的数据包括所述高速缓存对等计算机所生成的随机数据,所请求的数据的散列值的散列,以及以下各项的串接的散列:所请求的数据的散列值、所述高速缓存对等计算机所生成的所述随机数据、所述请求对等计算机的标识符、所述高速缓存对等计算机的标识符、和时间戳。
4.如权利要求2所述的方法,其特征在于,还包括响应于未从所述对等计算机的任一个接收到对所述广播请求的回复,从所述服务器计算机检索所请求的数据。
5.如权利要求4所述的方法,其特征在于,还包括响应于从所述高速缓存对等计算机检索所请求的数据:
存储所请求的数据;以及
使用一散列来索引所存储的所请求的数据,所述散列是与一字符串相串接的所请求数据散列值的散列。
6.如权利要求5所述的方法,其特征在于,从所述高速缓存对等计算机接收所请求的数据包括:
建立到所述高速缓存对等计算机的安全网络连接;以及
通过所述安全网络连接从所述高速缓存对等计算机接收所请求的数据。
7.一种用于安全地检索高速缓存在包括两个或更多联网的对等计算机的对等网络中的数据的系统,所述系统包括:
用于在所述网络上发送对所请求的数据的广播请求的装置,所述广播请求包括足以向所述各对等计算机证明拥有所请求的数据的散列值的数据,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符;
用于从高速缓存对等计算机接收对所述广播请求的回复的装置,所述回复包括足以证明所述高速缓存对等计算机拥有所请求的数据的数据;以及
用于响应于接收到所述回复,从所述高速缓存对等计算机接收所请求的数据的装置。
8.一种用于安全地提供高速缓存在包括两个或更多联网的对等计算机的对等网络中的数据的方法,所述方法包括:
在高速缓存对等计算机处接收对所请求的数据的广播请求,所述广播请求包括足以证明请求对等计算机拥有所请求的数据的散列值的数据,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符;
响应于接收到所述广播请求,确定所述高速缓存对等计算机是否拥有所请求的数据;
响应于确定所述高速缓存对等计算机拥有所请求的数据,发送对所述广播请求的回复,所述回复包括足以证明所述高速缓存对等计算机拥有所请求的数据的数据;以及
向所述请求对等计算机发送所请求的数据。
9.如权利要求8所述的方法,其特征在于,确定所述高速缓存对等计算机是否拥有所请求的数据包括:
搜索存储在所述高速缓存对等计算机处的索引以寻找所请求的数据的散列值的散列;以及
响应于在所述索引中定位所请求的数据的散列值的散列,确定所述高速缓存对等计算机拥有所请求的数据。
10.如权利要求9所述的方法,其特征在于,所述回复的数据包括所述高速缓存对等计算机所生成的随机数据,所请求的数据的散列值的散列,以及以下各项的串接的散列:所请求的数据的散列值、所述高速缓存对等计算机所生成的所述随机数据、所述请求对等计算机的标识符、所述高速缓存对等计算机的标识符、和时间戳。
11.如权利要求10所述的方法,其特征在于,向所述请求对等计算机发送所请求的数据包括:
建立与所述请求对等计算机的安全网络连接;以及
通过所述安全网络连接向所述请求对等计算机发送所请求的数据。
12.一种用于安全地提供高速缓存在包括两个或更多联网的对等计算机的对等网络中的数据的系统,所述系统包括:
用于在高速缓存对等计算机处接收对所请求的数据的广播请求的装置,所述广播请求包括足以证明请求对等计算机拥有所请求的数据的散列值的数据,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符;
用于响应于接收到所述广播请求,确定所述高速缓存对等计算机是否拥有所请求的数据的装置;
用于响应于确定所述高速缓存对等计算机拥有所请求的数据,发送对所述广播请求的回复的装置,所述回复包括足以证明所述高速缓存对等计算机拥有所请求的数据的数据;以及
用于向所述请求对等计算机发送所请求的数据的装置。
13.一种用于在包括两个或更多联网的对等计算机的对等网络中高速缓存数据的方法,所述方法包括:
由高速缓存管理器从应用协议接收数据请求,
由高速缓存管理器发送包括足以向所述各对等计算机证明拥有所请求的数据的散列值的数据的广播请求,
由高速缓存管理器接收包括足以证明一高速缓存对等计算机拥有所请求的数据的数据的、对所述广播请求的回复,以及
由高速缓存管理器响应于接收所述回复从所述高速缓存对等计算机接收所请求的数据,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符,
其中所述高速缓存管理器在所述对等计算机的每一个处执行。
14.如权利要求13所述的方法,其特征在于,所述高速缓存管理器结合连网协议栈在所述对等计算机上执行。
15.如权利要求14所述的方法,其特征在于还包括,由所述高速缓存管理器存储接收到的所请求的数据,以响应于对所述数据的请求来使用。
16.如权利要求15所述的方法,其特征在于还包括:
由高速缓存管理器接收包括足以证明请求对等计算机拥有所请求的数据的散列值的数据的广播请求,
由高速缓存管理器响应于接收到所述广播请求确定高速缓存对等计算机是否拥有所请求的数据,
由高速缓存管理器发送包括足以证明所述高速缓存对等计算机拥有所请求的数据的数据的、对所述广播请求的回复,以及
由高速缓存管理器向所述请求的对等计算机发送所请求的数据。
17.一种用于在包括两个或更多联网的对等计算机的对等网络中高速缓存数据的系统,所述系统包括:
由高速缓存管理器从应用协议接收数据请求的装置,
由高速缓存管理器发送包括足以向所述各对等计算机证明拥有所请求的数据的散列值的数据的广播请求的装置,
由高速缓存管理器接收包括足以证明一高速缓存对等计算机拥有所请求的数据的数据的、对所述广播请求的回复的装置,以及
由高速缓存管理器响应于接收所述回复从所述高速缓存对等计算机接收所请求的数据的装置,所述广播请求的数据包括所请求的数据的散列值的散列、请求对等计算机所生成的随机数据、时间戳、所述请求对等计算机的标识符,以及以下各项的串接的散列:所请求的数据的散列值、所述请求对等计算机所生成的所述随机数据、所述时间戳、和所述请求对等计算机的标识符,
其中所述高速缓存管理器在所述对等计算机的每一个处执行。
CN2007800365009A 2006-09-29 2007-09-20 安全的对等高速缓存共享 Active CN101523360B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/540,435 2006-09-29
US11/540,435 US7617322B2 (en) 2006-09-29 2006-09-29 Secure peer-to-peer cache sharing
PCT/US2007/079054 WO2008042617A1 (en) 2006-09-29 2007-09-20 Secure peer-to-peer cache sharing

Publications (2)

Publication Number Publication Date
CN101523360A CN101523360A (zh) 2009-09-02
CN101523360B true CN101523360B (zh) 2013-03-13

Family

ID=39262290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800365009A Active CN101523360B (zh) 2006-09-29 2007-09-20 安全的对等高速缓存共享

Country Status (6)

Country Link
US (1) US7617322B2 (zh)
EP (1) EP2069941B1 (zh)
JP (1) JP4762347B2 (zh)
KR (1) KR20090074021A (zh)
CN (1) CN101523360B (zh)
WO (1) WO2008042617A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146517A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd データ配布システムおよびインデクス保持装置
US8762636B2 (en) * 2006-12-14 2014-06-24 Emc Corporation Data storage system having a global cache memory distributed among non-volatile memories within system disk drives
US20090187978A1 (en) * 2008-01-18 2009-07-23 Yahoo! Inc. Security and authentications in peer-to-peer networks
US7958261B2 (en) * 2008-02-14 2011-06-07 Microsoft Corporation Domain name cache control system generating series of varying nonce-bearing domain names based on a function of time
US7865618B2 (en) * 2008-02-22 2011-01-04 Micorsoft Corporation Defeating cache resistant domain name systems
US9747340B2 (en) 2008-06-19 2017-08-29 Microsoft Technology Licensing, Llc Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US8661082B2 (en) * 2008-06-20 2014-02-25 Microsoft Corporation Extracting previous messages from a later message
US8769277B2 (en) * 2008-06-23 2014-07-01 Microsoft Corporation Content retrieval
US9286293B2 (en) * 2008-07-30 2016-03-15 Microsoft Technology Licensing, Llc Populating and using caches in client-side caching
US8064362B2 (en) * 2008-08-21 2011-11-22 Cisco Technology, Inc. Wide area network optimization proxy routing protocol
US9178895B2 (en) * 2009-08-07 2015-11-03 Secure Electrans Limited Data communication authentication system and method
US8700727B1 (en) * 2010-02-05 2014-04-15 Toshiba Corporation Peer-to-peer based caching for network file system
US9135154B2 (en) * 2010-03-02 2015-09-15 Microsoft Technology Licensing, Llc Algorithm execution output cache
US8380931B2 (en) * 2010-03-12 2013-02-19 Microsoft Corporation Memory cache data center
US8463788B2 (en) 2010-09-03 2013-06-11 Marvell World Trade Ltd. Balancing caching load in a peer-to-peer based network file system
JP2012242972A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 集約システム及び方法及び資源管理ノード及び計算ノード及び集約処理プログラム
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム
US10198462B2 (en) * 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
CN103581207A (zh) * 2012-07-18 2014-02-12 富泰华工业(深圳)有限公司 云端数据存储系统及基于该系统的数据存储与共享方法
US8875254B2 (en) 2012-08-07 2014-10-28 International Business Machines Corporation Cache sharing of enterprise data among peers via an enterprise server
US9460312B2 (en) 2014-03-11 2016-10-04 Qualcomm Incorporated Data integrity protection from rollback attacks for use with systems employing message authentication code tags
EP3139276B1 (en) * 2014-04-30 2020-07-01 Sony Corporation Client device, server, recording medium and information processing method
TWI540459B (zh) * 2015-01-22 2016-07-01 物聯智慧科技(深圳)有限公司 資料傳輸方法及系統與客戶端之資料傳輸方法
CN105120530B (zh) * 2015-09-11 2019-02-12 北京金山安全软件有限公司 一种获取数据的方法、装置及数据获取系统
GB2545397A (en) 2015-12-07 2017-06-21 Fujitsu Ltd A communications system, user apparatus, content source and method for secure content delivery
US10356039B1 (en) * 2016-09-30 2019-07-16 Amdocs Development Limited Apparatus, computer program, and method for utilizing a data structure to access fully qualified domain name information
US10152269B2 (en) * 2017-03-06 2018-12-11 Dell Products L.P. Method and system for preserving branch cache file data segment identifiers upon volume replication
CN108984433B (zh) * 2017-06-05 2023-11-03 华为技术有限公司 缓存数据控制方法及设备
US10917323B2 (en) 2018-10-31 2021-02-09 Nutanix, Inc. System and method for managing a remote office branch office location in a virtualized environment
US10841393B2 (en) * 2018-11-12 2020-11-17 Citrix Systems, Inc. Systems and methods for secure peer-to-peer caching
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US10999314B2 (en) 2019-07-19 2021-05-04 JFrog Ltd. Software release tracking and logging
WO2021014326A2 (en) 2019-07-19 2021-01-28 JFrog Ltd. Software release verification
US11695829B2 (en) * 2020-01-09 2023-07-04 JFrog Ltd. Peer-to-peer (P2P) downloading
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation
CN115023751B (zh) 2020-12-28 2023-12-05 京东方科技集团股份有限公司 显示面板和显示装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
CN1758646A (zh) * 2004-09-03 2006-04-12 微软公司 用于对等网络中的接收器驱动流传送的系统和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6542964B1 (en) 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6349368B1 (en) 1999-06-24 2002-02-19 International Business Machines Corporation High performance mechanism to support O state horizontal cache-to-cache transfers
US7089301B1 (en) 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US7010578B1 (en) 2000-09-21 2006-03-07 Akamai Technologies, Inc. Internet content delivery service with third party cache interface support
US20020112125A1 (en) 2000-12-18 2002-08-15 Copeland George P. Command caching to improve network server performance
US7136840B2 (en) * 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7194656B2 (en) 2001-11-28 2007-03-20 Yottayotta Inc. Systems and methods for implementing content sensitive routing over a wide area network (WAN)
US6912622B2 (en) 2002-04-15 2005-06-28 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol
US7263560B2 (en) * 2002-08-30 2007-08-28 Sun Microsystems, Inc. Decentralized peer-to-peer advertisement
JP2004185263A (ja) * 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム
GB0303192D0 (en) 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US20050100166A1 (en) * 2003-11-10 2005-05-12 Parc Inc. Systems and methods for authenticating communications in a network medium
US20050129240A1 (en) * 2003-12-15 2005-06-16 Palo Alto Research Center Incorporated Method and apparatus for establishing a secure ad hoc command structure
US7555531B2 (en) 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US8250230B2 (en) 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable peer groups
KR100529231B1 (ko) * 2005-07-18 2005-11-17 피어컴 주식회사 P2p 컨텐츠/서비스 제공 시스템 및 방법
JP4661429B2 (ja) * 2005-07-26 2011-03-30 ブラザー工業株式会社 情報配信システム、情報処理装置、情報処理プログラム及び情報処理方法
KR100747147B1 (ko) * 2005-10-05 2007-08-07 문종섭 콘텐츠 유통에 있어서, 저작권자와 네트워크 운영자그리고, 유통자 모두에게 수익을 보장해주고, 통신상의보안을 제공해주는 피투피 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
CN1758646A (zh) * 2004-09-03 2006-04-12 微软公司 用于对等网络中的接收器驱动流传送的系统和方法

Also Published As

Publication number Publication date
JP4762347B2 (ja) 2011-08-31
CN101523360A (zh) 2009-09-02
KR20090074021A (ko) 2009-07-03
WO2008042617A1 (en) 2008-04-10
EP2069941B1 (en) 2017-08-02
US7617322B2 (en) 2009-11-10
JP2010505201A (ja) 2010-02-18
EP2069941A1 (en) 2009-06-17
US20080082648A1 (en) 2008-04-03
EP2069941A4 (en) 2014-12-24

Similar Documents

Publication Publication Date Title
CN101523360B (zh) 安全的对等高速缓存共享
US10511496B2 (en) Method, system and computer program product for interception, quarantine and moderation of internal communications of uncontrolled systems
US9633024B2 (en) Policy driven cloud storage management and cloud storage policy router
JP4363520B2 (ja) ピアツーピア・ネットワークにおけるリソース検索方法
US7130921B2 (en) Centrally enhanced peer-to-peer resource sharing method and apparatus
US8156175B2 (en) System and method for searching for specific types of people or information on a peer-to-peer network
US20080133445A1 (en) File sharing based on social network
KR101850351B1 (ko) P2P 프로토콜을 이용한 IoC 정보 조회 방법
US11425571B2 (en) Device configuration method, apparatus and system
JP2002511961A (ja) ユニバーサルドメインルーティング及び発行制御システム
US20210336839A1 (en) Method of scaling reliability of computing network
CN109521956B (zh) 一种基于区块链的云存储方法、装置、设备及存储介质
CN109450685B (zh) 一种基于局部链节点离线的共识方法及节点
US20210390510A1 (en) Dynamically Providing Cybersecurity Training Based on User-Specific Threat Information
CN104219133A (zh) 通讯录的共享处理方法与系统
CN113194099B (zh) 一种数据代理方法及代理服务器
US20020194295A1 (en) Scalable data-sharing architecture
US8826026B2 (en) Systems and methods for tracking electronic files in computer networks using electronic signatures
KR20130092832A (ko) 통신 네트워크에서 가상 아이디를 이용한 대화 시스템 및 방법
WO2018071659A1 (en) Hub and agent communication through a firewall
US20110289154A1 (en) Online chatting system and method for user connected to website
EP3206149B1 (fr) Procede de controle d&#39;un parametre indicatif d&#39;un niveau de confiance associe a un compte utilisateur d&#39;un service en ligne
US20230334175A1 (en) Distributed Ledger Network for Data Portability
Draghici et al. Teamwork: A decentralized, secure and portable team management system
CN116318841A (zh) 基于Web多级缓存的微应用帐号免登方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150505

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150505

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.