专利名称:P2sp网络中资源下载的方法及客户端的制作方法
技术领域:
本发明涉及互联网数字媒体领域,特别涉及一种P2SP网络中资源下载的方法及客户端。
背景技术:
随着互联网和数字化技术的快速发展,通过互联网交易及传播的数字媒体内容(通常为音视频资源)越来越多。大量的数字媒体内容的提供商和运营商利用互联互通的互联网发布数字媒体内容,不但产生了商业价值,还提供给普通用户一种更加便捷的途径以获取更优质的视听服务享受。目前,采用PM (Peer-to-Server,点对服务器)或者 P2P (Peer-to-Peer,点对点)模式来实现数字媒体资源的共享和下载。其中,P2S模式下,客户端从服务器下载所需资源,下载速度较快,但是随着客户端数量的增加,容易造成服务器的负担过重,最终导致服务器 终止服务。P2P模式的下载方式不再仅依赖于服务器,数字媒体内容的传递可以在网络上的各个客户端之间进行,通过策略的制定,一用户即可以作为客户端从其他用户的客户端上下载资源,又可以作为服务器向其用户提供下载资源。这样,随着客户端数量的增多,资源的下载速度也会越来越快,但是P2P模式也有其缺点,当与某个下载同样资源的其他客户端的数量很少时,往往会使资源的下载速度变得很慢甚至停滞。目前,一种P2SP (Peer to Server and Peer,点到服务器和点)网络则融合了 P2S模式与P2P模式的优势,不但支持P2P技术,并通过资源索引服务器有效地将服务器资源和网络中客户端资源整合到了一起,从而提高了媒体文件的下载速度,同时缓解了服务器的负载,但是,P2SP模式下依然存在P2P模式的缺点,即当与某个下载同样资源的其他客户端的数量很少时,往往会使资源的下载速度变得很慢甚至停滞。
发明内容
本发明实施例提供了一种P2SP网络中资源下载的方法及客户端,目的在于提高P2SP网络中客户端在下载资源时的速度。所述技术方案如下一种P2SP网络中资源下载的方法,所述方法包括客户端获取待下载资源信息;所述客户端根据所述待下载资源信息向资源索引服务器获取存储有所述待下载资源的资源服务器列表、向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表;所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源;所述客户端将所述待下载资源的下载信息上传给所述跟踪服务器。所述客户端获取待下载资源信息包括
所述客户端通过统一资源定位符向资源索引服务器查询所述待下载资源信息,所述待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希值、待下载资源文件分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。所述客户端根据所述待下载资源信息向所述资源索引服务器获取存储有所述待下载资源的资源服务器列表包括所述客户端向所述资源索引服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述资源索引服务器生成存储有所述待下载资源的资源服务器列表,所述客户端接收所述资源索引服务器返回的所述资源服务器列表。所述客户端根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表包括所述客户端向跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述跟踪服务器生成存储有所述待下载资源的对等客户端列表和超级节点列表,所述客户端接收所述跟踪服务器返回的所述对等客户端列表和所述超级节点列表。·所述跟踪服务器包括全局跟踪服务器和局部跟踪服务器,所述全局跟踪服务器记录有所述客户端与所述局部跟踪服务器间的对应关系;所述客户端根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表包括所述客户端向全局跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述全局跟踪服务器生成存储有所述待下载资源的对等客户端列表,所述客户端接收所述全局跟踪服务器返回的所述对等客户端列表;所述客户端向所述全局跟踪服务器查询同属一个互联网服务提供商网络的局部跟踪服务器,并向查询得到的局部跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述局部跟踪服务器生成存储有所述待下载资源的超级节点列表,所述客户端接收所述局部跟踪服务器返回的所述超级节点列表。所述局部跟踪服务器和所述超级节点部署在互联网服务提供商网络出口处,所述局部跟踪服务器用于记录和维护与所述客户端同属一个互联网服务提供商网络的超级节点所存储的资源信息,所述超级节点存储的是互联网服务提供商网络内的热点资源。进一步地,所述对等客户端列表内的对等客户端为与所述客户端同属一个互联网服务提供商网络的对等客户端。所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点中下载所述待下载资源包括所述客户端与所述超级节点列表中的全部或部分超级节点建立连接,从所述全部或部分超级节点中下载所述待下载资源;当与所述客户端建立连接的所述全部或部分超级节点的数量或下载带宽小于预设阈值时,所述客户端与所述对等客户端列表中的全部或部分对等客户端建立连接,从所述全部或部分对等客户端中下载所述待下载资源;当与所述客户端建立连接的全部或部分对等客户端的数量或下载带宽小于所述预设阈值时,所述客户端与所述资源服务器列表中的全部或部分资源服务器建立连接,从所述全部或部分资源服务器中下载所述待下载资源。所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源包括所述客户端从所述待下载资源中选择一个待下载资源的文件分片向存储有所述待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有所述待下载资源的资源服务器、对等客户端或超级节点建立连接;所述客户端根据已经建立的连接中,统计所述待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,所述客户端优先从存储有所述待下载资源的资源服务器、对等客户端或超级节点下载中下载所述在网络中存在数量最少的待下载资源的文件分片。所述方法还包括所述客户端针对每一个待下载资源的下载任务,将已经接收到 的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中;所述客户端在所述缓冲区已满时,将所述缓冲区中已经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到所述缓冲区中,如果所述缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到所述磁盘。所述方法还包括所述客户端根据已下载的待下载资源计算网络中各对等客户端对所述待下载资源的贡献度,所述贡献度包括对等客户端在所述客户端下载所述待下载资源时向所述客户端提供所述待下载资源的上传速度;所述客户端在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高。所述方法还包括所述客户端在向对等客户端上传资源时,优先在缓冲区中查找已经下载完成的资源,如果查找到所述对等客户端所需的资源时,则从所述缓冲区中读取并上传所述对等客户端所需的资源给所述对等客户端,如果未查找到所述对等客户端所需的资源时,则从磁盘中读取并上传所述对等客户端所需的资源给所述对等客户端。一种客户端,所述客户端包括第一获取模块、第二获取模块、第三获取模块、下载模块和上报模块;所述第一获取模块,用于获取待下载资源信息;所述第二获取模块,用于根据所述待下载资源信息向资源索引服务器获取存储有所述待下载资源的资源服务器列表;所述第三获取模块,用于根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表;所述下载模块,用于根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源;所述上报模块,用于将所述待下载资源的下载信息上传给所述跟踪服务器。所述第一获取模块,具体用于通过统一资源定位符向资源索引服务器查询所述待下载资源信息,所述待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希值、待下载资源文件分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。所述第二获取模块,具体用于向所述资源索引服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述资源索引服务器生成存储有所述待下载资源的资源服务器列表,所述客户端接收所述资源索引服务器返回的所述资源服务器列表。所述第三获取模块,具体用于向跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述跟踪服务器生成存储有所述待下载资源的对等客户端列表和超级节点列表,所述客户端接收所述跟踪服务器返回的所述对等客户端列表和所述超级节点列表。所述跟踪服务器包括全局跟踪服务器和局部跟踪服务器,所述全局跟踪服务器记录有所述客户端与所述局部跟踪服务器间的对应关系; 所述第三获取模块包括第一获取单元,用于向全局跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述全局跟踪服务器生成存储有所述待下载资源的对等客户端列表,所述客户端接收所述全局跟踪服务器返回的所述对等客户端列表;第二获取单元,用于向所述全局跟踪服务器查询同属一个互联网服务提供商网络的局部跟踪服务器,并向查询得到的局部跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述局部跟踪服务器生成存储有所述待下载资源的超级节点列表,所述客户端接收所述局部跟踪服务器返回的所述超级节点列表。所述局部跟踪服务器和所述超级节点部署在互联网服务提供商网络出口处,所述局部跟踪服务器用于记录和维护与所述客户端同属一个互联网服务提供商网络的超级节点所存储的资源信息,所述超级节点存储的是互联网服务提供商网络内的热点资源。进一步地,所述对等客户端列表内的对等客户端为与所述客户端同属一个互联网服务提供商网络的对等客户端。所述下载模块包括第一下载单元,用于所述客户端与所述超级节点列表中的全部或部分超级节点建立连接,从所述全部或部分超级节点中下载所述待下载资源;第二下载单元,用于当与所述客户端建立连接的所述全部或部分超级节点的数量或下载带宽小于预设阈值时,所述客户端与所述对等客户端列表中的全部或部分对等客户端建立连接,从所述全部或部分对等客户端中下载所述待下载资源;第三下载单元,用于当与所述客户端建立连接的全部或部分对等客户端的数量或下载带宽小于所述预设阈值时,所述客户端与所述资源服务器列表中的全部或部分资源服务器建立连接,从所述全部或部分资源服务器中下载所述待下载资源。所述客户端还具体用于,从所述待下载资源中选择一个待下载资源的文件分片向存储有所述待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有所述待下载资源的资源服务器、对等客户端或超级节点建立连接,并根据已经建立的连接中,统计所述待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,所述客户端优先从存储有所述待下载资源的资源服务器、对等客户端或超级节点下载中下载所述在网络中存在数量最少的待下载资源的文件分片。所述客户端还具体用于对每一个待下载资源的下载任务,将已经接收到的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中,在所述缓冲区已满时,将所述缓冲区中已经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到所述缓冲区中,如果所述缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到所述磁盘。所述客户端还具体用于根据已下载的待下载资源计算网络中各对等客户端对所述待下载资源的贡献度,并在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高,所述贡献度包括对等客户端在所述客户端下载所述待下载资源时向所述客户端提供所述待下载资源的上传速度。所述客户端还具体用于在向对等客户端上传资源时,优先在缓冲区中查找已经下 载完成的资源,如果查找到所述对等客户端所需的资源时,则从所述缓冲区中读取并上传 所述对等客户端所需的资源给所述对等客户端,如果未查找到所述对等客户端所需的资源时,则从磁盘中读取并上传所述对等客户端所需的资源给所述对等客户端。通过本发明实施例所提供技术方案的实现,使得客户端在P2SP网络中下载资源时,不仅可以从资源服务器和其他对等客户端以多源方式接收数据,还可以从超级节点中以多源传输的方式接收数据,资源更丰富,资源下载速度更快且稳定性更强,另外,客户端在下载资源时优先从部署在互联网服务提供商网络的出口处的超级节点中下载数据,其中,超级节点存储的为互联网服务提供商网络内部的热点资源,这在一定程度上限定了客户端在下载数据时出现跨互联网提供商网络的问题,从而一定程度上节省了跨互联网提供商网路的流量,超级节点的加入也提高了在互联网提供商网路内客户端数量较少时的用户的下载体验。
图I是本发明实施例I提供的一种P2SP网络中资源下载的方法流程图;图2是本发明实施例2提供的一种P2SP网络中资源下载的方法流程图;图3是本发明实施例3提供的一种客户端。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例I参见图1,一种P2SP网络中资源下载的方法,具体包括如下步骤步骤101 :客户端获取待下载资源信息;步骤102 :客户端根据待下载资源信息向资源索引服务器获取存储有待下载资源的资源服务器列表、向跟踪服务器获取存储有待下载资源的对等客户端列表和超级节点列表;
步骤103 :客户端根据获取的资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有待下载资源的资源服务器、对等客户端和超级节点下载待下载资源;步骤104 :客户端将待下载资源的下载信息上传给跟踪服务器。通过本发明实施例所提供技术方案的实现,使得客户端在P2SP网络中下载资源时,不仅可以从资源服务器和其他对等客户端以多源方式接收数据,还可以从超级节点中以多源传输的方式接收数据,资源更丰富,资源下载速度更快且稳定性更强,且优化了跨网传输的流量,实现对运营商的友好。实施例2先简单的介绍一下本发明实施例所对应的一种P2SP网络的架构,该P2SP网络包含客户端、资源索引服务器、全局TrackerW^f)服务器、统计服务器、超级节点、超级节点管理服务器和局部Tracker (跟踪)服务器,其中,局部Tracker服务器和超级节点部署在 ISP(Internet Service Provider,互联网服务提供商)网络的出口处,全局Tracker服务器和局部Tracker服务器可以集成在一个Tracker服务器中实现;下面简单的介绍一下上述P2SP网络中各设备的功能统计服务器对ISP网络内部资源文件的下载量和下载速度进行统计,并将统计信息同步到超级节点管理服务器;超级节点管理服务器对同步到的统计信息进行分析,得出ISP网络内部下载量和下载速度大于预定值的资源文件,其中,将ISP网络内容下载量和下载速度大于预定值的资源文件称之为热点资源文件,生成该热点资源文件的任务列表,并将生成的任务列表推给超级节点;超级节点按照接收到的任务列表,从因特网中将所述任务列表中列举的热点资源文件下载并缓存到本地,并将其缓存的热点资源的下载情况上报给局部Tracker服务器;需要说明的是,超级节点管理服务器根据统计服务器对ISP网络内部资源文件的下载量和下载速度的统计情况实施对生成的任务列表进行更新,并将更新后的任务列表推送给超级节点,超级节点根据更新后的任务列表对本地缓存的热点资源文件进行更新;局部Tracker服务器管理和维护超级节点所上报的其缓存的热点资源的下载情况;资源索引服务器为客户端提供索引功能,帮助客户端进行资源信息的查询和帮助客户端发现存储其所需资源的资源服务器信息;全局Tracker服务器为申请加入P2SP网络的客户端提供注册功能,并接收客户端的在线情况汇报情况和本地拥有的资源信息,同时为客户端提供索引信息,帮助客户端发现存储其所需资源的其他客户端的信息;另外,全局Tracker服务器存储有客户端与其ISP网络内的局部Tracker服务器的对应关系;客户端在下载资源时,通过URL (Uniform/Universal Resource Locator,统一资源定位符)向资源索引服务器进行待下载资源信息的查询;基于上述的网络架构,下面结合具体实施例详细的描述客户端在P2SP网络中进行资源下载的过程,参见图2,一种P2SP网络中资源下载的方法,具体包括如下步骤步骤201 :客户端接入P2SP网络,根据自身的硬件信息,如网卡地址,自动生成客户端ID,并根据配置的客户端信息生成注册信息,且将生成的注册信息发送给全局Tracker服务器,其中,配置的客户端信息包括客户端ID、客户名称、电话及客户地址等;具体地,根据自身的硬件信息自动生成客户端ID为采用预设的哈希算法,如SHAl或MD5等,对自身的硬件信息进行计算得到客户端ID ;进一步地,客户端可以将生成的注册信息组织成xml文件格式,并经过加密后发送给全局Tracker服务器;步骤202 :全局Tracker服务器根据接收到的注册信息对客户端进行注册,并向客户端返回注册成功的信息;步骤203 :下载资源时,客户端向资源索引服务器查询待下载资源信息;具体地,客户端通过统一资源定位符向资源索引服务器查询待下载资源信息,待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希值、待下载资源文件 分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。步骤204 :客户端根据待下载资源信息向资源索引服务器获取存储有待下载资源的资源服务器列表、向Tracker服务器获取存储有待下载资源的对等客户端列表和超级节点列表;具体地,客户端根据待下载资源信息向资源索引服务器获取存储有待下载资源的资源服务器列表包括客户端向资源索引服务器发送包含待下载资源信息的超文本传输协议请求,使资源索引服务器生成存储有待下载资源的资源服务器列表,客户端接收所述资源索引服务器返回的资源服务器列表;其中,资源索引服务器根据待下载资源信息检索资源服务器信息列表生成存储有待下载资源的资源服务器列表,并将资源服务器列表返回给客户端;客户端根据待下载资源信息向Tracker服务器获取存储有待下载资源的对等客户端列表和超级节点列表包括客户端向全局Tracker服务器发送包含待下载资源信息的超文本传输协议请求,使全局Tracker服务器生成存储有待下载资源的对等客户端列表,客户端接收全局Tracker服务器返回的对等客户端列表;其中,全局Tracker服务器根据待下载资源信息检索对等客户端信息列表,生成存储有待下载资源的对等客户端列表,并将对等客户端列表返回给客户端;客户端向全局Tracker服务器查询同属一个互联网服务提供商网络的局部跟Tracker服务器,并向查询得到的局部Tracker服务器发送包含待下载资源信息的超文本传输协议请求,使局部Tracker服务器生成存储有待下载资源的超级节点列表,客户端接收局部Tracker服务器返回的超级节点列表;其中,局部Tracker服务器根据待下载资源信息检索超级节点信息列表,生成存储有待下载资源的超级节点列表,并将超级节点列表返回给客户端。需要说明的是,在全局Tracker服务器和局部Tracker服务器是独立的实体时,全局Tracker服务器中将会记录各客户端所对应的局部Tracker服务器,这样,客户端通过登录全局Tracker服务器便可查询得到其相应的局部Tracker服务器。在具体实现时,全局Tracker服务器和局部Tracker服务器可以集成在一个Tracker服务器中实现;则相应地,客户端根据待下载资源信息向Tracker服务器获取存储有待下载资源的对等客户端列表和超级节点列表包括客户端向Tracker服务器发送包含待下载资源信息的超文本传输协议请求,使Tracker服务器生成存储有待下载资源的对等客户端列表和超级节点列表,客户端接收Tracker服务器返回的对等客户端列表和超级节点列表。还需要说明的是,Tracker服务器在接收到客户端发送的含待下载资源信息的超文本传输协议请求后,根据待下载资源信息检索对等客户端信息列表,生成与客户端同属一个ISP网络内的存储有待下载资源的对等客户端列表,并将生成的对等客户端列表返回给客户端,这种情况下,客户端所接收到的对等客户端列表内的对等客户端为与自身同属一个互联网服务提供商网络的对等客户端;上述处理的目的在于限定客户端在下载数据时出现跨ISP网络的问题,从而一定程度上节省了跨ISP网路的流量,实现对运营商的友好。·另外,当客户端请求资源服务器列表、对等客户端列表及超级节点列表失败时,客户端定期重试请求,直至请求次数达到预设请求次数的上限,例如40,则放弃本次资源下载操作;请求成功后,客户端将资源服务器列表、对等客户端列表及超级节点列表存储在特定的数据结构中;其中,资源服务器列表中包含各个资源服务器的IP地址、连接端口号等信息,对等客户端列表中包含各个对等客户端的IP地址和连接端口号信息,超级节点列表中包含各个超级节点的IP地址和连接端口号信息等,上述信息用于客户端与目的节点(资源服务器、对等客户端或超级节点)建立连接;其中,局部跟踪服务器和超级节点部署在互联网服务提供商网络出口处,局部跟踪服务器用于记录和维护与客户端同属一个ISP网络的超级节点所存储的资源信息,超级节点存储的是互联网服务提供商网络内的热点资源。步骤205 :客户端根据获取的资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有待下载资源的资源服务器、对等客户端和超级节点下载待下载资源;具体地,客户端与超级节点列表中的全部或部分超级节点建立连接,从全部或部分超级节点中下载待下载资源;具体地,客户端根据超级节点列表中超级节点的IP地址和连接端口号等信息与超级节点建立连接,请求待下载资源;连接失败超于预定的连接重试次数上限后,终止进行与该超级节点的后续连接,转而尝试超级节点列表中未尝试连接的超级节点;当与客户端建立连接的全部或部分超级节点的数量或下载带宽小于预设阈值时,客户端与对等客户端列表中的全部或部分对等客户端建立连接,从全部或部分对等客户端中下载待下载资源;具体地,客户端根据对等客户端列表中对等客户端的IP地址和连接端口号等信息建立与对等客户端的连接,建立连接的双方先进行握手,此后相互交换位图,连接失败超过预定的连接重试次数上限后,终止进行与该对等客户端的后续连接,转而尝试对等客户端列表中为未尝试连接的对等客户端;
当与客户端建立连接的全部或部分对等客户端的数量或下载带宽小于预设阈值时,客户端与资源服务器列表中的全部或部分资源服务器建立连接,从全部或部分资源服务器中下载待下载资源。具体地,客户端通过资源服务器列表中资源服务器的IP地址及连接端口号等信息与服务器建立连接,请求待下载资源;当客户端与资源服务器列表中一资源服务器连接失败超过预定次数,如10,则停止进行与该资源服务器的后续连接,转而尝试资源服务器列表中未尝试连接的资源服务器;上述的调度规则使得客户端在下载资源时优先从部署在ISP网络的出口处的超级节点中下载数据,这在一定程度上限定了客户端在下载数据时出现跨ISP网络的问题,从而一定程度上节省了跨ISP的流量,超级节点的加入也提高了在互联网提供商网路内客户端数量较少时的用户的下载体验。步骤206 :客户端将待下载资源的下载信息上传给跟踪服务器;
其中,下载信息包括资源文件的Hash值、客户端ID、各个资源文件的下载进度等
信息;客户端针对每个下载任务创建相应的工作线程,在每个工作线程中,分别于各个资源服务器、对等客户端和超级节点建立连接,进行资源的下载;需要说明的是,客户端在开始下载待下载资源时,从待下载资源中选择一个待下载资源的文件分片作为下载的数据块向存储有待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有待下载资源的资源服务器、对等客户端或超级节点建立连接;客户端根据已经建立的连接中,统计待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,客户端优先从存储有待下载资源的资源服务器、对等客户端或超级节点下载中下载在网络中存在数量最少的待下载资源的文件分片。之所以优先选择网络中存在数量最少的待下载资源的文件分片进行下载,是为了使下载资源均匀的分布到P2SP网络中,从而提高资源下载的效率;在下载过程中,对于已经发送请求,但尚未完成下载的待下载资源的文件分片具有较高的优先级,其在下载过程中被优先请求;需要说明的是,当网络中拥有某个资源的对等客户端数量较少时,本地客户端的下载速度将会较低,因而本发明中客户端在下载速度小于某个阈值时,例如15KB/S,将启动与资源服务器或超级节点服务器的请求,从资源服务器或超级节点服务器中下载资源,采用该方法加速整个下载过程,以保证用户合理的下载速度,客户端判断向资源服务器或超级节点请求的待下载资源的文件分片是否已向对等客户端请求过,如果是,则向被请求的对等客户端发送取消下载的消息;客户端针对每一个待下载资源的下载任务,将已经接收到的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中;客户端在缓冲区已满时,将缓冲区中已经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到缓冲区中,如果缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到磁盘。
在具体的下载过程中,客户端定期遍历本地节点建立的每一个连接,向每个连接的对端(对等客户端、资源服务器或者超级节点)发送心跳数据包,判断对端是否仍处于活动状态,若接收到对端发送回来的相应数据包,判断对端为正常连接,否则,清楚已经失效的连接,并根据目前的连接数目和下载、点播状态,以发起新的连接;客户端在待下载资源的文件分片下载完成后,根据获取的待下载资源信息中的待下载资源的文件分片的哈希值信息对该下载完成的待下载资源的文件分片进行校验,并将校验结果上报给统计服务器,以便统计服务器根据各待下载资源的文件分片的校验结果统计得出待下载资源是否安全,从而在客户端再次请求下载该待下载资源时,向客户端进行待下载资源的下载风险提示,使得客户端根据该下载风险提示来确定是否继续下载该待下载资源,从而提高了客户端下载资源时的安全性。步骤207 :客户端依据其他对等客户端的请求,将下载到本地的资源上传给该对等客户端; 具体地,客户端根据已下载的待下载资源计算网络中各对等客户端对待下载资源的贡献度,贡献度包括对等客户端在客户端下载待下载资源时向客户端提供待下载资源的上传速度;客户端在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高。现举例说明客户端定期计算对等客户端对本客户端的贡献度,例如该对等客户端对本客户端的上传速度,选择贡献度大于预设值,或者按照贡献度排序,选择前η个对等客户端进行资源上传,其中η为预设数值,阻塞其他对等客户端的请求,这种针锋相对的激励机制使每一个客户端最大限度的贡献自己的资源;另外,所述客户端在向对等客户端上传资源时,优先在缓冲区中查找已经下载完成的资源,如果查找到所述对等客户端所需的资源时,则从所述缓冲区中读取并上传所述对等客户端所需的资源给所述对等客户端,如果未查找到所述对等客户端所需的资源时,则从磁盘中读取并上传所述对等客户端所需的资源给所述对等客户端。通过本发明实施例所提供技术方案的实现,使得客户端在P2SP网络中下载资源时,不仅可以从资源服务器和其他对等客户端以多源方式接收数据,还可以从超级节点中以多源传输的方式接收数据,资源更丰富,资源下载速度更快且稳定性更强,另外,客户端在下载资源时优先从部署在互联网服务提供商网络的出口处的超级节点中下载数据,其中,超级节点存储的为互联网服务提供商网络内部的热点资源,这在一定程度上限定了客户端在下载数据时出现跨互联网提供商网络的问题,从而一定程度上节省了跨互联网提供商网路的流量,超级节点的加入也提高了在互联网提供商网路内客户端数量较少时的用户的下载体验。实施例3参见图3,一种客户端,本实施例所提供的客户端具体可以是手机或计算机等设备,包括第一获取模块301、第二获取模块3012、第三获取模块303、下载模块304和上报模块305 ;其中,第一获取模块301,用于获取待下载资源信息;
第二获取模块302,用于根据待下载资源信息向资源索引服务器获取存储有待下载资源的资源服务器列表;第三获取模块303,用于根据待下载资源信息向跟踪服务器获取存储有待下载资源的对等客户端列表和超级节点列表;下载模块304,用于根据获取的资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有待下载资源的资源服务器、对等客户端和超级节点下载待下载资源;上报模块305,用于将待下载资源的下载信息上传给跟踪服务器。下面具体介绍上述模块的具体功能具体地,第一获取模块301,具体用于通过统一资源定位符向资源索引服务器查询待下载资源信息,待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希 值、待下载资源文件分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。第二获取模块302,具体用于向资源索引服务器发送包含待下载资源信息的超文本传输协议请求,使资源索引服务器生成存储有待下载资源的资源服务器列表,客户端接收资源索引服务器返回的资源服务器列表。第三获取模块303,具体用于向跟踪服务器发送包含待下载资源信息的超文本传输协议请求,使跟踪服务器生成存储有待下载资源的对等客户端列表和超级节点列表,客户端接收跟踪服务器返回的对等客户端列表和超级节点列表。当跟踪服务器包括全局跟踪服务器和局部跟踪服务器,全局跟踪服务器记录有客户端与局部跟踪服务器间的对应关系;相应地,第三获取模块303包括第一获取单元,用于向全局跟踪服务器发送包含待下载资源信息的超文本传输协议请求,使全局跟踪服务器生成存储有待下载资源的对等客户端列表,客户端接收全局跟踪服务器返回的对等客户端列表;第二获取单元,用于向所述全局跟踪服务器查询同属一个互联网服务提供商网络的局部跟踪服务器,并向查询得到的局部跟踪服务器发送包含待下载资源信息的超文本传输协议请求,使局部跟踪服务器生成存储有待下载资源的超级节点列表,客户端接收局部跟踪服务器返回的超级节点列表。其中,局部跟踪服务器和超级节点部署在互联网服务提供商网络出口处,局部跟踪服务器用于记录和维护与客户端同属一个互联网服务提供商网络的超级节点所存储的资源信息,超级节点存储的是互联网服务提供商网络内的热点资源。进一步地,对等客户端列表内的对等客户端为与客户端同属一个互联网服务提供商网络的对等客户端。另外,在本发明实施例中,全局跟踪服务器和局部跟踪服务器可以集成在一个服务器中实现;下载模块304包括第一下载单元,用于客户端与超级节点列表中的全部或部分超级节点建立连接,从全部或部分超级节点中下载待下载资源;
第二下载单元,用于当与客户端建立连接的全部或部分超级节点的数量或下载带宽小于预设阈值时,客户端与对等客户端列表中的全部或部分对等客户端建立连接,从全部或部分对等客户端中下载待下载资源;第三下载单元,用于当与客户端建立连接的全部或部分对等客户端的数量或下载带宽小于预设阈值时,客户端与资源服务器列表中的全部或部分资源服务器建立连接,从全部或部分资源服务器中下载待下载资源。另外,本发明实施例所提供的客户端还具体用于,从待下载资源中选择一个待下载资源的文件分片向存储有待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有待下载资源的资源服务器、对等客户端或超级节点建立连接,并根据已经建立的连接中,统计待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,客户端优先从存储有待下载资源的资源服务器、对等客户端或超级节点下载中下载在网络中存在数量最少的待下载资源的文件分片。客户端还具体用于对每一个待下载资源的下载任务,将已经接收到的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中,在缓冲区已满时,将缓冲区中已 经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到缓冲区中,如果缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到磁盘。客户端还具体用于根据已下载的待下载资源计算网络中各对等客户端对待下载资源的贡献度,并在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高,其中,贡献度包括对等客户端在客户端下载待下载资源时向客户端提供待下载资源的上传速度,。客户端还具体用于在向对等客户端上传资源时,优先在缓冲区中查找已经下载完成的资源,如果查找到对等客户端所需的资源时,则从缓冲区中读取并上传对等客户端所需的资源给对等客户端,如果未查找到对等客户端所需的资源时,则从磁盘中读取并上传对等客户端所需的资源给对等客户端。通过本发明实施例所提供技术方案的实现,使得客户端在P2SP网络中下载资源时,不仅可以从资源服务器和其他对等客户端以多源方式接收数据,还可以从超级节点中以多源传输的方式接收数据,资源更丰富,资源下载速度更快且稳定性更强,另外,客户端在下载资源时优先从部署在互联网服务提供商网络的出口处的超级节点中下载数据,其中,超级节点存储的为互联网服务提供商网络内部的热点资源,这在一定程度上限定了客户端在下载数据时出现跨互联网提供商网络的问题,从而一定程度上节省了跨互联网提供商网路的流量,超级节点的加入也提高了在互联网提供商网路内客户端数量较少时的用户的下载体验。以上本发明实施例所提供的技术方案中客户端与其他实体(对等客户端、Tracker服务器、资源索引服务器或超级节点)间进行信息传输时,为了保证信息传输的安全性,对信息进行加密传输。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种P2SP网络中资源下载的方法,其特征在于,所述方法包括 客户端获取待下载资源信息; 所述客户端根据所述待下载资源信息向资源索引服务器获取存储有所述待下载资源的资源服务器列表、向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表; 所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源; 所述客户端将所述待下载资源的下载信息上传给所述跟踪服务器。
2.根据权利要求I所述的方法,其特征在于,所述客户端获取待下载资源信息包括所述客户端通过统一资源定位符向资源索引服务器查询所述待下载资源信息,所述待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希值、待下载资源文件分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。
3.根据权利要求I所述的方法,其特征在于,所述客户端根据所述待下载资源信息向所述资源索引服务器获取存储有所述待下载资源的资源服务器列表包括 所述客户端向所述资源索引服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述资源索引服务器生成存储有所述待下载资源的资源服务器列表,所述客户端接收所述资源索引服务器返回的所述资源服务器列表。
4.根据权利要求I所述的方法,其特征在于,所述客户端根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表包括 所述客户端向跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述跟踪服务器生成存储有所述待下载资源的对等客户端列表和超级节点列表,所述客户端接收所述跟踪服务器返回的所述对等客户端列表和所述超级节点列表。
5.根据权利要求4所述的方法,其特征在于,所述跟踪服务器包括全局跟踪服务器和局部跟踪服务器,所述全局跟踪服务器记录有所述客户端与所述局部跟踪服务器间的对应关系; 所述客户端根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表包括 所述客户端向全局跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述全局跟踪服务器生成存储有所述待下载资源的对等客户端列表,所述客户端接收所述全局跟踪服务器返回的所述对等客户端列表; 所述客户端向所述全局跟踪服务器查询同属一个互联网服务提供商网络的局部跟踪服务器,并向查询得到的局部跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述局部跟踪服务器生成存储有所述待下载资源的超级节点列表,所述客户端接收所述局部跟踪服务器返回的所述超级节点列表。
6.根据权利要求5所述的方法,其特征在于,所述局部跟踪服务器和所述超级节点部署在互联网服务提供商网络出口处,所述局部跟踪服务器用于记录和维护与所述客户端同属一个互联网服务提供商网络的超级节点所存储的资源信息,所述超级节点存储的是互联网服务提供商网络内的热点资源。
7.根据权利要求I、4或5所述的方法,其特征在于,所述对等客户端列表内的对等客户端为与所述客户端同属一个互联网服务提供商网络的对等客户端。
8.根据权利要求I所述的方法,其特征在于,所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点中下载所述待下载资源包括 所述客户端与所述超级节点列表中的全部或部分超级节点建立连接,从所述全部或部分超级节点中下载所述待下载资源; 当与所述客户端建立连接的所述全部或部分超级节点的数量或下载带宽小于预设阈值时,所述客户端与所述对等客户端列表中的全部或部分对等客户端建立连接,从所述全部或部分对等客户端中下载所述待下载资源; 当与所述客户端建立连接的全部或部分对等客户端的数量或下载带宽小于所述预设阈值时,所述客户端与所述资源服务器列表中的全部或部分资源服务器建立连接,从所述全部或部分资源服务器中下载所述待下载资源。
9.根据权利要求I所述的方法,其特征在于,所述客户端根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源包括 所述客户端从所述待下载资源中选择一个待下载资源的文件分片向存储有所述待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有所述待下载资源的资源服务器、对等客户端或超级节点建立连接; 所述客户端根据已经建立的连接中,统计所述待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,所述客户端优先从存储有所述待下载资源的资源服务器、对等客户端或超级节点下载中下载所述在网络中存在数量最少的待下载资源的文件分片。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括所述客户端针对每一个待下载资源的下载任务,将已经接收到的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中; 所述客户端在所述缓冲区已满时,将所述缓冲区中已经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到所述缓冲区中,如果所述缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到所述磁盘。
11.根据权利要求I所述的方法,其特征在于,所述方法还包括所述客户端根据已下载的待下载资源计算网络中各对等客户端对所述待下载资源的贡献度,所述贡献度包括对等客户端在所述客户端下载所述待下载资源时向所述客户端提供所述待下载资源的上传速度; 所述客户端在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括所述客户端在向对等客户端上传资源时,优先在缓冲区中查找已经下载完成的资源,如果查找到所述对等客户端所需的资源时,则从所述缓冲区中读取并上传所述对等客户端所需的资源给所述对等客户端,如果未查找到所述对等客户端所需的资源时,则从磁盘中读取并上传所述对等客户端所需的资源给所述对等客户端。
13.一种客户端,其特征在于,所述客户端包括第一获取模块、第二获取模块、第三获取模块、下载模块和上报模块; 所述第一获取模块,用于获取待下载资源信息; 所述第二获取模块,用于根据所述待下载资源信息向资源索引服务器获取存储有所述待下载资源的资源服务器列表; 所述第三获取模块,用于根据所述待下载资源信息向跟踪服务器获取存储有所述待下载资源的对等客户端列表和超级节点列表; 所述下载模块,用于根据获取的所述资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有所述待下载资源的资源服务器、对等客户端和超级节点下载所述待下载资源; 所述上报模块,用于将所述待下载资源的下载信息上传给所述跟踪服务器。
14.根据权利要求13所述的客户端,其特征在于,所述第一获取模块,具体用于通过统一资源定位符向资源索引服务器查询所述待下载资源信息,所述待下载资源信息包括待下载资源文件的文件名、待下载资源文件的哈希值、待下载资源文件分片的数量、待下载资源文件分片的大小和待下载资源文件分片的哈希值。
15.根据权利要求13所述的客户端,其特征在于,所述第二获取模块,具体用于向所述资源索引服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述资源索引服务器生成存储有所述待下载资源的资源服务器列表,所述客户端接收所述资源索引服务器返回的所述资源服务器列表。
16.根据权利要求13所述的客户端,其特征在于,所述第三获取模块,具体用于向跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述跟踪服务器生成存储有所述待下载资源的对等客户端列表和超级节点列表,所述客户端接收所述跟踪服务器返回的所述对等客户端列表和所述超级节点列表。
17.根据权利要求13所述的客户端,其特征在于,所述跟踪服务器包括全局跟踪服务器和局部跟踪服务器,所述全局跟踪服务器记录有所述客户端与所述局部跟踪服务器间的对应关系; 所述第三获取模块包括 第一获取单元,用于向全局跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述全局跟踪服务器生成存储有所述待下载资源的对等客户端列表,所述客户端接收所述全局跟踪服务器返回的所述对等客户端列表; 第二获取单元,用于向所述全局跟踪服务器查询同属一个互联网服务提供商网络的局部跟踪服务器,并向查询得到的局部跟踪服务器发送包含所述待下载资源信息的超文本传输协议请求,使所述局部跟踪服务器生成存储有所述待下载资源的超级节点列表,所述客户端接收所述局部跟踪服务器返回的所述超级节点列表。
18.根据权利要求17所述的客户端,其特征在于,所述局部跟踪服务器和所述超级节点部署在互联网服务提供商网络出口处,所述局部跟踪服务器用于记录和维护与所述客户端同属一个互联网服务提供商网络的超级节点所存储的资源信息,所述超级节点存储的是互联网服务提供商网络内的热点资源。
19.根据权利要求13、16或17所述的客户端,其特征在于,所述对等客户端列表内的对等客户端为与所述客户端同属一个互联网服务提供商网络的对等客户端。
20.根据权利要求13所述的客户端,其特征在于,所述下载模块包括 第一下载单元,用于所述客户端与所述超级节点列表中的全部或部分超级节点建立连接,从所述全部或部分超级节点中下载所述待下载资源; 第二下载单元,用于当与所述客户端建立连接的所述全部或部分超级节点的数量或下载带宽小于预设阈值时,所述客户端与所述对等客户端列表中的全部或部分对等客户端建立连接,从所述全部或部分对等客户端中下载所述待下载资源; 第三下载单元,用于当与所述客户端建立连接的全部或部分对等客户端的数量或下载带宽小于所述预设阈值时,所述客户端与所述资源服务器列表中的全部或部分资源服务器建立连接,从所述全部或部分资源服务器中下载所述待下载资源。
21.根据权利要求13所述的客户端,其特征在于,所述客户端还具体用于,从所述待下载资源中选择一个待下载资源的文件分片向存储有所述待下载资源的资源服务器、对等客户端或超级节点发送下载请求,并与存储有所述待下载资源的资源服务器、对等客户端或超级节点建立连接,并根据已经建立的连接中,统计所述待下载资源中在网络中存在数量最少的待下载资源的文件分片,之后,所述客户端优先从存储有所述待下载资源的资源服务器、对等客户端或超级节点下载中下载所述在网络中存在数量最少的待下载资源的文件分片。
22.根据权利要求21所述的客户端,其特征在于,所述客户端还具体用于对每一个待下载资源的下载任务,将已经接收到的待下载资源的文件分片缓冲存储到预先分配的固定大小的缓冲区中,在所述缓冲区已满时,将所述缓冲区中已经下载完成且上传给对等客户端数量最少的待下载资源的文件分片写入磁盘,将最新下载的待下载资源的文件分片存储到所述缓冲区中,如果所述缓冲区中没有已下载完成的待下载资源的文件分片,则直接将最新下载的待下载资源的文件分片写入到所述磁盘。
23.根据权利要求13所述的客户端,其特征在于,所述客户端还具体用于根据已下载的待下载资源计算网络中各对等客户端对所述待下载资源的贡献度,并在接收到多个对等客户端的资源下载请求时,以对等客户端的贡献度为优先级分别向发送资源下载请求的对等客户端上传资源,对等客户端的贡献度越大则对等客户端对应的优先级就越高,所述贡献度包括对等客户端在所述客户端下载所述待下载资源时向所述客户端提供所述待下载资源的上传速度。
24.根据权利要求23所述的客户端,其特征在于,所述客户端还具体用于在向对等客户端上传资源时,优先在缓冲区中查找已经下载完成的资源,如果查找到所述对等客户端所需的资源时,则从所述缓冲区中读取并上传所述对等客户端所需的资源给所述对等客户端,如果未查找到所述对等客户端所需的资源时,则从磁盘中读取并上传所述对等客户端所需的资源给所述对等客户端。
全文摘要
本发明公开了一种P2SP网络中资源下载的方法及客户端,属于互联网数字媒体领域。包括获取待下载资源信息;向资源索引服务器获取存储有待下载资源的资源服务器列表、向跟踪服务器获取存储有待下载资源的对等客户端列表和超级节点列表;根据获取的资源服务器列表、对等客户端列表和超级节点列表按照预定的调度规则从存储有待下载资源的资源服务器、对等客户端和超级节点下载待下载资源;将待下载资源的下载信息上传给跟踪服务器。本方案使得客户端不仅可以从资源服务器和其他对等客户端以多源方式接收数据,还可以在超级节点中以多源传输的方式接收数据,资源更丰富,资源下载速度更快且稳定性更强,且优化了跨网传输的流量,实现对运营商的友好。
文档编号H04L29/08GK102833293SQ20111016427
公开日2012年12月19日 申请日期2011年6月17日 优先权日2011年6月17日
发明者刘刚, 冀祖峰, 黄琰 申请人:腾讯科技(深圳)有限公司