CN109547508B - 一种实现资源访问的方法、装置及系统 - Google Patents
一种实现资源访问的方法、装置及系统 Download PDFInfo
- Publication number
- CN109547508B CN109547508B CN201710860435.7A CN201710860435A CN109547508B CN 109547508 B CN109547508 B CN 109547508B CN 201710860435 A CN201710860435 A CN 201710860435A CN 109547508 B CN109547508 B CN 109547508B
- Authority
- CN
- China
- Prior art keywords
- node
- client
- resource
- access request
- resource access
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文公开了一种实现资源访问的方法、装置及系统;上述实现资源访问的系统包括:客户端、服务端以及至少一个P2P节点;客户端,适于向服务端发送第一资源访问请求;服务端,适于根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点,并向客户端返回第一重定向报文;其中,第一重定向报文携带该P2P节点的节点信息;客户端,还适于根据第一重定向报文,向该P2P节点发送第二资源访问请求。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种实现资源访问的方法、装置及系统。
背景技术
对等计算(Peer-to-Peer,简称P2P)可以简单定义成通过直接交换来共享计算机资源和服务,而对等计算模型应用层形成的网络通常称为对等网络(P2P网络)。在P2P网络环境中,成千上万台彼此连接的计算机都处于对等的地位。P2P网络中的每一台计算机既能充当网络服务的请求者,又能对其它计算机的请求做出响应,提供资源和服务,比如,信息的共享和交换、计算资源(如CPU的共享)的共享、存储资源的共享(如缓存和磁盘空间的使用)等。
在传统的P2P网络中,通用客户端(比如,浏览器或者用户自行开发的只包含自有业务相关的客户端)若要访问P2P网络中的资源,都需要集成相应的P2P组件。比如,集成P2P组件的客户端在启动后,通过P2P组件连接P2P中心服务器,使得客户端成为P2P网络中的一个节点,从而可以从P2P中心服务器获取P2P网络中其它P2P节点(对等节点)的地址列表;如此,客户端可以尝试与其它P2P节点建立网络连接,并接受其它P2P节点的主动连接,从而与其它P2P节点进行数据交换。然而,由于操作系统的多样性,P2P组件的开发及部署难度很大,成本较高。而且,客户端必须集成相应的P2P组件才能访问P2P网络中的资源,影响了用户体验。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供一种实现资源访问的方法、装置及系统,能够实现客户端无需集成P2P组件即可访问到P2P网络中的资源。
第一方面,本申请实施例提供一种实现资源访问的系统,包括:客户端、服务端以及至少一个P2P节点;所述客户端,适于向所述服务端发送第一资源访问请求;所述服务端,适于根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点,并向所述客户端返回第一重定向报文;其中,所述第一重定向报文携带所述P2P节点的节点信息;所述客户端,还适于根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求。
第二方面,本申请实施例提供一种实现资源访问的方法,包括:
客户端向服务端发送第一资源访问请求;
接收所述服务端返回的第一重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个P2P节点的节点信息;
根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求。
第三方面,本申请实施例提供一种实现资源访问的装置,应用于客户端,包括:
第一发送模块,适于向服务端发送第一资源访问请求;
第一接收模块,适于接收所述服务端返回的第一重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个P2P节点的节点信息;
第二发送模块,适于根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求。
第四方面,本申请实施例提供一种实现资源访问的方法,包括:
服务端接收客户端发送的第一资源访问请求;
根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点,并向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息。
第五方面,本申请实施例提供一种实现资源访问的装置,应用于服务端,包括:
第二接收模块,适于接收客户端发送的第一资源访问请求;
第一处理模块,适于根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点;
第三发送模块,适于向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息。
第六方面,本申请实施例提供一种实现资源访问的方法,包括:
P2P节点接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;
在确认没有所述客户端所请求的资源时,执行以下一项:
从所述P2P节点所代理的内容分发网络(CDN)节点获取所述客户端所请求的资源;
向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息。
第七方面,本申请实施例提供一种实现资源访问的装置,应用于P2P节点,包括:
第三接收模块,适于接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;
第二处理模块,适于在确认没有所述客户端所请求的资源时,执行以下一项:
从所述P2P节点所代理的CDN节点获取所述客户端所请求的资源;
向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息。
第八方面,本申请实施例提供一种实现资源访问的装置,应用于客户端,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:向服务端发送第一资源访问请求;接收所述服务端返回的第一重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个P2P节点的节点信息;根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求。
第九方面,本申请实施例提供一种实现资源访问的装置,应用于服务端,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:接收客户端发送的第一资源访问请求;根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点,并向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息。
第十方面,本申请实施例提供一种实现资源访问的装置,应用于P2P节点,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;在确认没有所述客户端所请求的资源时,执行以下一项:从所述P2P节点所代理的CDN节点获取所述客户端所请求的资源;向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息。
此外,本申请实施例还提供一种计算机可读介质,存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述第二方面、第四方面以及第六方面中任一方面提供的实现资源访问的方法。
在本申请实施例中,服务端在接收到客户端的资源访问请求后,会确定能够给客户端提供所请求的资源的P2P节点,并向客户端发送重定向报文,以使客户端向P2P节点请求资源。如此,客户端无需集成P2P组件,即可访问到P2P网络中的资源,从而提高用户体验,并节省成本。
当然,实施本申请的任一产品不一定需要同时达到以上所有优点。
附图说明
图1为本申请实施例的实现资源访问的系统的示意图一;
图2为本申请实施例的实现资源访问的系统的示意图二;
图3为本申请实施例一的示意图;
图4为本申请实施例二的示意图;
图5为本申请实施例三的示意图;
图6为本申请实施例四的示意图;
图7为本申请实施例的应用于客户端的实现资源访问的方法的流程图;
图8为本申请实施例的应用于客户端的实现资源访问的装置的示意图;
图9为本申请实施例的应用于服务端的实现资源访问的方法的流程图;
图10为本申请实施例的应用于服务端的实现资源访问的装置的示意图;
图11为本申请实施例的应用于P2P节点的实现资源访问的方法的流程图;
图12为本申请实施例的应用于P2P节点的实现资源访问的装置的示意图。
具体实施方式
以下结合附图对本申请实施例进行详细说明,应当理解,以下所说明的实施例仅用于说明和解释本申请,并不用于限定本申请。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
一些实施方式中,执行实现资源访问的方法的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1为本申请实施例的实现资源访问的系统的示意图一。如图1所示,本申请实施例提供一种实现资源访问的系统,包括:客户端101、服务端102以及至少一个P2P节点(比如,P2P网络中的P2P节点103a、103n等)。在本实施例中,客户端101无需集成P2P组件即可访问到P2P节点上的资源。其中,资源可以指各种类型的文件,比如,图片、音频文件、视频文件等。本申请对于资源包括的文件类型并不限定。
本实施例中,客户端101可以指客户端计算设备或者客户端计算设备上的应用程序(APP),比如,浏览器(比如,Chrome、Firefox、IE等),或者用户自行开发的只包含自有业务相关的客户端(比如,视频播放器、新闻客户端等)。其中,客户端101没有集成P2P组件。客户端计算设备可以为笔记本电脑、手机等移动终端,或者,台式电脑等固定终端。
本实施例中,服务端102可以指服务器、服务器集群、或者服务器或服务器集群上运行的虚拟机。然而,本申请对此并不限定。
本实施例中,客户端101适于向服务端102发送第一资源访问请求,服务端102适于根据第一资源访问请求,确定能够给客户端101提供所请求的资源的一个P2P节点(比如,P2P节点103a),并向客户端101返回第一重定向报文,其中,第一重定向报文携带P2P节点的节点信息(比如,P2P节点103a的地址信息);客户端101还适于根据第一重定向报文,向该P2P节点(比如,P2P节点103a)发送第二资源访问请求。换言之,服务端102通过将客户端101的资源访问请求重定向到P2P节点,实现客户端101无需集成P2P组件即可访问P2P网络的资源。
其中,客户端101在向服务端102发送第一资源访问请求之前,可以通过域名解析寻找到服务端102。比如,当用户通过客户端101访问一个域名地址时,客户端101首先向DNS(Domain Name System,域名系统)服务器搜索相对应的IP(Internet Protocol,互联网协议)地址,DNS服务器找到对应的IP地址后,返回IP地址给客户端101,客户端101根据DNS服务器返回的IP地址发出第一资源访问请求。其中,第一资源访问请求可以携带客户端101所请求的资源的标识信息,比如,资源名称或标识等。
本实施例中,P2P网络可以包括多个P2P节点以及P2P中心服务器,P2P中心服务器可以存储P2P网络中的多个P2P节点的节点信息和资源列表。其中,每个P2P节点的节点信息可以包括以下至少一项:节点标识(ID)、节点地址信息(比如,IP地址、端口信息)、节点所属地区信息、节点所属运营商信息、节点网络延时信息、节点负载信息。每个P2P节点的资源列表可以包括:这个节点所拥有的所有资源的信息,比如,资源标识(ID)。
本实施例中,服务端102可以周期性从P2P网络的P2P中心服务器获取至少一个P2P节点的节点信息和资源列表,并进行保存。
本实施例中,服务端102可以通过以下方式根据第一资源访问请求,确定能够给客户端101提供所请求的资源的一个P2P节点:
根据第一资源访问请求,确定客户端101所请求的资源;
根据存储的至少一个P2P节点的节点信息以及资源列表,确定能够给客户端101提供所请求的资源的P2P节点列表;
根据预设策略从P2P节点列表中筛选出一个P2P节点。
其中,根据预设策略从P2P节点列表中筛选出一个P2P节点,可以包括以下至少之一:
通过第一资源访问请求,获取客户端的位置信息(比如,IP地址、所属地区信息、所属运营商信息),从确定的P2P节点列表中筛选出与客户端的位置信息匹配的P2P节点;
从确定的P2P节点列表中筛选出网络延时和负载情况中至少一个满足预定条件的P2P节点。
其中,第一资源访问请求可以携带客户端所请求资源的资源标识(ID),根据该资源ID和至少一个P2P节点的资源列表,可以确定资源列表中包括该资源ID的P2P节点,从而得到P2P节点列表;再根据预设策略从P2P节点列表中筛选出一个合适的P2P节点。一些实现方式中,可以根据P2P节点列表中至少一个P2P节点的节点信息以及客户端的位置信息,从P2P节点列表中确定与客户端的位置信息最匹配的P2P节点,比如,与客户端的所属地区信息和所属运营商信息一致的P2P节点;或者,当从P2P节点列表中确定的与客户端的位置信息匹配的P2P节点为多个时,根据这些P2P节点的网络延时和负载情况,从这些P2P节点中筛选出网络延时和负载情况最佳的一个P2P节点,比如,网络延时最短且负载最小的一个P2P节点。
一些实现方式中,P2P节点(比如,P2P节点103a)适于在收到客户端101的第二资源访问请求,且确认拥有客户端101所请求的资源后,向客户端101返回该资源。
一些实现方式中,P2P节点(比如,P2P节点103a)适于在收到客户端101的第二资源访问请求,且确认没有客户端101所请求的资源时,执行以下至少一项:
从自己所代理的内容分发网络(CDN,Content Delivery Network)节点获取客户端101所请求的资源;
向客户端101返回第二重定向报文,以使客户端101根据第二重定向报文向服务端102发送第三资源访问请求;其中,第二重定向报文携带服务端102的地址信息。
其中,一个P2P节点(比如,P2P节点103a)在接收到客户端101的第二资源访问请求后,会先确认是否拥有客户端101所请求的资源,若该P2P节点拥有该资源,则向客户端101返回该资源;若该P2P节点没有该资源,且该P2P节点充当CDN节点的代理时,可以从所代理的CDN节点获取该资源,并返回给客户端101;或者,若该P2P节点确认没有该资源,且该P2P节点没有从所代理的CDN节点获取到该资源时,该P2P节点可以向客户端101返回第二重定向报文,以使客户端101向服务端102请求该资源;或者,若该P2P节点确认没有该资源时,该P2P节点可以向客户端101返回第二重定向报文,以使客户端101向服务端102请求该资源。
一些实现方式中,在该P2P节点向客户端101返回第二重定向报文,客户端101根据第二重定向报文向服务端102发送第三资源访问请求时,服务端102,还可以适于根据客户端101发送的第三资源访问请求,确定能够给客户端101提供所请求的资源的另一个P2P节点(比如,P2P节点103n),并向客户端101返回第三重定向报文,以使客户端101根据第三重定向报文向另一个P2P节点发送第四资源访问请求;其中,第三重定向报文携带另一个P2P节点的节点信息(比如,P2P节点103n的地址信息)。
换言之,一个P2P节点没有客户端101所请求的资源时,可以将客户端101的请求再次重定向给服务端102,由服务端102重新确定另一个P2P节点,再将客户端101的请求重定向到另一个P2P节点。若另一个P2P节点拥有客户端101所请求的资源,则向客户端101返回资源;若没有,则另一个P2P节点可以从所代理的CDN节点获取资源,或者,再将客户端101的请求重定向到服务端102。其中,每个P2P节点接收到客户端的请求后的处理是类似的,故不再赘述。
一些实现方式中,第三资源访问请求携带P2P节点的标识信息;服务端102,还可以适于根据第三资源访问请求,更新存储的该P2P节点的资源列表。其中,在客户端没有从一个P2P节点获取到所请求的资源时,在该P2P节点的重定向指示下向服务端发送第三资源访问请求,该第三资源访问请求携带该P2P节点的标识信息,因此,服务端102可以知道该P2P节点无法提供客户端101所请求的资源,如此,服务端102可以更新存储的该P2P节点的资源列表,比如,从该P2P节点的资源列表中删除该资源。
本实施例中,第一重定向报文、第二重定向报文以及第三重定向报文均可以为HTTP302协议报文。
本实施例中,服务端102可以为客户端101决策P2P节点,并通过重定向反馈,使得客户端101向服务端102决策确定的P2P节点请求资源,如此,客户端101无需集成P2P组件即可访问P2P网络的资源,从而提高用户体验、节省成本。
图2为本申请实施例的实现资源访问的系统的示意图二。如图2所示,本申请实施例提供一种实现资源访问的系统,包括:客户端201、服务端202、至少一个P2P节点(比如,P2P网络中的P2P节点203a、203n等)以及数据库204。
本实施例提供的系统与图1所示实施例提供的系统的区别在于:本实施例提供的系统还包括数据库204,适于存储至少一个P2P节点的节点信息以及资源列表。
本实施例中,数据库204可以周期性从P2P网络的P2P中心服务器获取至少一个P2P节点的节点信息和资源列表,并进行保存。
本实施例中,服务端202可以适于通过以下方式根据第一资源访问请求,确定能够给客户端201提供所请求的资源的一个P2P节点:
根据第一资源访问请求,确定客户端201所请求的资源;
从数据库204查询能够给客户端201提供所请求的资源的P2P节点,得到P2P节点列表;
根据预设策略从P2P节点列表中筛选出一个P2P节点。
其中,服务端202在决策P2P节点时,向数据库204查询信息,根据从数据库204查询到的信息,进行P2P节点的筛选。
关于本实施例的其他相关说明可以参照图1所示实施例的描述,故于此不再赘述。
下面通过多个实施例对本申请的方案进行说明。
实施例一
如图3所示,本实施例中,以服务端为由服务器集群支持的云决策平台为例进行说明,其中,云决策平台周期性从P2P网络获取至少一个P2P节点的节点信息和资源列表并进行存储。每个P2P节点的节点信息可以包括以下至少一项:节点标识(ID)、节点地址信息(比如,IP地址、端口信息)、节点所属地区信息、节点所属运营商信息、节点网络延时信息、节点负载信息。每个P2P节点的资源列表可以包括:这个节点所拥有的所有资源的信息,比如,资源标识(ID)。
本实施例的说明如下:
步骤301、客户端通过域名解析寻找到云决策平台,向云决策平台发送第一资源访问请求,请求一个资源(如图片、视频等);比如,第一资源访问请求可以为:GET/a.imgHTTP/1.1。
步骤302、云决策平台根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点(比如,P2P节点A);
比如,云决策平台根据第一资源访问请求,获取到客户端的IP地址和所请求的资源ID,根据客户端的IP地址确定客户端所属的地区和运营商信息,根据资源ID获取到拥有客户端所请求的资源的P2P节点,得到拥有该资源且与客户端的地区和运营商匹配的P2P节点列表,然后根据P2P节点列表中P2P节点的网络延时和负载情况决策出一个最佳的P2P节点,比如P2P节点A。
步骤303、云决策平台向客户端返回第一重定向报文,其中,第一重定向报文携带决策出的P2P节点A的地址信息;比如,第一重定向报文可以为HTTP/1.1 302MovedTemporarily Location:http://ip:port/resource_info。
步骤304、客户端根据第一重定向报文,向P2P节点A发送第二资源访问请求,其中,第二资源访问请求携带资源信息;比如,第二资源访问请求可以为GET/resource_infoHTTP/1.1。
步骤305、P2P节点A接收第二资源访问请求,且确认拥有客户端所请求的资源时,向客户端返回资源。
实施例二
如图4所示,本实施例中,以服务端为由服务器集群支持的云决策平台为例进行说明,其中,云决策平台周期性从P2P网络获取至少一个P2P节点的节点信息和资源列表并进行存储。每个P2P节点的节点信息可以包括以下至少一项:节点标识(ID)、节点地址信息(比如,IP地址、端口信息)、节点所属地区信息、节点所属运营商信息、节点网络延时信息、节点负载信息。每个P2P节点的资源列表可以包括:这个节点所拥有的所有资源的信息,比如,资源标识(ID)。本实施例中,P2P节点A可以充当CDN节点的代理。
本实施例的说明如下:
步骤401、客户端通过域名解析寻找到云决策平台,向云决策平台发送第一资源访问请求,请求一个资源(如图片、视频等);比如,第一资源访问请求可以为:GET/a.imgHTTP/1.1。
步骤402、云决策平台根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点(比如,P2P节点A);
比如,云决策平台根据第一资源访问请求,获取到客户端的IP地址和所请求的资源ID,根据客户端的IP地址确定客户端所属的地区和运营商信息,根据资源ID获取到拥有客户端所请求的资源的P2P节点,得到拥有该资源且与客户端的地区和运营商匹配的P2P节点列表,然后根据P2P节点列表中P2P节点的网络延时和负载情况决策出一个最佳的P2P节点,比如P2P节点A。
步骤403、云决策平台向客户端返回第一重定向报文,其中,第一重定向报文携带决策出的P2P节点A的地址信息;比如,第一重定向报文可以为HTTP/1.1 302MovedTemporarily Location:http://ip:port/resource_info。
步骤404、客户端根据第一重定向报文,向P2P节点A发送第二资源访问请求,其中,第二资源访问请求携带资源信息;比如,第二资源访问请求可以为GET/resource_infoHTTP/1.1。
步骤405、P2P节点A接收第二资源访问请求,且确认没有客户端所请求的资源时,向所代理的CDN节点请求资源。
步骤406、CDN节点向P2P节点A返回资源。
步骤407、P2P节点A保存CDN节点返回的资源,并向客户端返回资源。
实施例三
如图5所示,本实施例中,以服务端为由服务器集群支持的云决策平台为例进行说明,其中,云决策平台周期性从P2P网络获取至少一个P2P节点的节点信息和资源列表并进行存储。每个P2P节点的节点信息可以包括以下至少一项:节点标识(ID)、节点地址信息(比如,IP地址、端口信息)、节点所属地区信息、节点所属运营商信息、节点网络延时信息、节点负载信息。每个P2P节点的资源列表可以包括:这个节点所拥有的所有资源的信息,比如,资源标识(ID)。
本实施例的说明如下:
步骤501、客户端通过域名解析寻找到云决策平台,向云决策平台发送第一资源访问请求,请求一个资源(如图片、视频等);比如,第一资源访问请求可以为:GET/a.imgHTTP/1.1。
步骤502、云决策平台根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点(比如,P2P节点A);
比如,云决策平台根据第一资源访问请求,获取到客户端的IP地址和所请求的资源ID,根据客户端的IP地址确定客户端所属的地区和运营商信息,根据资源ID获取到拥有客户端所请求的资源的P2P节点,得到拥有该资源且与客户端的地区和运营商匹配的P2P节点列表,然后根据P2P节点列表中P2P节点的网络延时和负载情况决策出一个最佳的P2P节点,比如P2P节点A。
步骤503、云决策平台向客户端返回第一重定向报文,其中,第一重定向报文携带决策出的P2P节点A的地址信息;比如,第一重定向报文可以为HTTP/1.1 302MovedTemporarily Location:http://ip:port/resource_info。
步骤504、客户端根据第一重定向报文,向P2P节点A发送第二资源访问请求,其中,第二资源访问请求携带资源信息;比如,第二资源访问请求可以为GET/resource_infoHTTP/1.1。
步骤505、P2P节点A接收第二资源访问请求,且确认没有客户端所请求的资源时,向客户端返回第二重定向报文;其中,第二重定向报文携带云决策平台的地址信息以及P2P节点A的标识信息;比如,第二重定向报文可以为:HTTP/1.1 302Moved TemporarilyLocation:http://云决策平台/resource_info&P2P节点A的标识信息。
步骤506、客户端根据第二重定向报文,向云决策平台发送第三资源访问请求,其中,第三资源访问请求携带P2P节点A的标识信息。
步骤507、云决策平台根据第三资源访问请求,确定能够给客户端提供所请求的资源的另一个P2P节点(比如,P2P节点B);其中,云决策平台确定P2P节点B的过程可以参照步骤502,故于此不再赘述;
另外,在本步骤中,云决策平台还可以根据第三资源访问请求,更新存储的P2P节点A的资源列表,比如,从P2P节点A的资源列表中删除客户端所请求的资源。
步骤508、云决策平台向客户端返回第三重定向报文,其中,第三重定向报文携带P2P节点B的节点信息(比如,地址信息)。
步骤509、客户端根据第三重定向报文,向P2P节点B发送第四资源访问请求。
步骤510、P2P节点B接收第四资源访问请求,且确认拥有客户端所请求的资源时,向客户端返回资源。
实施例四
如图6所示,本实施例中,以服务端为由服务器集群支持的云决策平台为例进行说明。其中,数据库周期性从P2P网络获取至少一个P2P节点的节点信息和资源列表并进行存储。每个P2P节点的节点信息可以包括以下至少一项:节点标识(ID)、节点地址信息(比如,IP地址、端口信息)、节点所属地区信息、节点所属运营商信息、节点网络延时信息、节点负载信息。每个P2P节点的资源列表可以包括:这个节点所拥有的所有资源的信息,比如,资源标识(ID)。
本实施例与实施例三的区别在于:本实施例中,数据库存储至少一个P2P节点的节点信息和资源列表,云决策平台在决策P2P节点时向数据库查询信息;以及根据接收到的第三资源访问请求,通知数据库进行信息更新。
本实施例的说明如下:
步骤601、客户端通过域名解析寻找到云决策平台,向云决策平台发送第一资源访问请求,请求一个资源(如图片、视频等);比如,第一资源访问请求可以为:GET/a.imgHTTP/1.1。
步骤602、云决策平台根据第一资源访问请求,从数据库查询能够给客户端提供所请求的资源的P2P节点,得到P2P节点列表;
比如,云决策平台根据第一资源访问请求,获取到客户端的IP地址和所请求的资源ID,根据客户端的IP地址从数据库查询与客户端所属的地区和运营商信息匹配的P2P节点,根据资源ID从数据库查询拥有客户端所请求的资源的P2P节点,得到拥有该资源且与客户端的地区和运营商匹配的P2P节点列表。
步骤603、云决策平台确定能够给客户端提供所请求的资源的一个P2P节点(比如,P2P节点A);比如,根据步骤602得到的P2P节点列表中P2P节点的网络延时和负载情况,决策出一个最佳的P2P节点,比如P2P节点A。
步骤604、云决策平台向客户端返回第一重定向报文,其中,第一重定向报文携带决策出的P2P节点A的地址信息;比如,第一重定向报文可以为HTTP/1.1 302MovedTemporarily Location:http://ip:port/resource_info。
步骤605、客户端根据第一重定向报文,向P2P节点A发送第二资源访问请求,其中,第二资源访问请求携带资源信息;比如,第二资源访问请求可以为GET/resource_infoHTTP/1.1。
步骤606、P2P节点A接收第二资源访问请求,且确认没有客户端所请求的资源时,向客户端返回第二重定向报文;其中,第二重定向报文携带云决策平台的地址信息以及P2P节点A的标识信息;比如,第二重定向报文可以为:HTTP/1.1 302Moved TemporarilyLocation:http://云决策平台/resource_info&P2P节点A的标识信息。
步骤607、客户端根据第二重定向报文向云决策平台发送第三资源访问请求,其中,第三资源访问请求携带P2P节点A的标识信息。
步骤608、云决策平台根据第三资源访问请求,通知数据库进行信息更新;比如,通知数据库从P2P节点A的资源列表中删除客户端所请求的资源。
步骤609、云决策平台确定能够给客户端提供所请求的资源的另一个P2P节点(比如,P2P节点B);其中,云决策平台确定P2P节点B的过程可以参照步骤602和步骤603,故于此不再赘述。
步骤610、云决策平台向客户端返回第三重定向报文,其中,第三重定向报文携带P2P节点B的节点信息(比如,地址信息)。
步骤611、客户端根据第三重定向报文,向P2P节点B发送第四资源访问请求。
步骤612、P2P节点B接收第四资源访问请求,且确认拥有客户端所请求的资源时,向客户端返回资源。
需要说明的是,在实施例三和实施例四中,若P2P节点B接收到第四资源访问请求后确认没有客户端所请求的资源时进行的处理可以参照P2P节点A在确认没有客户端所请求的资源时进行的处理,故于此不再赘述。
图7为本申请实施例的应用于客户端的实现资源访问的方法的流程图。如图7所示,本申请实施例提供一种实现资源访问的方法,应用于客户端,包括:
步骤701、客户端向服务端发送第一资源访问请求;
步骤702、接收服务端返回的第一重定向报文,其中,第一重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的一个P2P节点的节点信息;
步骤703、根据第一重定向报文,向该P2P节点发送第二资源访问请求。
一些实现方式中,在步骤703之后,本实施例的方法还可以包括以下之一:
接收该P2P节点返回的资源;
接收该P2P节点返回的第二重定向报文,其中,第二重定向报文携带服务端的地址信息以及该P2P节点的标识信息;向服务端发送第三资源访问请求,其中,第三资源访问请求携带该P2P节点的标识信息;接收服务端返回的第三重定向报文,其中,第三重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的另一P2P节点的节点信息;根据第三重定向报文,向该另一P2P节点发送第四资源访问请求。
关于本实施例的相关说明可以参照上述系统实施例的描述,故于此不再赘述。
如图8所示,本申请实施例还提供一种实现资源访问的装置,应用于客户端,包括:
第一发送模块801,适于向服务端发送第一资源访问请求;
第一接收模块802,适于接收服务端返回的第一重定向报文,其中,第一重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的一个P2P节点的节点信息;
第二发送模块803,适于根据第一重定向报文,向该P2P节点发送第二资源访问请求。
一些实现方式中,第一接收模块802,还适于接收该P2P节点返回的资源;或者,接收该P2P节点返回的第二重定向报文,其中,第二重定向报文携带服务端的地址信息以及P2P节点的标识信息;
第一发送模块801,还适于在第一接收模块802接收该P2P节点返回的第二重定向报文时,向服务端发送第三资源访问请求,其中,第三资源访问请求携带该P2P节点的标识信息;第一接收模块802,还适于在第一发送模块801向服务端发送第三资源访问请求之后,接收服务端返回的第三重定向报文,其中,第三重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的另一P2P节点的节点信息;第二发送模块803,还适于根据第三重定向报文,向另一P2P节点发送第四资源访问请求。
关于本实施例的相关说明可以参照图7所示实施例的描述,故于此不再赘述。
本申请实施例还提供一种实现资源访问的装置,应用于客户端(比如,客户端计算设备),包括:存储器以及处理器;其中,存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被处理器读取执行时,执行以下操作:向服务端发送第一资源访问请求;接收服务端返回的第一重定向报文,其中,第一重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的一个P2P节点的节点信息;根据第一重定向报文,向该P2P节点发送第二资源访问请求。
一些实现方式中,该用于实现资源访问的程序在被处理器读取执行时,还执行以下之一操作:
接收该P2P节点返回的资源;
接收该P2P节点返回的第二重定向报文,其中,第二重定向报文携带服务端的地址信息以及该P2P节点的标识信息;向服务端发送第三资源访问请求,其中,第三资源访问请求携带该P2P节点的标识信息;接收服务端返回的第三重定向报文,其中,第三重定向报文携带由服务端确定的、能够给客户端提供所请求的资源的另一P2P节点的节点信息;根据第三重定向报文,向另一P2P节点发送第四资源访问请求。
本实施例中,用于实现资源访问的程序在被处理器读取执行时,所执行的操作对应于图7所示实施例中的步骤701至步骤703;该程序所执行的操作的其它细节可参见图7所示实施例。
图9为本申请实施例的应用于服务端的实现资源访问的方法的流程图。如图9所示,本申请实施例还提供一种实现资源访问的装置,应用于服务端,包括:
步骤901、服务端接收客户端发送的第一资源访问请求;
步骤902、根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点;
步骤903、向客户端返回第一重定向报文,以使客户端根据第一重定向报文向P2P节点请求资源;其中,第一重定向报文携带该P2P节点的节点信息。
一些实现方式中,步骤902可以包括:
根据第一资源访问请求,确定客户端所请求的资源;
根据服务端存储的至少一个P2P节点的节点信息以及资源列表,确定能够给客户端提供所请求的资源的P2P节点列表;或者,从存储有至少一个P2P节点的节点信息以及资源列表的数据库查询能够给客户端提供所请求的资源的P2P节点,得到P2P节点列表;
根据预设策略从P2P节点列表中筛选出一个P2P节点。
其中,根据预设策略从P2P节点列表中筛选出一个P2P节点,可以包括以下至少之一:
通过第一资源访问请求,获取客户端的位置信息,从P2P节点列表中筛选出与客户端的位置信息匹配的P2P节点;
从P2P节点列表中筛选出网络延时和负载情况中至少一个满足预定条件的P2P节点。
一些实现方式中,本实施例的方法还可以包括:
接收客户端发送的第三资源访问请求,其中,第三资源访问请求携带P2P节点的标识信息;
根据第三资源访问请求,确定能够给客户端提供所请求的资源的另一P2P节点,并向客户端返回第三重定向报文,以使客户端根据第三重定向报文向另一P2P节点请求该资源;其中,第三重定向报文携带另一P2P节点的节点信息。
一些实现方式中,在接收客户端发送的携带P2P节点的标识信息的第三资源访问请求之后,本实施例的方法还可以包括:
根据第三资源访问请求,更新存储的该P2P节点的资源列表,或者,通知数据库更新存储的该P2P节点的资源列表。
关于本实施例的相关说明可以参照上述系统实施例的描述,故于此不再赘述。
如图10所示,本申请实施例还提供一种实现资源访问的装置,应用于服务端,包括:
第二接收模块1001,适于接收客户端发送的第一资源访问请求;
第一处理模块1002,适于根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点;
第三发送模块1003,适于向客户端返回第一重定向报文,以使客户端根据第一重定向报文向该P2P节点请求资源;其中,第一重定向报文携带该P2P节点的节点信息。
一些实现方式中,第一处理模块1002,可以适于通过以下方式根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点:
根据第一资源访问请求,确定客户端所请求的资源;
根据服务端存储的至少一个P2P节点的节点信息以及资源列表,确定能够给客户端提供所请求的资源的P2P节点列表;或者,从存储有至少一个P2P节点的节点信息以及资源列表的数据库查询能够给客户端提供所请求的资源的P2P节点,得到P2P节点列表;
根据预设策略从P2P节点列表中筛选出一个P2P节点。
一些实现方式中,第一处理模块1002可以适于通过以下至少之一方式根据预设策略从P2P节点列表中筛选出一个P2P节点:
通过第一资源访问请求,获取客户端的位置信息,从P2P节点列表中筛选出与客户端的位置信息匹配的P2P节点;
从P2P节点列表中筛选出网络延时和负载情况中至少一个满足预定条件的P2P节点。
一些实现方式中,第二接收模块1001,还可以适于接收客户端发送的第三资源访问请求,其中,第三资源访问请求携带P2P节点的标识信息;第一处理模块1002,还可以适于根据第三资源访问请求,确定能够给客户端提供所请求的资源的另一P2P节点;第三发送模块1003,还适于向客户端返回第三重定向报文,以使客户端根据第三重定向报文向另一P2P节点请求资源;其中,第三重定向报文携带另一P2P节点的节点信息。
一些实现方式中,第一处理模块1002还适于根据携带P2P节点的标识信息的第三资源访问请求,更新存储的该P2P节点的资源列表,或者,通知数据库更新存储的该P2P节点的资源列表。
关于本实施例的相关说明可以参照图9所示的实施例的描述,故于此不再赘述。
本申请实施例还提供一种实现资源访问的装置,应用于服务端,包括:存储器以及处理器;其中,存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被处理器读取执行时,执行以下操作:接收客户端发送的第一资源访问请求;根据第一资源访问请求,确定能够给客户端提供所请求的资源的一个P2P节点,并向客户端返回第一重定向报文,以使客户端根据第一重定向报文向该P2P节点请求资源;其中,第一重定向报文携带该P2P节点的节点信息。
本实施例中,用于实现资源访问的程序在被处理器读取执行时,所执行的操作对应于图9所示实施例中的步骤901至步骤903;该程序所执行的操作的其它细节可参见图9所示实施例。
图11为本申请实施例的应用于P2P节点的实现资源访问的方法的流程图。如图11所示,本申请实施例还提供一种实现资源访问的方法,应用于P2P节点,包括:
步骤1101、P2P节点接收客户端发送的第二资源访问请求,其中,第二资源访问请求是客户端向服务端发送第一资源访问请求后、接收到服务端返回的第一重定向报文后发送的;
步骤1102、在确认没有客户端所请求的资源时,执行以下一项:从P2P节点所代理的CDN节点获取客户端所请求的资源;向客户端返回第二重定向报文,以使客户端根据第二重定向报文向服务端发送第三资源访问请求;其中,第二重定向报文携带服务端的地址信息以及P2P节点的标识信息。
一些实现方式中,本实施例的方法还可以包括:在确认拥有客户端所请求的资源时,向客户端返回资源。
关于本实施例的相关说明可以参照上述系统实施例的描述,故于此不再赘述。
如图12所示,本申请实施例还提供一种实现资源访问的装置,应用于P2P节点,包括:
第三接收模块1201,适于接收客户端发送的第二资源访问请求,其中,第二资源访问请求是客户端向服务端发送第一资源访问请求后、接收到服务端返回的第一重定向报文后发送的;
第二处理模块1202,适于在确认没有客户端所请求的资源时,执行以下一项:从所代理的CDN节点获取客户端所请求的资源;向客户端返回第二重定向报文,以使客户端根据第二重定向报文向服务端发送第三资源访问请求;其中,第二重定向报文携带服务端的地址信息以及P2P节点的标识信息。
一些实现方式中,第二处理模块1202,还可以适于在确认拥有客户端所请求的资源时,向客户端返回该资源。
关于本实施例的相关说明可以参照图11所示的实施例的描述,故于此不再赘述。
本申请实施例还提供一种实现资源访问的装置,应用于P2P节点,包括:存储器以及处理器;其中,存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被处理器读取执行时,执行以下操作:
接收客户端发送的第二资源访问请求,其中,第二资源访问请求是客户端向服务端发送第一资源访问请求后、接收到服务端返回的第一重定向报文后发送的;在确认没有客户端所请求的资源时,执行以下一项:从P2P节点所代理的CDN节点获取客户端所请求的资源;向客户端返回第二重定向报文,以使客户端根据第二重定向报文向服务端发送第三资源访问请求;其中,第二重定向报文携带服务端的地址信息以及P2P节点的标识信息。
本实施例中,用于实现资源访问的程序在被处理器读取执行时,所执行的操作对应于图11所示实施例中的步骤1101至步骤1102;该程序所执行的操作的其它细节可参见图11所示实施例。
此外,本申请实施例还提供一种计算机可读介质,存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现图7、图9或图11所示实施例的实现资源访问的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块或单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块或单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (22)
1.一种实现资源访问的系统,其特征在于,包括:客户端、服务端以及至少一个对等P2P节点;
所述客户端,适于向所述服务端发送第一资源访问请求;
所述服务端,适于根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点,并向所述客户端返回第一重定向报文;其中,所述第一重定向报文携带所述P2P节点的节点信息;
所述客户端,还适于根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求;
所述P2P节点,适于在收到所述第二资源访问请求,且确认没有所述客户端所请求的资源时,向所述客户端返回第二重定向报文;
所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;
所述服务端,还适于根据所述客户端发送的所述第三资源访问请求,确定能够给所述客户端提供所请求的资源的另一个P2P节点,并向所述客户端返回第三重定向报文;
所述客户端根据所述第三重定向报文向所述另一个P2P节点发送第四资源访问请求;其中,所述第三重定向报文携带所述另一个P2P节点的节点信息。
2.根据权利要求1所述的系统,其特征在于,所述服务端,还适于存储所述至少一个P2P节点的节点信息以及资源列表;
所述服务端,适于通过以下方式根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点:
根据所述第一资源访问请求,确定所述客户端所请求的资源;
根据存储的所述至少一个P2P节点的节点信息以及资源列表,确定能够给所述客户端提供所请求的资源的P2P节点列表;
根据预设策略从所述P2P节点列表中筛选出一个P2P节点。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括:数据库,适于存储所述至少一个P2P节点的节点信息以及资源列表;
所述服务端,适于通过以下方式根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点:
根据所述第一资源访问请求,确定所述客户端所请求的资源;
从所述数据库查询能够给所述客户端提供所请求的资源的P2P节点,得到P2P节点列表;
根据预设策略从所述P2P节点列表中筛选出一个P2P节点。
4.根据权利要求2或3所述的系统,其特征在于,所述根据预设策略从所述P2P节点列表中筛选出一个P2P节点,包括以下至少之一:
通过所述第一资源访问请求,获取所述客户端的位置信息,从所述P2P节点列表中筛选出与所述客户端的位置信息匹配的P2P节点;
从所述P2P节点列表中筛选出网络延时和负载情况中至少一个满足预定条件的P2P节点。
5.根据权利要求1所述的系统,其特征在于,所述P2P节点,适于在收到所述第二资源访问请求,且确认拥有所述客户端所请求的资源后,向所述客户端返回所述资源。
6.根据权利要求1所述的系统,其特征在于,所述第二重定向报文携带所述服务端的地址信息;
所述P2P节点,还适于在收到所述第二资源访问请求,且确认没有所述客户端所请求的资源时,
从所述P2P节点所代理的内容分发网络CDN节点获取所述客户端所请求的资源。
7.根据权利要求1所述的系统,其特征在于,所述第三资源访问请求携带所述P2P节点的标识信息;所述服务端,还适于根据所述第三资源访问请求,更新存储的所述P2P节点的资源列表,或者,通知数据库更新存储的所述P2P节点的资源列表。
8.一种实现资源访问的方法,其特征在于,包括:
客户端向服务端发送第一资源访问请求;
接收所述服务端返回的第一重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个对等P2P节点的节点信息;
根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求;
接收所述P2P节点返回的第二重定向报文,根据所述第二重定向报文向所述服务端发送第三资源访问请求;所述第二重定向报文,是由所述P2P节点在收到所述第二资源访问请求,且确认没有所述客户端所请求的资源时,返回给所述客户端的;
接收所述服务端返回的第三重定向报文,根据所述第三重定向报文向另一个P2P节点发送第四资源访问请求;其中,所述第三重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的另一P2P节点的节点信息。
9.根据权利要求8所述的方法,其特征在于,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息;所述第三资源访问请求携带所述P2P节点的标识信息;
所述向所述P2P节点发送第二资源访问请求之后,所述方法还包括:
接收所述P2P节点返回的所述资源。
10.一种实现资源访问的装置,其特征在于,应用于客户端,包括:
第一发送模块,适于向服务端发送第一资源访问请求;还适于向所述服务端发送第三资源访问请求;
第一接收模块,适于接收所述服务端返回的第一重定向报文,还适于接收P2P节点返回的第二重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个对等P2P节点的节点信息;所述第二重定向报文,是由所述P2P节点在收到第二资源访问请求,且确认没有所述客户端所请求的资源时,返回给所述客户端的;
第二发送模块,适于根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求;还适于根据第三重定向报文,向另一P2P节点发送第四资源访问请求;所述第三重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的另一P2P节点的节点信息。
11.一种实现资源访问的方法,其特征在于,包括:
服务端接收客户端发送的第一资源访问请求;
根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个对等P2P节点,并向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息;
接收所述客户端发送的第三资源访问请求,其中,所述第三资源访问请求携带所述P2P节点的标识信息;
根据所述第三资源访问请求,确定能够给所述客户端提供所请求的资源的另一P2P节点,并向所述客户端返回第三重定向报文,以使所述客户端根据所述第三重定向报文向所述另一P2P节点请求所述资源;其中,所述第三重定向报文携带所述另一P2P节点的节点信息。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个P2P节点,包括:
根据所述第一资源访问请求,确定所述客户端所请求的资源;
根据所述服务端存储的至少一个P2P节点的节点信息以及资源列表,确定能够给所述客户端提供所请求的资源的P2P节点列表;或者,从存储有至少一个P2P节点的节点信息以及资源列表的数据库查询能够给所述客户端提供所请求的资源的P2P节点,得到P2P节点列表;
根据预设策略从所述P2P节点列表中筛选出一个P2P节点。
13.根据权利要求12所述的方法,其特征在于,所述根据预设策略从所述P2P节点列表中筛选出一个P2P节点,包括以下至少之一:
通过所述第一资源访问请求,获取所述客户端的位置信息,从所述P2P节点列表中筛选出与所述客户端的位置信息匹配的P2P节点;
从所述P2P节点列表中筛选出网络延时和负载情况中至少一个满足预定条件的P2P节点。
14.根据权利要求11所述的方法,其特征在于,所述第三资源访问请求携带所述P2P节点的标识信息。
15.根据权利要求14所述的方法,其特征在于,所述接收所述客户端发送的第三资源访问请求之后,所述方法还包括:
根据所述第三资源访问请求,更新存储的所述P2P节点的资源列表,或者,通知数据库更新存储的所述P2P节点的资源列表。
16.一种实现资源访问的装置,其特征在于,应用于服务端,包括:
第二接收模块,适于接收客户端发送的第一资源访问请求;还适于接收客户端发送的第三资源访问请求,所述第三资源访问请求携带P2P节点的标识信息;
第一处理模块,适于根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个对等P2P节点;还适于根据所述第三资源访问请求,确定能够给所述客户端提供所请求的资源的另一P2P节点;
第三发送模块,适于向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;还适于向所述客户端返回第三重定向报文,以使所述客户端根据所述第三重定向报文向所述另一P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息;所述第三重定向报文携带所述另一P2P节点的节点信息。
17.一种实现资源访问的方法,其特征在于,包括:
对等P2P节点接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;
在确认没有所述客户端所请求的资源时,执行以下一项:
从所述P2P节点所代理的内容分发网络CDN节点获取所述客户端所请求的资源;
向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息;所述第三资源访问请求,用于供服务端确定能够给所述客户端提供所请求的资源的另一个P2P节点,并向所述客户端返回第三重定向报文;其中,所述第三重定向报文携带所述另一个P2P节点的节点信息,以使所述客户端根据所述第三重定向报文向所述另一个P2P节点发送第四资源访问请求。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
在确认拥有所述客户端所请求的资源时,向所述客户端返回所述资源。
19.一种实现资源访问的装置,其特征在于,应用于P2P节点,包括:
第三接收模块,适于接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;
第二处理模块,适于在确认没有所述客户端所请求的资源时,执行以下一项:
从所述P2P节点所代理的内容分发网络CDN节点获取所述客户端所请求的资源;
向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息;所述第三资源访问请求,用于供服务端确定能够给所述客户端提供所请求的资源的另一个P2P节点,并向所述客户端返回第三重定向报文;其中,所述第三重定向报文携带所述另一个P2P节点的节点信息,以使所述客户端根据所述第三重定向报文向所述另一个P2P节点发送第四资源访问请求。
20.一种实现资源访问的装置,其特征在于,应用于客户端,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:
向服务端发送第一资源访问请求;接收所述服务端返回的第一重定向报文,其中,所述第一重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的一个对等P2P节点的节点信息;根据所述第一重定向报文,向所述P2P节点发送第二资源访问请求;接收所述P2P节点返回的第二重定向报文,根据所述第二重定向报文向所述服务端发送第三资源访问请求;所述第二重定向报文,是由所述P2P节点在收到所述第二资源访问请求,且确认没有所述客户端所请求的资源时,返回给所述客户端的;接收所述服务端返回的第三重定向报文,根据所述第三重定向报文向另一个P2P节点发送第四资源访问请求;其中,所述第三重定向报文携带由所述服务端确定的、能够给所述客户端提供所请求的资源的另一P2P节点的节点信息。
21.一种实现资源访问的装置,其特征在于,应用于服务端,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:
接收客户端发送的第一资源访问请求;根据所述第一资源访问请求,确定能够给所述客户端提供所请求的资源的一个对等P2P节点,并向所述客户端返回第一重定向报文,以使所述客户端根据所述第一重定向报文向所述P2P节点请求所述资源;其中,所述第一重定向报文携带所述P2P节点的节点信息;接收所述客户端发送的第三资源访问请求,其中,所述第三资源访问请求携带所述P2P节点的标识信息;根据所述第三资源访问请求,确定能够给所述客户端提供所请求的资源的另一P2P节点,并向所述客户端返回第三重定向报文,以使所述客户端根据所述第三重定向报文向所述另一P2P节点请求所述资源;其中,所述第三重定向报文携带所述另一P2P节点的节点信息。
22.一种实现资源访问的装置,其特征在于,应用于对等P2P节点,包括:存储器以及处理器;其中,所述存储器用于存储用于实现资源访问的程序;该用于实现资源访问的程序在被所述处理器读取执行时,执行以下操作:
接收客户端发送的第二资源访问请求,其中,所述第二资源访问请求是所述客户端向服务端发送第一资源访问请求后、接收到所述服务端返回的第一重定向报文后发送的;在确认没有所述客户端所请求的资源时,执行以下一项:从所述P2P节点所代理的内容分发网络CDN节点获取所述客户端所请求的资源;向所述客户端返回第二重定向报文,以使所述客户端根据所述第二重定向报文向所述服务端发送第三资源访问请求;其中,所述第二重定向报文携带所述服务端的地址信息以及所述P2P节点的标识信息;所述第三资源访问请求,用于供服务端确定能够给所述客户端提供所请求的资源的另一个P2P节点,并向所述客户端返回第三重定向报文;其中,所述第三重定向报文携带所述另一个P2P节点的节点信息,以使所述客户端根据所述第三重定向报文向所述另一个P2P节点发送第四资源访问请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860435.7A CN109547508B (zh) | 2017-09-21 | 2017-09-21 | 一种实现资源访问的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860435.7A CN109547508B (zh) | 2017-09-21 | 2017-09-21 | 一种实现资源访问的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109547508A CN109547508A (zh) | 2019-03-29 |
CN109547508B true CN109547508B (zh) | 2022-03-22 |
Family
ID=65828253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710860435.7A Active CN109547508B (zh) | 2017-09-21 | 2017-09-21 | 一种实现资源访问的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547508B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111200596B (zh) * | 2019-12-25 | 2022-09-02 | 曙光信息产业(北京)有限公司 | 基于Web技术的文件服务系统及其设计方法 |
CN111414208B (zh) * | 2020-03-13 | 2023-08-01 | 百度在线网络技术(北京)有限公司 | 应用程序的启动方法、装置及设备 |
CN114979146A (zh) * | 2022-05-25 | 2022-08-30 | 中移(杭州)信息技术有限公司 | 回源方法、cdn设备、存储介质以及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729581A (zh) * | 2008-10-28 | 2010-06-09 | 华为技术有限公司 | 一种在p2p网络中实现重定向的方法、系统及设备 |
CN102118376A (zh) * | 2010-01-06 | 2011-07-06 | 中兴通讯股份有限公司 | 内容分发网络服务器及内容下载方法 |
EP2497250A1 (en) * | 2009-11-03 | 2012-09-12 | Telecom Italia S.p.A. | Sharing of digital contents in p2p networks exploiting localization data |
CN103067517A (zh) * | 2012-12-31 | 2013-04-24 | 网宿科技股份有限公司 | 结合重定向和主动连接的p2p缓存服务器系统和实现方法 |
CN103957269A (zh) * | 2014-05-08 | 2014-07-30 | 中国联合网络通信集团有限公司 | 点对点p2p网络节点选择方法及点对点p2p重定向服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571251B2 (en) * | 2002-05-06 | 2009-08-04 | Sandvine Incorporated Ulc | Path optimizer for peer to peer networks |
CN101710871B (zh) * | 2009-10-23 | 2012-04-18 | 中国电信股份有限公司 | 一种基于本地调度机制实现p2p流量优化的方法和设备 |
CN103731396B (zh) * | 2012-10-10 | 2018-03-23 | 中国移动通信集团江西有限公司 | 资源访问方法、系统及缓存资源信息推送装置 |
-
2017
- 2017-09-21 CN CN201710860435.7A patent/CN109547508B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729581A (zh) * | 2008-10-28 | 2010-06-09 | 华为技术有限公司 | 一种在p2p网络中实现重定向的方法、系统及设备 |
EP2497250A1 (en) * | 2009-11-03 | 2012-09-12 | Telecom Italia S.p.A. | Sharing of digital contents in p2p networks exploiting localization data |
CN102118376A (zh) * | 2010-01-06 | 2011-07-06 | 中兴通讯股份有限公司 | 内容分发网络服务器及内容下载方法 |
CN103067517A (zh) * | 2012-12-31 | 2013-04-24 | 网宿科技股份有限公司 | 结合重定向和主动连接的p2p缓存服务器系统和实现方法 |
CN103957269A (zh) * | 2014-05-08 | 2014-07-30 | 中国联合网络通信集团有限公司 | 点对点p2p网络节点选择方法及点对点p2p重定向服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109547508A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sabella et al. | Developing software for multi-access edge computing | |
US11343353B2 (en) | Method and system of dispatching requests in a content delivery network | |
US10601767B2 (en) | DNS query processing based on application information | |
US9037628B2 (en) | Intelligent establishment of peer-to-peer communication | |
US20200028892A1 (en) | Dns resolution of internal tenant-specific domain addresses in a multi-tenant computing environment | |
EP3170091B1 (en) | Method and server of remote information query | |
US9871850B1 (en) | Enhanced browsing using CDN routing capabilities | |
US9971787B2 (en) | Unified file and object data storage | |
US10637794B2 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
WO2021004528A1 (zh) | 应用实例的地址获取方法、装置、设备及存储介质 | |
JP2014502382A (ja) | サーバ負荷状態に基づきサーバをバランスさせるシステムと方法 | |
US20150088995A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN109547508B (zh) | 一种实现资源访问的方法、装置及系统 | |
CN113315706B (zh) | 私有云流量控制方法、设备及系统 | |
EP2709337B1 (en) | Service data processing method, device and system | |
CN113301079B (zh) | 一种数据的获取方法、系统、计算设备及存储介质 | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
US20220012110A1 (en) | Networking-related system call interception and modification | |
CN112769671A (zh) | 消息处理方法、装置与系统 | |
JP5544521B2 (ja) | 状態管理方法、処理装置、および状態管理プログラム | |
US20220263759A1 (en) | Addressing method, addressing system, and addressing apparatus | |
US20230076228A1 (en) | Method of enablement of service api exposed by eas and devices for performing the same | |
Yan et al. | Design and implementation of integrated ICN and CDN as a video streaming service | |
CN113301081B (zh) | 一种针对内容分发网路的数据处理方法、装置、电子设备 | |
CN103685367A (zh) | 离线下载系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |