一种p2p数据被动分发方法及节点客户端的制作方法

文档序号:7870971阅读:225来源:国知局
专利名称:一种p2p数据被动分发方法及节点客户端的制作方法
技术领域
本发明涉及互联网中,信息交换、数据共享、数据分发等技术领域。更具体说,涉及一种P2P数据被动分发方法。
背景技术
随着互联网规模的不断扩大,Internet相关的信息技术获得了迅猛发展。然而,网络用户人数爆炸式增长造成的网络拥堵,日益成为制约互联网发展的瓶颈,因此,如何在提高网络内容服务质量的同时有效降低资源的消耗、提升用户体验,是互联网应用领域面临的主要问题之一。为了克服互联网中采用的传统客户端/服务器结构存在的可扩展性差、易出现网络拥堵、资源有效利用率较低等缺点,对等计算(Peer-to-Peer,简称P2P,又被称为“点对点”)技术应运而生。P2P网络是基于共享的分布式网络,网络的参与者称为节点(即Peer),所有参与者的地位平等,节点既是客户端也是服务器。P2P节点之间通过一定的方式组织在一起,当节点请求资源时,通过一定的查找策略来定位拥有所请求资源的节点,并从中获取文件内容。P2P技术这种节点与节点之间直接链接并交换数据的方式,允许个人计算机之间直接进行资源和服务的共享,从而充分利用了节点之间的带宽资源,很大程度上缓解了网站后端服务器的流量压力,更好地实现了整个网络的负载均衡。鉴于P2P技术的以上特点和技术优势,其已被广泛用于电子商务、文件共享、网上直播、视频点播、网络广告、远程教育、远程医疗、视频会议等众多互联网领域的应用。

在P2P技术中,由源节点收到其它节点的请求后,被动地把数据分发给与自己建立连接的节点的方式,称为被动分发方式。然而目前的P2P数据分发,主要是通过中心服务器获得对方节点数据的索引信息,然后再通过查询邻居节点进行数据分发决策。这种使用中心服务器作为通讯的中间环节的方法,会造成中心服务器压力大、数据分发不及时等缺点,特别是当网络带宽有限、节点数目众多、数据请求频繁时,这一缺点就更加突出地暴露出来。例如,当某网站提供“春晚(直播)”节目在线视频播放服务或者“中国好声音”等高收视率节目网络视频点播服务时,很容易因短时间内发送请求的用户节点过多,造成中心服务器数据分发决策严重滞后,导致用户无法正常顺畅地观看节目。

发明内容
本发明要解决的技术问题是克服现有P2P数据分发方法存在的服务器压力大、数据分发不及时等缺点,使得通讯速度更快捷。为实现上述的发明目的,本发明提出一套完整的P2P数据被动分发方法的技术方案,包括以下内容
一种P2P数据被动分发方法,其特征在于具体包括以下内容在一个至少包含第一节点和第二节点的P2P网络中,第一节点与第二节点建立连接;第一节点向第二节点发送数据的下载请求;第二节点通过查找存储于其中的第二数据信息表,判断请求的所述数据是否存在于第二节点中;若是,则第二节点向第一节点传送所述数据,若否,则第二节点告知第一节点所述数据不存在于第二节点中。优选地,在所述第一节点与第二节点建立连接之前,还包括所述第一节点根据存储于其中的第一数据信息表,获知其所需下载的数据。优选地,存储于节点中的所述数据信息表,其建立过程为所述节点开始工作后,搜索其邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表。优选地,将建立的所述节点的数据信息表存储在所述节点的内存中。优选地,所述P2P网络中进一步包括中心服务器,所述搜索由所述中心服务器执行。优选地,存储于节点中的所述数据信息表,包含存在于该节点中的数据的数据索引。优选地,所述第一数据信息表具体包含存在于所述第一节点中的文件的各个文件块的索引。优选地,所述第二数据信息表具体包含存在于所述第二节点中的文件的各个文件块的索引。优选地,所述第二节点为源节点。此外,为解决以上技术问题,本发明还提供了一种P2P网络中的节点客户端,该客户端具体包括连接模块,其使得所述节点与所述P2P网络中的另一节点建立连接;下载请求发送模块,其将所述节点的数据下载请求发送给所述另一节点;判断模块,其根据所述另一节点中存储的数据信息表,判断请求的所述数据是否存在于所述另一节点中;执行模块,若判断模块的结果为是,其执行将所述数据从所述另一节点传送至所述节点的操作,若判断模块的结果为否,其告知所述节点所述数据不存在于所述另一节点中。优选地,所述客户端还包括数据信息表建立模块,其当所述节点开始工作后,搜索所述节点的邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表。优选地,所述客户端还包括内部存储器,其用于存储所述数据信息表建立模块建立的所述节点的数据信息表。优选地,所述内部存储器中存储的数据信息表,包含存在于所述节点中的数据的数据索引。优选地,所述下载请求发送模块根据存储在所述内部存储器中的所述节点的数据信息表,获知所述节点所需下载的数据。 优选地,所述搜索由中心服务器执行。优选地,所述另一节点中存储的数据信息表,包含存在于所述另一节点中的数据的数据索引。优选地,所述另一节点中存储的数据信息表中的数据索引,具体为存在于所述另一节点中的文件的各个文件块的索引。在上述任一方案中优选的是,所述文件为视频文件,所述文件块为所述视频文件的一部分。在上述任一方案中优选的是,所述数据索引为指向存储所述数据索引所对应的数据的指针。本发明实现的上述方法和客户端,只有当源节点收到对方节点的具体数据请求时,才把对方需要的数据被动分发到对方。这种方法降低了服务器负载,同时提高了数据的实时分发速度以及减少了数据分发的冗余。由于数据信息分散交换,减少了信息通讯的中间环节,因此不但实现了根据需要分发数据,即满足按需原则,还达到让通讯速度更为快捷的技术效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。图1是作为本发明一个实施例的P2P网络示意图
图2是作为本发明一个实施例的P2P数据被动分发方法的示意图 图3是作为本发明一个实施例的P2P网络中的节点客户端的示意图
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施方式
进行详细说明。在此,实施说明用于解释本发明,但并不作为对本发明的限定。图1所示为本发明实施例的典型P2P网络示意图,其描述了本发明的适用环境以及设计的理念,该实施例P2P网络包括一中心服务器、两个(但不局限于两个)P2P子网,以及在每个子网下的若干P2P节点。以其中一个P2P子网的两个节点A和B的为例,欲从节点B中获得节点A所需的数据,则结合图2所示的P2P数据被动分发方法的示意图,其内容具体包括
SlOl,建立各节点的数据信息表。具体而言,节点A开始工作后,通过中心服务器搜索节点A的邻居节点并从这些邻居节点下载数据,根据这些下载数据建立节点A的数据信息表,并将该数据信息表存储于节点A的内存中,所述数据信息表包括了节点A下载并存储在其中的数据的数据索引;同样的,节点B开始工作后,通过中心服务器搜索节点B的邻居节点并从这些邻居节点下载数据,根据这些下载数据建立节点B的数据信息表,并将该数据信息表存储于节点B的内存中,所述数据信息表包括了节点B下载并存储在其中的数据的数据索引。S102,目标节点获知其所需下载的数据
具体而言,节点A根据存储于其中的数据信息表,获知节点A所需下载的数据。S103,建立两节点之间的连接,目标节点向源节点发送数据的下载请求
具体而言,节点A与节点B建立连接,节点A根据已获知的所需下载的数据,向节点B发送数据的下载请求。 S104,判断请求的数据是否存在于源节点中。具体而言,通过查找存储于节点B中的数据信息表中的数据索引,判断节点A请求的数据是否存在于节点B中,换句话说,就是判断节点B中是否存在节点A所需下载的数据。S105,根据判断结果决定是否传送数据
具体而言,若判断的结果为是,也就是节点A所需下载的数据存在于节点B中,则节点B向节点A传送所述数据;若判断的结果为否,也就是节点A所需下载的数据不存在于节点B中,则节点B告知节点A所述数据不存在于节点B中。—较佳实施例为节点A的数据信息表中的数据索引,为存在于节点A中的文件的各个文件块的索引;节点B的数据信息表中的数据索引,为存在于节点B中的文件的各个文件块的索引。例如,一个Rmvb格式的网络视频文件由100个文件块组成,节点A已经下载了该视频文件的第1、3、7、10块,则其数据信息表的内容就是[1,3,7,10](其中“1”、“3、“7”、“10”分别为各视频文件块的数据索引);而节点B已下载了该视频文件的第1、2、9块,则其数据信息表的内容就是[1,2,9]。可见,节点A所需的数据为视频文件的第I 100块中除了第1、3、7、10块的所有文件快。当节点A根据已获知的所需下载的文件块,向节点B发送数据的下载请求时,通过判断,可知节点A所需的文件块2、9已存在于节点B中,因此节点B向节点A传送文件块2、9 ;而节点A所需的其它文件块不存在于节点B中,因此节点B告知节点A其所需的其它文件块不存在于节点B中。另一较佳实施例为所述数据索引为指向存储所述数据索引所对应的数据的指针。

此外,本发明还提供了一种P2P网络中的节点客户端,如图3所示,该客户端包括数据信息表建立模块、内部存储器、连接模块、下载请求发送模块、判断模块以及执行模块,其中
当节点开始工作后,数据信息表建立模块通过中心服务器搜索所述节点的邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表;内部存储器存储所述数据信息表建立模块建立的所述节点的数据信息表;连接模块使得所述节点与所述P2P网络中的另一节点建立连接;下载请求发送模块将所述节点的数据下载请求发送给所述另一节点;判断模块根据所述另一节点中存储的数据信息表,判断请求的所述数据是否存在于所述另一节点中;若判断模块的结果为是,则执行模块执行将所述数据从所述另一节点传送至所述节点的操作,若判断模块的结果为否,则执行模块告知所述节点所述数据不存在于所述另一节点中。—较佳实施例为所述内部存储器中存储的数据信息表,包含存在于所述节点中的数据的数据索引;所述另一节点中存储的数据信息表,包含存在于所述另一节点中的数据的数据索引。另一较佳实施例为所述下载请求发送模块根据存储在所述内部存储器中的所述节点的数据信息表,获知所述节点所需下载的数据。另一较佳实施例为所述节点中存储的数据信息表中的数据索引,具体为存在于所述节点中的文件的各个文件块的索引;所述另一节点中存储的数据信息表中的数据索弓丨,具体为存在于所述另一节点中的文件的各个文件块的索引。例如所述文件为视频文件,所述文件块为所述视频文件的一部分。另一较佳实施例为所述数据索引为指向存储所述数据索引所对应的数据的指针。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修 改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种P2P数据被动分发方法,其特征在于具体包括以下内容在一个至少包含第一节点和第二节点的P2P网络中,第一节点与第二节点建立连接;第一节点向第二节点发送数据的下载请求;第二节点通过查找存储于其中的第二数据信息表,判断请求的所述数据是否存在于第二节点中;若是,则第二节点向第一节点传送所述数据,若否,则第二节点告知第一节点所述数据不存在于第二节点中。
2.如权利要求1所述的方法,其特征在于,在所述第一节点与第二节点建立连接之前,还包括所述第一节点根据存储于其中的第一数据信息表,获知其所需下载的数据。
3.如权利要求1或2所述的方法,其特征在于,存储于节点中的所述数据信息表,其建立过程为所述节点开始工作后,搜索其邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表。
4.如权利要求3所述的方法,其特征在于,将建立的所述节点的数据信息表存储在所述节点的内存中。
5.如权利要求4所述的方法,其特征在于,所述P2P网络中进一步包括中心服务器,所述搜索由所述中心服务器执行。
6.如权利要求1或2所述的方法,其特征在于,存储于节点中的所述数据信息表,包含存在于该节点中的数据的数据索引。
7.如权利要求2所述的方法,其特征在于,所述第一数据信息表具体包含存在于所述第一节点中的文件的各个文件块的索引。
8.如权利要求6所述的方法,其特征在于,所述第二数据信息表具体包含存在于所述第二节点中的文件的各个文件块的索引。
9.如权利要求7或8所述的方法,其特征在于所述文件为视频文件,所述文件块为所述视频文件的一部分。
10.一种P2P网络中的节点客户端,该客户端具体包括 连接模块,其使得所述节点与所述P2P网络中的另一节点建立连接; 下载请求发送模块,其将所述节点的数据下载请求发送给所述另一节点; 判断模块,其根据所述另一节点中存储的数据信息表,判断请求的所述数据是否存在于所述另一节点中; 执行模块,若判断模块的结果为是,其执行将所述数据从所述另一节点传送至所述节点的操作,若判断模块的结果为否,其告知所述节点所述数据不存在于所述另一节点中。
全文摘要
本发明提出一套P2P数据被动分发方法的技术方案。针对包含多个节点的P2P网络,首先通过中心服务器搜索节点的邻居节点并从这些邻居节点下载数据,从而建立节点的数据信息表;然后建立两节点之间的连接,目标节点向源节点发送数据的下载请求;判断请求的数据是否存在于源节点中;若是,则源点向目标节点传送所述数据,若否,则源节点告知目标节点所请求的数据不存在于源节点中。此外还根据上述技术方案提供了一种P2P网络中的节点客户端。
文档编号H04L29/08GK103037017SQ201210588198
公开日2013年4月10日 申请日期2012年12月31日 优先权日2012年12月31日
发明者赵瑞前, 李茗, 邵长松, 张海, 马宙, 李卓, 王世有 申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1