CN101465753B - P2p系统组管理方法及其装置和系统 - Google Patents

P2p系统组管理方法及其装置和系统 Download PDF

Info

Publication number
CN101465753B
CN101465753B CN2007101799331A CN200710179933A CN101465753B CN 101465753 B CN101465753 B CN 101465753B CN 2007101799331 A CN2007101799331 A CN 2007101799331A CN 200710179933 A CN200710179933 A CN 200710179933A CN 101465753 B CN101465753 B CN 101465753B
Authority
CN
China
Prior art keywords
node
dht
node device
view
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007101799331A
Other languages
English (en)
Other versions
CN101465753A (zh
Inventor
张云飞
段晓东
周兆民
魏冰
谢高岗
李振宇
陈曦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN2007101799331A priority Critical patent/CN101465753B/zh
Publication of CN101465753A publication Critical patent/CN101465753A/zh
Application granted granted Critical
Publication of CN101465753B publication Critical patent/CN101465753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种P2P系统组管理方法及其节点设备和系统,所述P2P系统包括多个节点组,以及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组,所述节点管理组中的节点称为DHT节点;当有节点请求加入P2P系统时,执行步骤:请求加入的节点将节点管理组中的一个DHT节点加入自己的消息传播目的节点视图PView;所述一个DHT节点通知自己的组内消息传播目的节点视图APView中的节点;接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入。采用本发明,可减少系统开销,减少节点过载的发生,实现系统负载均衡,提高系统可靠性。

Description

P2P系统组管理方法及其装置和系统
技术领域
本发明涉及通信领域中的计算机网络技术,尤其涉及一种P2P系统组管理方法及其装置和系统。
背景技术
P2P(Peer-to-Peer,表示一种对等关系)组播在最近几年得到了飞速的发展,受到了业界的普遍关注。目前,P2P组播技术主要应用在大规模广域网应用中,比如实时流媒体应用、订阅/发布应用、一致性维护应用。组管理协议是这些应用的基础,决定着其性能、效率。组管理方式需要满足四个条件:支持节点搅动;具有较高的容错能力;具有较高的扩展能力;高效、合理的网络资源消耗。
基于流言传播机制的组管理方式,由于其简单、可靠而且扩展性好,逐渐受到了广泛的关注。这种组管理方式将节点组织成无结构的松散形式,当节点首次收到消息时,从系统中随机地选择k个节点转发消息,通常称k为节点的扇出(fanout)。已经有研究证明,为了保证可靠性,对于平面流言传播方式,在由N个节点组成的系统中,节点的平均扇出为log N数量级;而对于层次化流言传播方式,在由N个节点、M个簇组成的系统中,簇内的节点扇出应该为logN数量级,而簇之间的节点扇出应该为logM数量级。
目前,基于流言传播机制的组管理方式存在以下问题:
(1)需要在每个簇内维护全局的信息,导致大量的同步开销,使得网络资源不能得到有效的利用,不适合使用在可管、可控的P2P应用中;
(2)现有基于流言传播的组管理方式适用于节点能力相对均衡的均匀环境,而实际P2P系统中节点能力水平具有很大差异,因此现有方式可能使某些节点过载,从而负面影响了消息的丢失率;
(3)忽略了底层物理网络的拓扑结构,导致消耗大量的骨干网带宽,而且给传输开销带来了负面影响。
综上,现有技术基于流言传播机制的组管理技术系统开销大,节点负载不均衡,导致系统可靠性降低。
发明内容
本发明的目的之一在于提供一种P2P系统组管理方法,以解决现有技术中组管理可靠性低的问题,实现减小系统开销并均衡节点负载,提高系统可靠性。
本发明提供的P2P系统组管理方法中,所述P2P系统包括多个节点组,以及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组,所述节点管理组中的节点称为DHT节点;当有节点请求加入P2P系统时,执行步骤:
请求加入的节点从节点管理组中选取与自己物理距离最近的DHT节点,将选取出与自己物理距离最近的DHT节点加入自己的消息传播目的节点视图PView;所述一个DHT节点通知自己的组内消息传播目的节点视图APView中的节点;接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入;
当所述请求加入的节点未选取出与本节点物理距离最近的DHT节点时,所述请求加入的节点加入节点管理组,成为新的DHT节点;从节点管理组中选取除该新的DHT节点以外的一个DHT节点;将选取出的DHT节点加入该新的DHT节点的EPView,该选取出的DHT节点将该新的DHT节点加入自己的EIView;其中,所述EPView为DHT节点保存的节点组间的消息传播目的节点视图,所述EIView为DHT节点保存的节点组间的消息传播源节点视图;该选取出的DHT节点根据自己的EPView和能力大小,将该新的DHT节点加入自己的EPView或拒绝其加入。
本发明的目的之二在于提供一种P2P系统中的节点设备,以解决现有技术中组管理可靠性低的问题,实现减小系统开销并均衡节点负载,提高系统可靠性。
本发明提供的P2P系统的节点设备,包括:
节点视图存储模块,用于存储消息传播的源节点视图和目的节点视图;
第一加入管理模块,用于当接收其它节点设备转发的加入请求时,根据自己的消息传播目的节点视图大小和节点设备能力大小,将该请求加入的节点设备加入到自己的消息传播目的节点视图或拒绝加入;
当所述节点设备为DHT节点设备时,所述节点视图存储模块存储有所述DHT节点设备所在节点设备组的组内消息传播源节点视图AIView和目的节点视图APView;其中,节点设备管理组中的节点设备称为DHT节点设备;
所述节点设备还包括:
第三加入管理模块,用于当接收到其它节点设备发送的加入请求时,向所述DHT节点设备的APView的节点设备转发加入请求。
本发明通过P2P系统中创建的节点组和节点管理组实现层次化和结构化的组结构,并且基于DHT结构的节点管理组可充分利用DHT结构的可扩展性、系统开销较低能够适用于较大的系统规模的优势;在节点加入过程中,节点根据自己的节点视图大小和节点能力进行节点加入处理,从而使节点能够有选择地维护系统节点信息,与现有技术在每个簇内维护全局的信息相比,有选择地维护系统节点信息可减少系统开销;并且根据节点能力选择维护节点信息,还可以减少节点过载的发生,实现系统负载均衡,进而提高系统可靠性。
附图说明
图1为本发明实施例的P2P系统组结构示意图;
图2为利用本发明实施例的组管理方法进行系统模拟后得到的节点的邻居节点个数与其负载水平的示意图;
图3为利用本发明实施例的组管理方法进行系统模拟后得到的节点之间链路距离的累积分布图;
图4为利用本发明实施例的组管理方法进行系统模拟后得到的系统容错能力示意图;
图5为利用本发明实施例的组管理方法进行系统模拟后得到的50%节点离开后系统的容错能力示意图;
图6为本发明实施例的P2P系统节点设备结构示意图。
具体实施方式
本发明实施例提出了一种面向异构环境下的可靠P2P系统组管理方法。下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例的P2P系统组结构示意图。
如图1所示,P2P系统中的节点被组织成多个节点组(如图1中的11所指示),称为簇(cluster),每个簇内包括多个节点(至少有一个节点),这些节点可以是物理网络上距离相近的节点。每一个簇选举出一个节点,选举出的这些节点按照DHT协议组织成DHT(Distributed HashTable,分布式哈希表)结构,DHT结构主要协助节点的加入和簇之间的链路建立,并不参与数据传输。DHT协议可以是Chord、Pastry或Viceroy协议,基于这些协议形成的覆盖网络结构为环状结构,如图1中的DHT结构是基于Chord协议形成的Chord环(如图1中的12所指示)。为了区别这些节点,称DHT结构中的节点为DHT节点,而将其它节点称为普通节点。
上述分布式的组结构中,每个节点保存对系统的局部视图(此处的视图可视为节点集合,以下同)。其中,
普通节点中保存有2个视图:
PView(Partial View),用来保存消息传播的目的节点;当该节点转发消息时,从这个PView视图中随机选择发送消息的目的节点进行转发;
IView(In View),用来保存消息来源的节点。
DHT节点中保存有4个视图:
EPView,用来保存簇外的消息传播目的节点;
APView,用来保存簇内的消息传播目的节点;
EIView,用来保存簇外的消息来源的节点;
AIView,用来保存簇内的消息来源的节点。
针对上述P2P系统组结构,本发明实施例提供了P2P系统组管理方法,包括节点加入管理、节点离开管理以及节点失效管理。下面以基于Chord结构的P2P系统为例进行说明,基于其它DHT结构的P2P系统的组管理方法与此类似。
当有节点n0请求加入时,首先从Chord环中查找物理距离最近的DHT节点,如果找到,则将节点n0加入到物理距离最近的DHT节点所属的簇中;否则,将节点n0加入到Chord环中。
从Chord环中查找物理距离最近的DHT节点,可借助界标簇算法产生邻近信息,即,每个节点测量到m(m可取15)个固定界标节点的距离,产生一个界标向量,然后利用Hilbert曲线把m维的界标向量转化为一维的界标值。由于Hilbert曲线在空间变换时仍然能保证邻近关系,所以界标值相近的节点在物理网络上距离相近。节点n0请求加入时,利用该界标值作为关键字在Chord环上查找距离近的DHT节点。
查找物理距离最近的DHT节点后,将节点n0加入到该DHT节点所属的簇中。该过程中,需要更新节点n0的PView,即,在节点n0的PView中加入该DHT节点,以使该DHT节点成为节点n0的消息传播目的节点;还要更新DHT节点APView中的部分节点的PView,即,在这些节点中的PView中加入节点n0,使节点n0成为这些节点的消息传播目的节点。
设查找到的物理距离最近的DHT节点为dn0,更新DHT节点dn0的APView中的部分节点的PView,其过程为:
DHT节点dn0把节点n0的加入请求转发给该DHT节点dn0的APView中的所有节点,并另外产生(dst+c+1)个请求拷贝,发送给从该APView中随机选取的(dst+c+1)个节点,其中dst是DHT节点dn0指针表大小,c可取不小于2的较小的整数;
DHT节点dn0的APView中的每个节点可能接收到1个加入请求,也可能接收到2个加入请求(当该节点被随机选取到接收请求拷贝时);对于接收到1个加入请求的节点,该节点根据自己当前的PView大小和自己的节点能力决定是否将节点n0加入其PView中并进行相应处理(加入处理或拒绝加入);对于接收到2个加入请求的节点,在该节点接收到第1个加入请求时,同样根据该节点当前的PView大小和自己的节点能力决定是否将节点n0加入其PView中,如果加入,则忽略接收到的第2个加入请求,否则,将第2个加入请求转发给该节点PView中随机选择的一个节点;该随机选择出的节点接收到加入请求后,同样根据该节点当前的PView大小和自己的节点能力决定是否将节点n0加入其PView中。
以节点i为例,接收到加入请求的节点i根据节点i当前PView大小和自己的节点能力决定是否将节点n0加入节点i的PView中,具体为:
节点i以概率
Figure GDA0000050839360000061
把节点n0加入其PView中,其中,|PViewi|表明节点i的PView的大小,如节点数量,Capacityi表明节点i的能力,如负载能力。采用该概率进行加入处理,可使节点i的消息传播目的节点的个数和该节点的能力成正比,从而可以达到控制节点视图大小和均衡节点负载的目的。
如果用E[PVn]表示当系统规模增长到n时系统中节点之间边的个数,则根据加入过程,可得到
E [ PV n ]
= E [ PV n - 1 ] n - 1 + E [ PV n - 1 ] + c + 1
= n ( c + 1 ) log n
可以看出,每个节点的PView大小平均为(c+1)logn,满足P2P系统对于簇内节点扇出为log N数量级的要求,从而证明采用上述流程进行节点加入管理可满足P2P系统可靠性要求。
如果在节点n0加入时,没有查找到物理距离最近的DHT节点,则节点n0按照Chord协议加入Chord环,成为DHT节点,然后创建相应视图,具体为:
随机选取一个DHT节点dn1,节点n0将DHT节点dn1加入其EPView,DHT节点dn1将节点n0加入其EIView,从而建立节点n0与DHT节点dn1所属簇的簇间关系;然后,节点n0产生(dst+c)个加入请求拷贝并发送给DHT节点dn1,其中dst是节点n0的指针表大小;当DHT节点dn1收到加入请求后,根据自己当前的EPView大小和自己的节点能力决定是否将节点n0加入其EPView,如果加入,则忽略接收到的节点n0的其余加入请求,如果不加入,则将节点n0的其余加入请求拷贝发送给DHT节点dn1所属簇内的一个节点;接收到加入请求的节点根据自己当前的PView大小和自己的节点能力决定是否将节点n0加入其PView,如果决定不加入,并且该节点还有节点n0的加入请求拷贝,则将加入请求拷贝发送到该簇中的另一个节点,依此类推,直到接收到加入请求的节点根据自己的PView大小和节点能力将节点n0加入其PView,或者已经没有加入请求拷贝可以转发(每次转发加入请求,拷贝数量递减,即,可通过加入请求拷贝数量控制最多转发次数)。接收到加入请求的节点根据该节点当前视图大小和自己的节点能力决定是否加入节点n0的具体实现,可如前所述,采用计算得到的概率加入节点n0
可以证明,对于一个由M个点组成的Chord环,节点的指针表中的节点数为logM。进一步的,按照上述节点加入的管理过程,对于一个由M个簇、N个节点组成的组,DHT节点的平均EPView是(logM+c),DHT节点的平均APView略大于clogN。因此,上述节点加入的组管理方法能够保证可靠的数据分发。
当有节点离开时,根据节点类型不同,其节点离开的管理方式也有所不同。
当普通节点n1离开时,如果节点n1有外部连接(即该节点的PView或IView中包含其它簇的节点),则节点n1首先将外部连接转移给簇内的其他节点,具体可为:在节点n1所属的簇内选择一个节点;将节点n1的PView中不属于该簇的节点添加到选择出的节点的PView中,将节点n1的IView中不属于该簇的节点添加到选择出的节点的IView中;
然后,节点n1从其IView中选择出(si-c-1)个节点,其中si为IView的大小;将选择出的si-c-1个节点的PView替换为节点n1的PView,从其余的(c+1)个节点的PView中删除节点n1
如果用E[PVn]表示当系统规模为n时系统中节点之间边的个数,则在节点n1离开后,可得到
E [ PV n - 1 ]
= E [ PV n - 1 ] - E [ PV n ] n - ( c + 1 )
= ( n - 1 ) ( c + 1 ) log ( n - 1 )
可以看出,每个节点的PView大小平均为(c+1)log(n-1),满足P2P系统对于簇内节点扇出为log N数量级的要求,从而证明采用上述流程进行节点离开管理可满足P2P系统可靠性要求。
当DHT节点dnl离开时,如果DHT节点dnl不是其所属簇内的最后一个节点,则DHT节点dnl从其APView中选择一个节点,优选的,选择一个能力大的节点代替DHT节点dnl在Chord环状结构中的位置之后离开Chord环。用选择出的节点代替DHT节点dnl在Chord环状结构中的位置,具体可为:为选择出的节点建立EPView、APView、EIView和AIView,上述视图分别继承节点dnl的相应视图中的节点,并将该选择出的节点的原有PView中的节点添加到建立的APView中,将该节点原有的IView中的节点添加到建立的AIView中;最后删除该节点的PView和IView。这样,选择出的节点继承了该节点原有的视图以及将要离开的组管理节点的视图。
如果DHT节点dnl是其所属簇内的最后一个节点,则DHT节点dnl的离开意味着其所属簇的删除,在该过程中,需要更新其EIView中的节点的EPView,具体为:假设DHT节点dnl的EIView大小是w,其前(w-1)个节点构成集合S,集合S中的每个节点将其EPView中的节点dnl替换为节点dnl的EPView中的节点。
按照上述节点加入的过程,簇内先加入的节点的外部连接个数比较多,但是整个簇的外部连接个数是很少的。这是因为每个簇平均向外的连接个数为O(logM)(例如,M=100,000,000,则O(logM)表示为O(8)),其中M为簇的个数。节点加入后,如果其外部连接的个数大于1,则其周期性地向簇内其他节点转移外部连接。所以,经过一段时间后,每个节点的外部连接个数最多为1。
本发明实施例提出的节点失效管理方法中,借助节点之间的周期性心跳消息发现邻居节点的失效。当DHT节点失效时,簇内的一个邻居节点将替代失效的DHT节点在Chord环上的位置,其替代过程类似于前述的当DHT节点离开时,由簇内节点替代该离开的DHT节点的过程,即,簇内的一个邻居节点(优选的,节点能力最大的邻居节点)建立EPView、APView、EIView和AIView,上述视图分别继承该失效的DHT节点的相应视图中的节点,并将该邻居节点的原有PView中的节点添加到建立的APView中,将该邻居节点原有的IView中的节点添加到建立的AIView中,使该邻居节点替代失效的DHT节点。
图2、图3、图4和图5给出了利用本发明实施例提出的组管理方法,对10,000个节点的P2P系统进行模拟,分别从负载的均衡性、链路距离和容错能力三个方面对该方法进行评估所得到的结果。
图2显示了节点的邻居节点个数和其能力的散列分布图。从图2中可以看出,节点的邻居节点个数严格小于其能力,而且和其能力大体上成正比关系。由此证明,本发明实施例所提出的组管理方法能够很好地均衡负载。
图3显示了链路距离分布图。从图3中可以看出,利用本发明实施例提出的组管理方法,25%的链路距离在6跳以内,而99.5%的链路距离在30跳之内。而如果无位置感知,只有1%的链路距离在6跳之内。由此证明,本发明实施例所提出的组管理方法能够极大的减少对骨干网链路的消耗。
图4显示了节点失效情况下的可靠性。从图4中可以看出,当30%的节点失效时,99%的节点仍然可达。
图5显示了50%节点离开后,节点失效情况下的可靠性。从图5中可以看出节点的离开对可靠性影响不大。
在实际实施中,DHT节点可以选取或者部署为稳定的服务器,这样,簇的离开会比较少,稳定性和可靠性可进一步提高。
本发明实施例还提供了一种P2P系统中的节点设备。该P2P系统包括多个节点设备组,以及由每个节点设备组中的一个节点设备组成的DHT结构的节点设备管理组。
参见图6,为本发明实施例提供的节点设备的结构示意图,该节点设备包括:节点视图存储模块61和第一加入管理模块62,还可进一步包括第二加入管理模块63和第三加入管理模块64中至少一个,以及第一离开管理模块65、第二离开管理模块66和第三离开管理模块67中的至少一个和失效管理模块68,节点视图存储模块61与其它模块连接,其中
当该节点设备为节点设备组中的节点设备时,节点视图存储模块61存储有IView和PView;当该节点设备为节点设备管理组中的组管理节点设备时,节点视图存储模块61存储有AIView和APView,以及EPView和EIView;
第一加入管理模块62,用于当接收其它节点设备转发的加入请求时,根据自己的PView大小和节点设备能力大小,将该请求加入的节点设备加入到自己的PView或拒绝加入,具体可为:
第一加入管理模块62根据PView大小和所述节点设备的能力大小计算概率,所述概率为
Figure GDA0000050839360000111
根据计算得到的概率,将请求加入的节点设备加入PView或拒绝其加入;
第二加入管理模块63,用于当该节点设备发起加入到P2P系统的加入请求时,将加入请求发送到节点设备管理组中的一个组管理节点设备,并将该组管理节点设备加入该节点设备的PView;第二加入管理模块选取出的组管理节点设备是与该节点设备物理距离最近的组管理节点设备;
第三加入管理模块64,用于当该节点设备为组管理节点设备,并且接收到其它节点设备发送的加入请求时,向该组管理节点设备的APView的节点设备转发加入请求;
第一离开管理模块65,用于当该节点设备为节点设备组中的节点设备,且该节点设备将要离开时,将该节点设备的IView中的部分节点设备的PView中的节点设备替换为该节点设备的PView中的节点设备,从该节点设备的IView中其余部分节点设备的PView中删除该节点设备;
第二离开管理模块66,用于当该节点设备被将要离开的组管理节点设备选取为新的组管理节点设备时,将该将要离开的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中,具体可为:该模块为该新的组管理节点建立EPView、APView、EIView和AIView,上述视图分别继承该将要离开的组管理节点的相应视图中的节点,并将该新的组管理节点的原有PView中的节点添加到建立的APView中,将该新的组管理节点原有的IView中的节点添加到建立的AIView中,使该新的组管理节点替代将要离开的组管理节点。
第三离开管理模块67,用于当该节点设备为组管理节点设备,该组管理节点设备是所属节点设备组中的最后一个节点设备时,将该组管理节点设备的EIView中的部分节点设备的EPView中的该组管理节点设备,替换为该组管理节点设备的EPView中的节点设备;
失效管理模块68,用于当该节点设备被失效的组管理节点设备选取为新的组管理节点设备时,将该失效的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中,具体可为:该模块为该新的组管理节点建立EPView、APView、EIView和AIView,上述视图分别继承该失效的组管理节点的相应视图中的节点,并将该新的组管理节点的原有PView中的节点添加到建立的APView中,将该新的组管理节点原有的IView中的节点添加到建立的AIView中,使该新的组管理节点替代失效的组管理节点。当然,失效管理模块68的功能也可以由第一离开管理模块65、第二离开管理模块66或者第三离开管理模块67实现,即将DHT节点失效等同于DHT节点离开时的处理方式。
本发明实施例还提供了一种P2P系统的组管理系统,该P2P系统包括多个节点设备组,以及由每个节点设备组中的一个节点设备组成的DHT结构的节点设备管理组;其中
节点设备管理组中的节点设备,用于接收其它节点设备发送的加入P2P系统的加入请求,并将加入请求转发到自己的APView中的节点设备;
节点设备组中的节点设备,用于当某个节点设备请求加入P2P系统时,将节点管理组中的一个组管理节点加入自己的PView;还用于接收节点设备管理组中的组管理节点设备或节点设备组中的其它节点设备转发加入请求,并根据自己的PView和能力大小将请求加入的节点设备加入自己的PView或拒绝其加入,具体可为:
根据该节点设备的PView和能力大小计算概率,所述概率为
Figure GDA0000050839360000121
根据计算得到的概率,将请求加入的节点设备加入自己的PView或拒绝其加入。
上述节点设备管理组的节点设备进一步用于,当该节点设备管理组中的节点设备将要离开时,若该组管理节点设备不是所属节点组的最后一个节点设备,则从该组管理节点设备所属节点设备组中选取一个节点设备作为新的组管理节点设备;若该组管理节点设备是所属节点设备组中的最后一个节点设备时,将该组管理节点设备的EIView中的部分节点设备的EPView中的该组管理节点设备,替换为该组管理节点设备的EPView中的节点设备;上述节点设备组中的节点设备进一步用于,当该节点设备被将要离开的组管理节点设备选取为新的组管理节点设备时,将该将要离开的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中。
上述节点设备管理组中的节点设备进一步用于,当该组管理节点设备失效备时,从该失效的组管理节点设备所属节点设备组中选取一个节点设备作为新的组管理节点设备;上述节点设备组中的节点设备进一步用于,当该节点设备被失效的组管理节点设备选取为新的组管理节点设备时,将该失效的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中。
综上所述,本发明的上述实施例,提供了一种P2P系统异构环境下的组管理结构和组管理方法,通过P2P系统中创建的簇和DHT结构实现层次化的组结构;在节点加入过程中,节点可根据自己的视图大小和节点能力有选择地将请求加入的节点加入自己的视图中,从而使节点视图中维护节点数可控,有选择地维护节点视图还可减少系统开销;并且根据视图大小和节点能力选择维护节点视图,还可以减少节点过载的发生,实现系统负载均衡,进而提高系统可靠性。本发明的实施例还通过将物理距离相近的节点组织到一个簇中,实现基于位置感知的P2P组管理,从而满足层次化消息传播协议的可靠性要求。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种P2P系统组管理方法,其特征在于,所述P2P系统包括多个节点组,以及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组,所述节点管理组中的节点称为DHT节点;当有节点请求加入P2P系统时,执行步骤:
请求加入的节点从节点管理组中选取与自己物理距离最近的DHT节点,将选取的与自己物理距离最近的DHT节点加入自己的消息传播目的节点视图PView;所述选取出的DHT节点通知自己的组内消息传播目的节点视图APView中的节点;接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入;
当所述请求加入的节点未选取出与本节点物理距离最近的DHT节点时,所述请求加入的节点加入节点管理组,成为新的DHT节点;从节点管理组中选取除该新的DHT节点以外的一个DHT节点;将选取出的DHT节点加入该新的DHT节点的EPView,该选取出的DHT节点将该新的DHT节点加入自己的EIView;其中,所述EPView为DHT节点保存的节点组间的消息传播目的节点视图,所述EIView为DHT节点保存的节点组间的消息传播源节点视图;该选取出的DHT节点根据自己的EPView和能力大小,将该新的DHT节点加入自己的EPView或拒绝其加入。
2.如权利要求1所述的方法,其特征在于,请求加入的节点从节点管理组中选取与自己物理距离最近的DHT节点,具体为:
获取各节点的界标值,根据获取到的界标值在节点管理组中查找与该请求加入的节点物理距离最近的DHT节点。
3.如权利要求1所述的方法,其特征在于,所述选取出的DHT节点根据自己的EPView和能力大小,拒绝将所述新的DHT节点加入自己的EPView后,还包括步骤:
所述选取出的DHT节点将从所述新的DHT节点接收到的加入请求转发给该选取出的DHT节点所属节点组中的一个节点;
接收到转发的加入请求的节点根据自己的PView和能力大小,将所述新的DHT节点加入自己的PView或拒绝其加入;若拒绝其加入,则将加入请求转发给所述节点组中的另一个节点,依此类推,直到接收到加入请求的节点根据自己的PView和能力大小将所述新的DHT节点加入其PView,或者直到达到设定的加入请求转发次数时停止转发加入请求。
4.如权利要求1所述的方法,其特征在于,所述选取出的DHT节点通知自己的APView中的节点后还包括步骤:
所述选取出的DHT节点将加入请求转发给从自己的APView中选取出的部分节点;
接收到所述加入请求的节点,若根据前次接收到的加入请求拒绝将所述请求加入的节点加入自己的PView,则将再次接收到的加入请求转发给自己的PView中的一个节点;
所述PView中的节点接收到转发的加入请求后,根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入。
5.如权利要求1至4任一权项所述的方法,其特征在于,相应节点根据自己的相应节点视图和能力大小,将所述请求加入的节点加入自己的相应节点视图或拒绝其加入,具体为:
根据所述相应节点视图大小和节点能力大小计算概率,所述概率为
Figure FDA0000081645520000021
根据计算得到的概率,将所述请求加入的节点加入自己的相应节点视图或拒绝其加入。
6.如权利要求1所述的方法,其特征在于,当节点组中的节点将要离开时,还包括步骤:
将该将要离开节点的IView中的部分节点的PView替换为该离开节点的PView,从该将要离开节点的IView中其余部分节点的PView中删除该将要离开节点,所述IView为节点组中的节点保存的消息传播源节点视图。
7.如权利要求6所述的方法,其特征在于,当所述将要离开节点的PView或IView中包含其它节点组的节点时,还包括步骤:
在所述将要离开节点所属的节点组内选取一个节点;
将所述将要离开节点的PView中包含的其它节点组的节点添加到选取出的节点的PView中;或者,将所述将要离开节点的IView中包含的其它节点组的节点添加到选取出的节点的IView中。
8.如权利要求1所述的方法,其特征在于,当DHT节点将要离开且该DHT节点不是所属节点组的最后一个节点时,还包括步骤:
从该将要离开的DHT节点所属节点组中选取一个节点,将选取出的节点加入节点管理组,成为新的DHT节点;
将该将要离开的DHT节点的节点视图中的节点加入到该新的DHT节点的相应节点视图中。
9.如权利要求1所述的方法,其特征在于,当DHT节点失效时,还包括步骤:
从该失效的DHT节点所属节点组中选取一个节点,将选取出的节点加入节点管理组,成为新的DHT节点;
将该失效的DHT节点的节点视图中的节点加入到该新的DHT节点的相应节点视图中。
10.如权利要求8或9所述的方法,其特征在于,将所述将要离开或失效的DHT节点的节点视图中的节点加入到新的DHT节点的相应节点视图中,具体为:
为新的DHT节点创建AIView、APView、EIView和EPView,所述AIView和APView分别为DHT节点保存的其所在节点组的组内消息传播源节点视图和目的节点视图;
将新的DHT节点原IView中的节点加入到创建的AIView中,将新的DHT节点原PView中的节点加入到创建的APView中,其中,所述IView为节点组中的节点保存的消息传播源节点视图;
将所述将要离开或失效的DHT节点的AIView、APView、EIView和EPView中的节点加入到创建的相应节点视图中,其中,所述EPView为DHT节点保存的节点组间的消息传播目的节点视图,所述EIView为DHT节点保存的节点组间的消息传播源节点视图。
11.如权利要求8或9所述的方法,其特征在于,从所述将要离开或失效的DHT节点所属节点组中选取的节点为所述节点组中节点能力最大的节点。
12.如权利要求1所述的方法,其特征在于,当DHT节点将要离开且该DHT节点是所属节点组中的最后一个节点时,还包括步骤:
将所述DHT节点的EIView中的部分节点的EPView中的所述DHT节点,替换为所述DHT节点的EPView中的节点。
13.一种P2P系统中的节点设备,其特征在于,所述P2P系统包括多个节点设备组,以及由每个节点设备组中的一个节点设备组成的分布式哈希表DHT结构的节点设备管理组,所述节点设备管理组中的节点设备称为DHT节点设备;所述节点设备包括:
节点视图存储模块,用于存储消息传播的源节点视图和目的节点视图;
第一加入管理模块,用于当该节点设备为节点设备组中的节点设备,并且接收其它节点设备转发的加入请求时,根据自己的消息传播目的节点视图大小和节点设备能力大小,将该请求加入的节点设备加入到自己的消息传播目的节点视图或拒绝加入;
当所述节点设备为DHT节点设备时,所述节点视图存储模块存储有所述DHT节点设备所在节点设备组的组内消息传播源节点视图AIView和目的节点视图APView;
所述节点设备还包括:
第三加入管理模块,用于当该节点设备为DHT节点设备,并且接收到其它节点设备发送的加入请求时,向所述DHT节点设备的APView中的节点设备转发加入请求。
14.如权利要求13所述的节点设备,其特征在于,所述第一加入管理模块进一步用于,根据所述消息传播目的节点视图大小和所述节点设备的能力大小计算概率,所述概率为
Figure FDA0000081645520000051
根据计算得到的概率,将请求加入的节点设备加入所述消息传播目的节点视图或拒绝其加入。
15.如权利要求13所述的节点设备,其特征在于,还包括:
第二加入管理模块,用于当所述节点设备发起加入到P2P系统的加入请求时,将加入请求发送到节点设备管理组中的一个DHT节点设备,并将该DHT节点设备加入所述节点设备的消息传播的目的节点视图。
16.如权利要求15所述的节点设备,其特征在于,所述一个DHT节点设备为与所述节点设备物理距离最近的DHT节点设备。
17.如权利要求13所述的节点设备,其特征在于,
所述节点设备为节点设备组中的节点设备时,所述节点视图存储模块存储有IView和PView;所述节点设备为节点设备管理组中的DHT节点设备时,所述节点视图存储模块存储有AIView和APView,以及EPView和EIView;其中,所述PView为节点设备组中的节点设备保存的消息传播目的节点视图,所述IView为节点设备组中的节点设备保存的消息传播源节点视图,所述AIView和APView分别为DHT节点设备保存的其所在节点设备组的组内消息传播源节点视图和目的节点视图,所述EPView为DHT节点设备保存的节点设备组间的消息传播目的节点视图,所述EIView为DHT节点设备保存的节点设备组间的消息传播源节点视图;
所述节点设备还包括第一离开管理模块、第二离开管理模块或第三离开管理模块,其中
第一离开管理模块,用于当所述节点设备为节点设备组中的节点设备,且该节点设备将要离开时,将该节点设备的IView中的部分节点设备的PView中的节点设备替换为该节点设备的PView中的节点设备,从该节点设备的IView中其余部分节点设备的PView中删除该节点设备;
第二离开管理模块,用于当所述节点设备被将要离开的DHT节点设备选取为新的DHT节点设备时,将该将要离开的DHT节点设备的节点视图中的节点设备加入到该新的DHT节点设备的相应节点视图中;
第三离开管理模块,用于当所述节点设备为DHT节点设备,该DHT节点设备是所属节点设备组中的最后一个节点设备时,将该DHT节点设备的EIView中的部分节点设备的EPView中的该DHT节点设备,替换为该DHT节点设备的EPView中的节点设备。
18.如权利要求13所述的节点设备,其特征在于,还包括:
失效管理模块,用于当所述节点设备被失效的DHT节点设备选取为新的DHT节点设备时,将该失效的DHT节点设备的节点视图中的节点设备加入到该新的DHT节点设备的相应节点视图中。
CN2007101799331A 2007-12-19 2007-12-19 P2p系统组管理方法及其装置和系统 Active CN101465753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101799331A CN101465753B (zh) 2007-12-19 2007-12-19 P2p系统组管理方法及其装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101799331A CN101465753B (zh) 2007-12-19 2007-12-19 P2p系统组管理方法及其装置和系统

Publications (2)

Publication Number Publication Date
CN101465753A CN101465753A (zh) 2009-06-24
CN101465753B true CN101465753B (zh) 2011-11-16

Family

ID=40806128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101799331A Active CN101465753B (zh) 2007-12-19 2007-12-19 P2p系统组管理方法及其装置和系统

Country Status (1)

Country Link
CN (1) CN101465753B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160135017A1 (en) * 2014-11-10 2016-05-12 Chiun Mai Communication Systems, Inc. System and method for multiple clients synchronization in wi-fi peer-to-peer group
CN105872000A (zh) * 2015-12-21 2016-08-17 乐视云计算有限公司 P2p节点的分组方法、装置及系统
CN107547657A (zh) * 2017-09-27 2018-01-05 柏科数据技术(深圳)股份有限公司 一种基于云存储系统中单点数据编号的方法、装置以及存储介质
CN110022222B (zh) * 2018-01-10 2022-02-25 中兴通讯股份有限公司 一种dht网络的管理方法、网络节点、管理节点及系统
CN108810157A (zh) * 2018-06-20 2018-11-13 泰链(厦门)科技有限公司 区块链网络连接方法、介质、装置及系统
CN109995764A (zh) * 2019-03-07 2019-07-09 北京华安普特网络科技有限公司 一种基于区块链的ddos攻击防御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ayalvadi J.Ganesh, .et al.Peer-to-Peer Membership Management for Gossip-Based Protocols.《IEEE TRANSACTIONS ON COMPUTERS》.2003,第52卷(第2期),第139~149页. *
姜守旭等.基于超节点的Chord系统.《小型微型计算机系统》.2007,第28卷(第2期),第266~270页. *

Also Published As

Publication number Publication date
CN101465753A (zh) 2009-06-24

Similar Documents

Publication Publication Date Title
Pandurangan et al. Building low-diameter peer-to-peer networks
Van Renesse et al. Willow: DHT, aggregation, and publish/subscribe in one protocol
US7788400B2 (en) Utilizing proximity information in an overlay network
CN101465753B (zh) P2p系统组管理方法及其装置和系统
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
CN101399746B (zh) 报文路由方法、系统、设备和选择备份资源的方法、系统
CN100488145C (zh) 一种用于构建簇状对等网络的分布式聚集方法
CN112104558B (zh) 区块链分发网络的实现方法、系统、终端及介质
Pyun et al. Constructing a balanced,(log (N)/1oglog (N))-diameter super-peer topology for scalable P2P systems
Zhou et al. A hybrid P2P approach to service discovery in the cloud
CN104967677A (zh) 一种基于ndn缓存优化的文件传输方法以及装置
CN102045392A (zh) 一种无结构p2p网络的基于兴趣的自适应拓扑优化方法
Heer et al. Adapting distributed hash tables for mobile ad hoc networks
CN102325093A (zh) 一种结构化p2p网络中的路由系统构建方法
CN101094244A (zh) P2p系统中的高性能分布哈希表方法
CN107612980B (zh) 一种结构化p2p网络中可调节且可靠的一致性维护方法
CN103118113B (zh) 一种对等网络及其网络资源定位方法
CN106657333B (zh) 一种基于云服务模式的集中式目录数据交换系统及方法
Zhang et al. Enabling routing control in a DHT
Li et al. A role-based distributed publish/subscribe system in IoT
Han et al. An optimized gnutella-like P2P protocol in mobile networks
Zhang et al. A new algorithm of service discovery based on DHT for mobile application
CN107948070B (zh) 一种基于QoS的移动P2P网络虚拟链路选取方法
Kang et al. A healthcare information sharing scheme in distributed cloud networks
CN113810488B (zh) 一种基于兴趣簇-热链的资源查找系统及其构建方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant