一种超级节点选择方法及装置与流程

文档序号:12278242阅读:803来源:国知局
一种超级节点选择方法及装置与流程

本发明涉及通信技术领域,具体涉及一种超级节点选择方法及装置。



背景技术:

非结构化P2P网络克服了集中式P2P网络单点故障,同时具有较高的搜索效率。它采用性能较高的节点作为超级节点,通过超级节点管理其组内的普通节点并响应普通节点的查询请求。超级节点的任务既包括在普通节点群中作为一个普通节点群的工作,也包括在上层节点群中与其余超级节点的联系任务,同时还会在资源的备份上起到很大的作用。因此,超级节点在整个P2P网络结构中,占据了非常重要的作用,是连接上下层网络的纽带。一种适用于非结构化P2P网络的超级节点选择方法能够有效减小信息交互的响应时间,平衡超级节点负载,提高网络性能。

目前常用的超级节点选择方法主要有:分布式协商谈判方法和基于泛洪的超级节点选择方法。基于泛洪的超级节点选择方法需要在网络中发送大量的搜索消息,会造成很大的网络开销。而在分布式协商谈判方法中,超级节点在一定范围内首先广播自身的信息给普通节点,当普通节点需要向超级节点发送查询请求时,普通节点根据存储的超级节点信息,从中选择一个最好的超级节点联系,利用分布式协商谈判方法选择超级节点时,并未考虑各节点的CPU动态处理能力,使得选择出的超级节点负载不均衡、由此造成网络拓扑不稳定,影响网络的查询请求响应时间。

因此,亟需一种超级节点选择方案以解决上述技术问题。



技术实现要素:

本发明针对现有技术中存在的上述不足,提供一种超级节点选择方法及装置,用以至少部分解决超级节点选择不当带来的网络开销大,网络拓扑不稳定的问题。

本发明为解决上述技术问题,采用如下技术方案:

本发明提供一种超级节点选择方法,包括:各网络节点计算本节点的平均在线时长、用于反映网络节点当前信息处理能力的处理指数和用于反映当前网络节点与邻居节点的链路连接程度的中心度;

所述各网络节点根据所述信息处理指数、中心度以及平均在线时长计算本节点的能量值,并广播所述能量值;

所述各网络节点接收邻居节点广播的能量值,从接收到的能量值中确定最大的能量值,并确定所述最大的能量值对应的网络节点为超级节点。

优选的,所述各网络节点计算本节点的信息处理指数,具体包括:

各网络节点获取本节点当前可用的存储空间、当前的CPU处理速度和当前的带宽,并根据所述存储空间、CPU处理速度和带宽,计算本节点的信息处理指数。

优选的,所述各网络节点计算本节点的平均在线时长具体包括:

各网络节点获取本节点的总在线时长和上线次数,并根据所述总在线时长和上线次数计算本节点的平均在线时长。

优选的,所述各网络节点计算本节点的中心度具体包括:

所述各网络节点获取本节点当前的邻居节点数量和当前网络节点的总数量;

根据所述本节点当前的邻居节点数量和当前网络节点的总数量,计算本节点的中心度。

优选的,所述各网络节点计算本节点的平均在线时长、用于反映当前网络节点信息处理能力的处理指数和用于反映当前网络节点与邻居节点的链路连接程度的中心度,具体包括:当预设的选择周期到达时,或者,任意网络节点失效时,各网络节点计算本节点的平均在线时长、处理指数和中心度。

本发明还提供一种网络节点,所述网络节点包括:计算模块、发送模块、接收模块和选择模块,

所述计算模块用于,计算本节点的平均在线时长、用于反映网络节点当前信息处理能力的处理指数和用于反映当前网络节点与邻居节点的链路连接程度的中心度,并根据所述信息处理指数、中心度以及平均在线时长计算本节点的能量值;

所述发送模块用于广播所述能量值;

所述接收模块用于接收邻居节点广播的能量值;

所述选择模块用于,从所述接收模块接收到的能量值中确定最大的能量值,并确定所述最大的能量值对应的网络节点为超级节点。

进一步的,所述网络节点还包括获取模块,所述获取模块用于,获取本节点当前可用的存储空间、当前的CPU处理速度和当前的带宽;

所述计算模块具体用于,根据所述获取模块获取到的存储空间、CPU处理速度和带宽,计算本节点的信息处理指数。

进一步的,所述获取模块还用于,获取本节点的总在线时长和上线次数;

所述计算模块具体用于,根据所述获取模块获取到的总在线时长和上线次数计算本节点的平均在线时长。

进一步的,所述获取模块还用于,获取本节点当前的邻居节点数量和当前网络节点的总数量;

所述计算模块具体用于,根据所述获取模块获取到的本节点当前的邻居节点数量和当前网络节点的总数量,计算本节点的中心度。

优选的,所述计算模块具体用于,当预设的选择周期到达时,或者,任意网络节点失效时,各网络节点计算本节点的平均在线时长、处理指数和中心度。

本发明通过根据本节点的平均在线时长、处理指数和中心度计算并广播本节点的能量值,接收邻居节点广播的能量值,并选择最大的能量值对应的网络节点为超级节点,充分考量了网络节点的在线时长、当前的信息处理能力和与邻居节点的链路连接程度,并作为超级节点的选择参考依据,这样选择出的超级节点更为恰当,保证网络负载均衡,降低信息交互的响应时间和网络开销,使得网络拓扑结构更稳定,提高网络性能。

附图说明

图1为本发明实施例提供的超级节点选择流程图;

图2为本发明实施例提供的网络节点的结构示意图。

具体实施方式

下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的超级节点选择方法应用于包括多个网络节点的P2P网络中,所述网络节点可以是各种网络服务器。

以下结合图1,详细说明本发明的超级节点选择流程。如图1所示,所述超级节点选择流程包括以下步骤:

步骤11,各网络节点计算本节点的平均在线时长、处理指数和中心度。

处理指数用于反映网络节点当前信息处理能力,中心度用于反映当前网络节点与邻居节点的链路连接程度。

具体的,本发明的超级节点选择方法是根据预设的选择周期进行的,也就是说,当预设的选择周期到达时,各网络节点执行步骤11。

各网络节点获取本节点当前可用的存储空间、当前的CPU处理速度和当前的带宽,并根据所述存储空间、CPU处理速度和带宽,计算本节点的信息处理指数。

具体的,各网络节点可以根据以下公式(1)计算本节点的信息处理指数:

Capacity(i)=a*Storage(i)+b*CPUs(i)+c*Bandwidth(i) (1)

其中,Capacity(i)表示节点i的处理指数,Storage(i)表示第i个网络节点当前可用的存储空间,CPUs(i)表示第i个网络节点当前的CPU处理速度,Bandwidth(i)表示第i个网络节点当前的带宽,a、b、c为权值,a+b+c=1。

各网络节点获取本节点的总在线时长和上线次数,并根据所述总在线时长和上线次数计算本节点的平均在线时长。

具体的,各网络节点可以根据以下公式(2)计算本节点的平均在线时长:

其中,Age(i)表示第i个网络节点的平均在线时长,Tage(i)表示第i个网络节点的总在线时长,N(i)表示第i个网络节点的上线次数。

需要说明的是,所述上线次数是指本选择周期内第i个网络节点的上线次数。

各网络节点获取本节点当前的邻居节点数量和当前网络节点的总数量,并根据所述本节点当前的邻居节点数量和当前网络节点的总数量,计算本节点的中心度。

具体的,各网络节点可以根据以下公式(3)计算本节点的中心度:

其中,BC(i)表示第i个网络节点的中心度,Nei(i)表示第i网络个节点当前的邻居节点数量,N表示网络中当前网络节点的总数量。

需要说明的是,由于现有网络拓扑中存在网络节点宕机、新的网络节点加入等原因,各网络节点的邻居节点的数量和网络节点的总数量并不是固定不变的,而是随着网络拓扑的动态变化而变化的。

步骤12,所述各网络节点根据所述信息处理指数、中心度以及平均在线时长计算本节点的能量值,并广播所述能量值。

具体的,各网络节点可以根据以下公式(4)计算本节点的能量值:

P(i)=α*Capacity(i)+β*Age(i)+χ*BC(i) (4)

其中,P(i)表示第i个网络节点的能量值,Capacity(i)表示第i个网络节点i的处理指数,Age(i)表示第i个网络节点的平均在线时长,BC(i)表示第i个网络节点的中心度,α、β、χ为权值,α+β+χ=1。

各网络节点计算出本节点的能量值后,向各自的邻居节点广播该能量值。

步骤13,所述各网络节点接收邻居节点广播的能量值,从接收到的能量值中确定最大的能量值,并确定所述最大的能量值对应的网络节点为超级节点。

具体的,网络节点的能量值越高,说明该网络节点当前可用的存储空间、CPU处理速度和带宽越大、平均在线时长越长、与邻居节点的链路连接程度越好,因此,选择上述性能参数最高的网络节点作为超级节点。

需要说明的是,当网络中有网络节点失效时,网络拓扑结构发生变化,此时需要重新选择超级节点。也就是说,一旦有网络节点失效,即使此时未到超级节点的选择周期,也会触发超级节点的选择流程(即执行步骤11)。

通过步骤11-13可以看出,本发明通过根据本节点的平均在线时长、处理指数和中心度计算并广播本节点的能量值,接收邻居节点广播的能量值,并选择最大的能量值对应的网络节点为超级节点,充分考量了网络节点的在线时长、当前的信息处理能力和与邻居节点的链路连接程度,并作为超级节点的选择参考依据,这样选择出的超级节点更为恰当,保证网络负载均衡,降低信息交互的响应时间和网络开销,使得网络拓扑结构更稳定,提高网络性能。

基于相同的技术构思,本发明实施例还提供一种网络节点,如图2所示,该网络节点包括:计算模块21、发送模块22、接收模块23和选择模块24。

计算模块21用于,计算本节点的平均在线时长、用于反映网络节点当前信息处理能力的处理指数和用于反映当前网络节点与邻居节点的链路连接程度的中心度,并根据所述信息处理指数、中心度以及平均在线时长计算本节点的能量值。

发送模块22用于广播所述能量值。

接收模块23用于接收邻居节点广播的能量值。

选择模块24用于,从接收模块23接收到的能量值中确定最大的能量值,并确定所述最大的能量值对应的网络节点为超级节点。

进一步的,所述网络节点还包括获取模块25,获取模块25用于,获取本节点当前可用的存储空间、当前的CPU处理速度和当前的带宽。

计算模块21具体用于,根据获取模块25获取到的存储空间、CPU处理速度和带宽,计算本节点的信息处理指数。

进一步的,获取模块25还用于,获取本节点的总在线时长和上线次数。

计算模块21具体用于,根据获取模块25获取到的总在线时长和上线次数计算本节点的平均在线时长。

进一步的,获取模块21还用于,获取本节点当前的邻居节点数量和当前网络节点的总数量。

计算模块21具体用于,根据获取模块获取到的本节点当前的邻居节点数量和当前网络节点的总数量,计算本节点的中心度。

具体的,计算模块21具体用于,当预设的选择周期到达时,或者,任意网络节点失效时,各网络节点计算本节点的平均在线时长、处理指数和中心度。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1