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

文档序号:7870931阅读:336来源:国知局
专利名称:一种p2p数据主动分发方法及节点客户端的制作方法
技术领域
本发明涉及互联网中,信息交换、数据共享、数据分发等技术领域。更具体说,涉及一种P2P数据主动分发方法。
背景技术
随着互联网规模的不断扩大,Internet相关的信息技术获得了迅猛发展。然而, 网络用户人数爆炸式增长造成的网络拥堵,日益成为制约互联网发展的瓶颈,因此,如何在提高网络内容服务质量的同时有效降低资源的消耗、提升用户体验,是互联网应用领域面临的主要问题之一。
为了克服互联网中采用的传统客户端/服务器结构存在的可扩展性差、易出现网络拥堵、资源有效利用率较低等缺点,对等计算(Peer-to-Peer,简称P2P,又被称为“点对点”)技术应运而生。P2P网络是基于共享的分布式网络,网络的参与者称为节点(即Peer), 所有参与者的地位平等,节点既是客户端也是服务器。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的为例,欲将源节点A中的数据传送到节点B中,则结合图2所示的P2P数据主动分发方法的示意图,其内容具体包括SlOl,建立各节点的数据信息表。
具体而言,节点A开始工作后,通过中心服务器搜索节点A的邻居节点并从这些邻居节点下载数据,根据这些下载数据建立节点A的数据信息表,并将该数据信息表存储于节点A的内存中,所述数据信息表包括了节点A下载并存储在其中的数据的数据索引;同样的,节点B开始工作后,通过中心服务器搜索节点B的邻居节点并从这些邻居节点下载数据,根据这些下载数据建立节点B的数据信息表,并将该数据信息表存储于节点B的内存中,所述数据信息表包括了节点B下载并存储在其中的数据的数据索引。
S102,建立两节点之间的连接,源节点发送数据索引至目标节点。
具体而言,节点A与节点B建立连接,并主动将其存储的数据信息表中的数据索引依次发送给节点B。
S103,判断源节点发送的数据索引所对应的数据是否已存在于目标节点中。
具体而言,节点B接收到节点A的数据信息表中的数据索引后,根据节点B存储的数据信息表,判断节点A的数据信息表中的数据索引所对应的数据是否已存在于节点B中, 换句话说,就是判断节点A中的哪些数据已存在于节点B中,哪些数据不存在于节点B中。
S104,若判断结果为是/否,则拒绝/允许源节点传送该数据至目标节点。
具体而言,若判断的结果为是,也就是节点A中的某数据已存在于节点B中,则拒绝节点A传送该数据至节点B ;若判断的结果为否,也就是节点A中的某数据不存在于节点 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主动将其存储的数据信息表中的数据索引依次发送给节点B时,通过判断,视频文件的第I块已存在于节点B中,第3、7、10块不存在于节点B中,因此拒绝节点A传送文件快I至节点B,同时允许节点A传送数据块3、7、10至节点B。
另一较佳实施例为所述数据索引为指向存储所述数据索引所对应的数据的指针。
此外,本发明还提供了一种P2P网络中的节点客户端,如图3所示,该客户端包括数据信息表建立模块、内部存储器、连接模块、数据信息表发送模块、判断模块以及执行模块,其中当节点开始工作后,数据信息表建立模块通过中心服务器搜索所述节点的邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表;内部存储器存储所述数据信息表建立模块建立的所述节点的数据信息表;连接模块使得所述节点与所述 P2P网络中的另一节点建立连接;数据信息表发送模块将所述节点中存储的数据信息表中的数据索引依次发送给所述另一节点;判断模块根据所述另一节点中存储的数据信息表, 判断所述节点中存储的数据信息表中的数据索引所对应的数据是否已存在于所述另一节点中;若判断模块的结果为是,则执行模块不执行将所述数据从所述节点传送至所述另一节点的操作,若判断模块的结果为否,则执行模块执行将所述数据从所述节点传送至所述另一节点的操作。
另一较佳实施例为所述节点中存储的数据信息表中的数据索引,具体为存在于所述节点中的文件的各个文件块的索引;所述另一节点中存储的数据信息表中的数据索引,具体为存在于所述另一节点中的文件的各个文件块的索引。例如所述文件为视频文件,所述文件块为所述视频文件的一部分。
另一较佳实施例为所述数据索引为指向存储所述数据索引所对应的数据的指针。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理 解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.ー种P2P数据主动分发方法,其特征在于具体包括以下内容在一个至少包含第一节点和第二节点的P2P网络中,第一节点与第二节点建立连接;第一节点将其存储的第一数据信息表中的数据索引依次发送给第二节点;第二节点根据其存储的第二数据信息表,判断接收的所述第一数据信息表中的数据索引所对应的数据是否已存在于第二节点中;若是,则拒绝第一节点传送所述数据至第二节点,若否,则允许第一节点传送所述数据至第二节点。
2.如权利要求1所述的方法,其特征在于,存储于节点中的所述数据信息表,其建立过程为所述节点开始工作后,捜索其邻居节点并从这些邻居节点下载数据,根据所述下载数据建立所述节点的数据信息表。
3.如权利要求2所述的方法,其特征在于,将建立的所述节点的数据信息表存储在所述节点的内存中。
4.如权利要求2或3所述的方法,其特征在于所述P2P网络中进ー步包括中心服务器,所述搜索由所述中心服务器执行。
5.如权利要求1所述的方法,其特征在于,所述第一数据信息表中的数据索引,具体为存在于所述第一节点中的文件的各个文件块的索引。
6.如权利要求5所述的方法,其特征在于,所述第二数据信息表中的数据索引,具体为存在于所述第二节点中的文件的各个文件块的索引。
7.如权利要求5或6所述的方法,其特征在于所述文件为视频文件,所述文件块为所述视频文件的一部分。
8.如权利要求1所述的方法,其特征在于,所述数据索引为指向存储所述数据索引所对应的数据的指针。
9.如权利要求1所述的方法,其特征在于所述第一节点为源节点。
10.ー种P2P网络中的节点客户端,该客户端具体包括 连接模块,其使得所述节点与所述P2P网络中的另ー节点建立连接; 数据信息表发送模块,其将所述节点中存储的数据信息表中的数据索引依次发送给所述另ー节点; 判断模块,其根据所述另ー节点中存储的数据信息表,判断所述节点中存储的数据信息表中的数据索引所对应的数据是否已存在于所述另ー节点中; 执行模块,若判断模块的结果为是,其不执行将所述数据从所述节点传送至所述另ー节点的操作,若判断模块的结果为否,其执行所述操作。
全文摘要
本发明提出一套P2P数据主动分发方法的技术方案。针对包含多个节点的P2P网络,首先通过中心服务器搜索节点的邻居节点并从这些邻居节点下载数据,从而建立节点的数据信息表;然后建立两节点之间的连接,源节点主动将其存储的数据信息表中的数据索引依次发送给目标节点;判断源节点发送的数据索引所对应的数据是否已存在于目标节点中;若是,则拒绝源节点传送该数据至目标节点,若否,则允许源节点传送该数据至目标节点。此外还根据上述技术方案提供了一种P2P网络中的节点客户端。
文档编号H04L29/08GK103037015SQ201210587498
公开日2013年4月10日 申请日期2012年12月31日 优先权日2012年12月31日
发明者邵长松, 李茗, 赵瑞前, 张海, 马宙, 李卓, 王世有 申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1