公开/公告号CN101631141A
专利类型发明专利
公开/公告日2010-01-20
原文格式PDF
申请/专利权人 腾讯科技(深圳)有限公司;
申请/专利号CN200910109465.X
发明设计人 华有为;
申请日2009-08-19
分类号H04L29/08(20060101);
代理机构44237 深圳中一专利商标事务所;
代理人张全文
地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室
入库时间 2023-12-17 23:18:41
法律状态公告日
法律状态信息
法律状态
2012-07-04
授权
授权
2010-03-24
实质审查的生效
实质审查的生效
2010-01-20
公开
公开
技术领域
本发明属于通信领域,尤其涉及一种P2P系统、P2P系统中的网络资源管理方法、种子服务器及客户端。
背景技术
随着边缘网络信息的不断丰富,互联网中传统的客户端/服务器(Client/Server,C/S)模式逐渐被对等(peer to peer,P2P)通信模式所取代,P2P模式是分布式海量信息服务的必然选择。从计算模式上来说,P2P打破了传统的C/S模式,P2P工作方式中,在网络中的每个结点的地位都是对等的,每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务,即每一个结点既是客户端又是服务器。
但是,现有P2P网络中,能提供下载的资源可能集中在某几个结点,这时,在某个结点向另外一个能提供下载资源的结点请求相应资源时,会消耗该被请求结点的带宽。并且,当多个结点同时向一个能提供下载资源的结点请求资源时,所需带宽大、实现成本高、下载速度慢、用户体验差。
发明内容
本发明实施例旨在解决现有技术存在的问题,提供一种P2P系统,所需带宽小、实现成本低、下载资源速度快、用户体验优。
本发明实施例是这样实现的,一种P2P系统,所述系统包括种子服务器、至少一个种子客户端和至少一个非种子客户端;
所述种子客户端用于根据预设的汇报条件向所述种子服务器发送汇报信息,所述汇报信息包括所述种子客户端对应的客户端标识及种子客户端所存储资源对应的资源标识;
所述种子服务器用于根据接收到的汇报信息更新种子资源信息,并在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,所述资源获取指令包括资源标识和种子客户端对应的客户端标识;
所述非种子客户端根据接收到的资源获取指令向相应种子客户端获取对应的资源。
本发明实施例的另一目的在于提供一种P2P系统中的网络资源管理方法,所述方法包括下述步骤:
种子客户端根据预设的汇报条件向种子服务器发送汇报信息,所述汇报信息包括所述种子客户端对应的客户端标识及种子客户端所存储资源对应的资源标识;
种子服务器根据接收到的汇报信息更新种子资源信息,并在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,所述资源获取指令包括资源标识和种子客户端对应的客户端标识;
非种子客户端根据接收到的资源获取指令向相应种子客户端获取对应的资源。
本发明实施例的另一目的在于提供一种种子服务器,所述服务器包括:
种子资源更新单元,用于接收种子客户端发送的汇报信息,并根据接收到的汇报信息更新种子资源信息中相应种子客户端对应的资源标识;
判断单元,用于根据预设的时间间隔和种子资源信息判断存储各资源的种子客户端的数量是否大于预设的种子数临界值,输出判断结果为否的各资源对应的资源标识;以及
种子扩展管理单元,用于根据所述判断单元输出的各资源标识以及所述种子资源信息向非种子客户端发送资源获取指令,所述资源获取指令包括接收到的各资源标识及对应种子客户端的客户端标识。
本发明实施例的另一目的在于提供一种客户端,所述客户端包括:
资源汇报单元,用于根据预设的汇报条件向种子服务器发送汇报信息,汇报信息包括所述客户端对应的客户端标识及客户端所存储资源对应的资源标识;以及
资源获取单元,用于接收种子服务器发送的资源获取指令,并根据接收到的资源获取指令向相应客户端获取对应资源,资源获取指令包括资源标识及存储该资源客户端对应的客户端标识。
在本发明实施例中,通过种子客户端主动向种子服务器上报其存储资源的信息,种子服务器在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,以扩展种子客户端的数量,实现了一种P2P系统,种子服务器及各种子客户端、非种子客户端所需带宽小,实现成本低、下载资源速度快、用户体验优。
附图说明
图1是本发明实施例提供的P2P系统的结构示意图;
图2是本发明实施例提供的种子服务器的结构示意图;
图3是本发明实施例提供的P2P系统中的网络资源管理方法的实现流程图;
图4是本发明实施例提供的客户端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过客户端主动向种子服务器上报其存储资源的信息,种子服务器根据预设的时间间隔判断是否需要扩展存储相应资源的种子客户端的数量,并根据判断结果扩展存储相应资源的种子客户端数量。
图1示出了本发明实施例提供的P2P系统的结构,为了便于说明仅示出了与本发明实施例相关的部分,该P2P系统包括种子服务器、至少一个种子客户端、至少一个非种子客户端,其中:
种子客户端101,用于根据预设的汇报条件向种子服务器102发送汇报信息,汇报信息包括种子客户端101对应的客户端标识及种子客户端101所存储资源对应的资源标识;其中,汇报条件可以为定时触发、根据存储资源变化触发或这两种方式相结合等。
种子服务器102,根据接收到的汇报信息更新种子资源信息,并在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,资源获取指令包括资源标识和种子客户端对应的客户端标识;该种子资源信息可以存储在种子服务器102中,也可以存储在其他数据库、存储器等中。
非种子客户端103,根据接收到的资源获取指令向相应种子客户端101获取对应的资源。
其中,种子客户端101与非种子客户端103是相对某一资源定义的两个物理客户端,存储有该资源的物理客户端为种子客户端101,没有存储该资源的物理客户端及为非种子客户端102,相对于某一资源是种子客户端101的物理客户端与相对于另一资源是非种子客户端103的物理客户端可以是同一个物理客户端。并且,同一个物理客户端上可以存储多种资源。种子服务器102以及各种子客户端101、各非种子客户端103之间为P2P连接,它们都为P2P系统的结点,P2P系统中的各个节点在地域上可以位于同一城市或不同城市,可以采用相同或不同的互联网数据中心(Internet Data Center,IDC),例如电信、网通等,种子服务器102和各种子客户端101、各非种子客户端103可以采用相同类型或不同类型的网络,例如直接连接公网的、有防火墙限制的、接了路由器的、局域网内向外访问的等。另外,非种子客户端103可以以纯P2P方式到对应的种子客户端101下载相应资源,
种子服务器102根据其存储的,或从其他存储器、服务器、终端获得的预设的种子数临界值确定是否需要扩展种子客户端的数量,如果存储某资源的种子客户端101数量小于种子数临界值则需要扩展存储该资源的种子客户端的数量,种子服务器102根据种子资源信息向一个或多个没有存储该资源的非种子客户端103发送资源获取指令,资源获取指令包括该资源对应的资源标识和存储该资源的种子客户端101对应的客户端标识。其中,资源标识唯一标识该P2P系统中种子客户端101存储的各资源,且该P2P系统中相同资源对应相同的资源标识,资源标识可以为资源标识号、资源名称等;客户端标识用于标识P2P系统中的各种子客户端101和非种子客户端103,可以为种子客户端101或非种子客户端103对应的客户端名称、IP地址等。
如图2所示,种子服务器102具体包括:
种子资源更新单元1021,接收种子客户端101发送的汇报信息,并根据接收到的汇报信息更新种子资源信息中相应种子客户端对应的资源标识。种子资源信息记载该P2P系统中各种子客户端101存储的资源,在具体实现中可以采用表格存储,包括客户端标识及对应的资源标识,该种子资源信息可以存储在种子服务器中,或存储在其他数据库、存储器、数据库、服务器或终端等中。
判断单元1022,根据预设的时间间隔和种子资源信息判断存储各资源的种子客户端101的数量是否大于预设的种子数临界值,输出判断结果为否的各资源对应的资源标识。判断的时间间隔根据实际需要和系统环境确定,例如一般情况下为3分钟。当然,还可以根据实际需要进行调整。
种子扩展管理单元1023,根据判断单元1022输出的各资源标识以及种子资源信息向非种子客户端103发送资源获取指令,资源获取指令包括接收到的各资源标识及对应种子客户端的客户端标识。这里,种子扩展管理单元1023根据接收到的各资源标识,分别到种子资源信息中查询对应种子客户端的客户端标识,统计查询到的客户端标识的数量,向一个或多个没有存储有该资源的非种子客户端103发送资源获取指令,该资源获取指令包括该资源标识及对应种子客户端的客户端标识。其中,向非种子客户端103发送资源获取指令的数量可以为种子数临界值与统计到的客户端标识的数量之差。
当然,为了更准确的判断是否需要扩展各资源的种子数量,作为本发明的一个优选实施例,种子服务器102还根据种子客户端的网络信息和/或资源标识确定是否需要扩展种子客户端的数量,不同的客户端网络信息和/或资源标识对应相同或不同的种子数临界值,即种子服务器102中的判断单元1022还根据种子客户端的网络信息和/或资源标识判断是否需要扩展种子客户端的数量。
这样,种子服务器102或其他数据库、存储器、服务器等中还存储种子客户端的网络信息,可以针对不同种子客户端的网络信息设置相同或不同的种子数临界值,网络信息包括地域、采用的IDC、网络类型等中的一个或多个。例如,对应同城市同IDC的种子客户端101,种子数临界值的取值与对该资源的需求成正比,对该资源的需求越大,则对应的种子数临界值应越大,一般情况下,种子数临界值可以取8,只要某资源标识对应的同城市同IDC的种子客户端101数量小于该临界值,则需要扩展该资源的种子客户端101的数量;不同网络类型的种子客户端101,可以分别设置不同的种子数临界值,种子数临界值的取值与对该资源的需求和当前P2P系统中物理客户端的数量有关,一般情况下,直接连接公网的网络类型的种子数临界值的取值大于接了路由器的网络类型的种子数临界值的取值,而接了路由器的网络类型的种子数临界值的取值又大于有防火墙限制的网络类型的种子数临界值的取值,具体临界值的取值需要根据具体的资源环境来计算。例如,当物理客户端的数量为1W个时,一般可以配置10个为种子数临界值。
当然,也可以针对不同的资源标识预设不同的种子数临界值,以满足不同需求及环境对某种资源的种子数的要求。进一步地,种子服务器102可以针对不同的种子客户端的网络信息和资源标识设置不同的种子数临界值。
进一步地,为了避免存储某种资源的种子客户端的数量过多,种子服务器102还可以针对不同的种子客户端的网络信息和/或资源标识设置不同的种子客户端数量最大值,将存储某种资源的种子客户端的数量限制在其对应的最大值以内,最大值的选取与对该存储资源的需求成正比,需求越大则选取的最大值应越大。
为了保证P2P系统中各资源对应的非种子客户端的数量能满足扩展种子客户端的需要,作为本发明的另一个优选实施例,某一资源对应的在预设时间内空闲的非种子客户端103的数量必需满足下式:
其中,ICount为该资源对应的在预设时间内空闲的非种子客户端102的数量,即在预设时间内没有上传和/或下载任务的非种子客户端102的数量,RCount为P2P系统需要该资源的总数量,R为该资源对应的种子数临界值,ACount为每个种子客户端101或非种子客户端103中能存储资源的总数量,这些总数量、临界值的单位均为个。当然,为了使种子服务器102知道各种子客户端101和非种子客户端103上传和下载任务情况,各种子客户端101和非种子客户端103定时向种子服务器102上报其上传和下载任务的情况。
例如,P2P系统需要的资源的总数量为10w个,每个种子客户端101或非种子客户端103最多能保存10个不同的资源,种子数临界值为10个,则要求没有存储该资源的在预设时间内空闲的非种子客户端103数量必需大于10w个。
图3示出了本发明实施例提供的P2P系统中的网络资源管理方法的实现流程,详述如下:
在步骤S301中,种子客户端根据预设的汇报条件向种子服务器发送汇报信息,该汇报信息包括该种子客户端对应的客户端标识及种子客户端所存储资源对应的资源标识;
在步骤S302中,种子服务器根据接收到的汇报信息更新种子资源信息,并在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,该资源获取指令包括资源标识和种子客户端对应的客户端标识;
在步骤S303中,非种子客户端根据接收到的资源获取指令向相应种子客户端获取对应的资源。
其中,种子服务器发送汇报信息的汇报条件可以为定时触发、根据存储资源变化触发或这两种方式相结合等;种子服务器根据预设的种子数临界值确定是否需要扩展种子客户端的数量,其具体实现如上所述,不再赘述。
为了更准确的判断是否需要扩展各资源的种子数量,作为本发明的一个优选实施例,种子服务器还根据种子客户端的网络信息和/或资源标识确定是否需要扩展种子客户端的数量,不同的客户端网络信息和/或资源标识对应相同或不同的种子数临界值,其具体实现如上所述,不再赘述。
为了保证该P2P系统中各资源对应的非种子客户端的数量能满足扩展种子客户端的需要,作为本发明的另一个优选实施例,某一资源对应的在预设时间内空闲的非种子客户端103的数量必需满足下式:
其中,ICount为该资源对应的在预设时间内空闲的非种子客户端102数量,RCount为P2P系统需要该资源的总数量,R为该资源对应的种子数临界值,ACount为每个种子客户端101或非种子客户端103中能存储资源的总数量,这些总数量、临界值的单位均为个,其具体实现如上所述,不再赘述。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等,该程序用来执行如下步骤:
种子客户端根据预设的汇报条件向种子服务器发送汇报信息,该汇报信息包括该种子客户端对应的客户端标识及种子客户端所存储资源对应的资源标识;
种子服务器根据接收到的汇报信息更新种子资源信息,并在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,该资源获取指令包括资源标识和种子客户端对应的客户端标识;
非种子客户端根据接收到的资源获取指令向相应种子客户端获取对应的资源。
图4示出了本发明实施例提供的客户端的结构,为了便于说明仅示出了与本发明实施例相关的部分,其中:
资源汇报单元401,根据预设的汇报条件向种子服务器发送汇报信息,汇报信息包括资源汇报单元401对应的客户端标识及客户端所存储资源对应的资源标识。资源汇报单元401发送汇报信息的汇报条件可以为定时触发、根据存储资源变化触发或这两种方式相结合等。采用定时触发时,根据实际需求及其所属P2P系统的环境确定定时触发的时间间隔,例如,该时间间隔一般为3分钟;根据存储资源变化触发,则只要客户端存储的资源发生变化,即触发向种子服务器发送汇报信息,采用这种方式便于种子服务器即时更新种子资源信息。但是,如果某个客户端存储的资源变化过快时,可以设置为在存储资源变化后一定时间内都没有再发生变化才触发。
资源获取单元402,接收种子服务器发送的资源获取指令,并根据接收到的资源获取指令向相应客户端获取对应资源,资源获取指令包括资源标识及存储该资源客户端对应的客户端标识。资源获取单元402可以根据接收到的资源获取指令,以纯P2P方式到资源获取指令中客户端标识对应的客户端下载资源获取指令中资源标识对应的资源。
在本发明实施例中,通过种子客户端主动向种子服务器上报其存储资源的信息,种子服务器在需要扩展种子客户端数量的时候向非种子客户端发送资源获取指令,以扩展种子客户端的数量,实现了一种P2P系统,种子服务器及各种子客户端、非种子客户端所需带宽小,实现成本低、下载资源速度快、用户体验优。
并且,可以针对不同种子客户端的网络信息和/或资源定义不同的种子数临界值,以满足不同需要及环境对种子数的要求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: P2P系统中的对等管理服务器及对等管理方法
机译: P2P系统中的对等管理服务器及对等管理方法
机译: P2P系统中的Pia管理服务器和Pia管理方法