P2p系统组管理方法及其装置和系统的制作方法

文档序号:7665963阅读:211来源:国知局
专利名称:P2p系统组管理方法及其装置和系统的制作方法
技术领域
本发明涉及通信领域中的计算机网络技术,尤其涉及一种P2P系统组管理 方法及其装置和系统。
背景技术
P2P ( Peer-to-Peer,表示一种对等关系)组播在最近几年得到了飞速的发 展,受到了业界的普遍关注。目前,P2P组播技术主要应用在大规模广域网应 用中,比如实时流J某体应用、订阅/发布应用、 一致性维护应用。组管理协议是 这些应用的基础,决定着其性能、效率。组管理方式需要满足四个条件支持 节点搅动;具有较高的容错能力;具有较高的扩展能力;高效、合理的网络资 源消耗。
基于流言传播机制的组管理方式,由于其简单、可靠而且扩展性好,逐渐 受到了广泛的关注。这种组管理方式将节点组织成无结构的杠、散形式,当节点 首次收到消息时,从系统中随机地选择k个节点转发消息,通常称k为节点的 扇出(fanout)。已经有研究证明,为了保证可靠性,对于平面流言传播方式, 在由N个节点组成的系统中,节点的平均扇出为logW数量级;而对于层次化
流言传播方式,在由N个节点、M个簇组成的系统中,簇内的节点扇出应该 为logTV数量级,而簇之间的节点扇出应该为logM数量级。 目前,基于流言传播机制的组管理方式存在以下问题
(1) 需要在每个簇内维护全局的信息,导致大量的同步开销,使得网络 资源不能得到有效的利用,不适合使用在可管、可控的P2P应用中;
(2) 现有基于流言传播的组管理方式适用于节点能力相对均衡的均匀环 境,而实际P2P系统中节点能力水平具有很大差异,因此现有方式可能使某些节点过载,从而负面影响了消息的丢失率;
(3)忽略了底层物理网络的拓朴结构,导致消耗大量的骨干网带宽,而 且给传输开销带来了负面影响。
综上,现有技术基于流言传播机制的组管理技术系统开销大,节点负载不 均衡,导致系统可靠性降低。

发明内容
本发明的目的之一在于提供一种P2P系统组管理方法,以解决现有技术中 组管理可靠性低的问题,实现减小系统开销并均衡节点负载,提高系统可靠性。
本发明提供的P2P系统组管理方法中,所述P2P系统包括多个节点组,以 及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组; 当有节点请求加入P2P系统时,执行步骤
请求加入的节点将节点管理组中的 一个组管理节点加入自己的消息传播 目的节点视图PView;
所述一个组管理节点通知自己的组内消息传播目的节点-f见图APView中的
节点;
接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点 加入自己的PView或拒绝其加入。
本发明的目的之二在于提供一种P2P系统中的节点i殳备,以解决现有技术 中组管理可靠性低的问题,实现减小系统开销并均衡节点负载,提高系统可靠 性。
本发明提供的P2P系统的节点设备,包括
节点视图存储模块,用于存储消息传播的源节点视图和目的节点视图; 第一加入管理模块,用于当接收其它节点设备转发的加入请求时,根据自
己的消息传播目的节点视图大小和节点设备能力大小,将该请求加入的节点设
备加入到自己的消息传播目的节点视图或拒绝加入。本发明的目的之三在于提供一种P2P系统的组管理系统,以解决现有技术 中组管理可靠性低的问题,实现减小系统开销并均衡节点负载,提高系统可靠 性。
本发明提供的P2P系统的组管理系统,包括多个节点设备组,以及由每个 节点设备组中的一个节点设备组成的DHT结构的节点设备管理组;
所述节点设备管理组中的节点设备,用于接收其它节点设备发送的加入 P2P系统的加入请求,并将加入请求转发到自己的APView中的节点设备;
所述节点设备组中的节点设备,用于当所述节点设备请求加入P2P系统 时,将节点管理组中的一个组管理节点加入自己的PView;还用于接收节点设 备管理组中的组管理节点设备转发的加入请求,并根据自己的PView和能力大 小将请求加入的节点设备加入自己的PView或拒绝其加入。
本发明通过P2P系统中创建的节点组和节点管理组实现层次化和结构化 的组结构,并且基于DHT结构的节点管理组可充分利用DHT结构的可扩展性、 系统开销较低能够适用于较大的系统规模的优势;在节点加入过程中,节点根 据自己的节点视图大小和节点能力进行节点加入处理,从而使节点能够有选择 地维护系统节点信息,与现有技术在每个簇内维护全局的信息相比,有选择地 维护系统节点信息可减少系统开销;并且根据节点能力选择维护节点信息,还 可以减少节点过载的发生,实现系统负载均衡,进而提高系统可靠性。


图1为本发明实施例的P2P系统组结构示意图2为利用本发明实施例的组管理方法进行系统模拟后得到的节点的邻居 节点个数与其负载水平的示意图3为利用本发明实施例的组管理方法进行系统模拟后得到的节点之间链 路距离的累积分布图4为利用本发明实施例的组管理方法进行系统模拟后得到的系统容错能
ii力示意图5为利用本发明实施例的组管理方法进行系统模拟后得到的50%节点 离开后系统的容4晉能力示意图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系统的组管理方法与此类似。
当有节点"。请求加入时,首先从Chord环中查找物理距离最近的DHT节点,如果找到,则将节点w。加入到物理距离最近的DHT节点所属的簇中;否则,将节点"Q加入到Chord环中。
从Chord环中查找物理距离最近的DHT节点,可借助界标簇算法产生邻近信息,即,每个节点测量到w (w可取15)个固定界标节点的距离,产生一个界标向量,然后利用Hilbert曲线把w维的界标向量转化为一维的界标值。由于Hilbert曲线在空间变换时仍然能保证邻近关系,所以界标值相近的节点在物理网络上距离相近。节点wQ请求加入时,利用该界标值作为关键字在Chord
环上查找距离近的DHT节点。
查找物理距离最近的DHT节点后,将节点"。加入到该DHT节点所属的簇
中。该过程中,需要更新节点"。的PView,即,在节点"。的PView中加入该DHT节点,以使该DHT节点成为节点"。的消息传播目的节点;还要更新DHT节点APView中的部分节点的PView,即,在这些节点中的PView中加入节点"。,使节点"Q成为这些节点的消息传播目的节点。
设查找到的物理距离最近的DHT节点为d"。,更新DHT节点dw。的APView中的部分节点的PView ,其过程为
DHT节点d"。把节点"。的加入请求转发给该DHT节点^。的APView中的所有节点,并另外产生(dst+c+1 )个请求拷贝,发送给从该APView中随机选
13取的(dst+c+l )个节点,其中dst是DHT节点d"。指针表大小,c可取不小于2的4交小的整凄t;
DHT节点d"。的APView中的每个节点可能接收到1个加入请求,也可能接收到2个加入请求(当该节点被随机选取到接收请求拷贝时);对于接收到1个加入请求的节点,该节点才艮据自己当前的PView大小和自己的节点能力决定是否将节点"。加入其PView中并进行相应处理(加入处理或拒绝加入);对于接收到2个加入请求的节点,在该节点接收到第1个加入请求时,同样根据该节点当前的PView大小和自己的节点能力决定是否将节点"。加入其PView中,如果加入,则忽略^l妻收到的第2个加入请求,否则,将第2个加入请求转发给该节点PView中随机选择的一个节点;该随机选择出的节点接收到加入请求后,同样根据该节点当前的PView大小和自己的节点能力决定是否将节点"。加入其PView中。
以节点i为例, -接收到加入请求的节点i才艮据节点i当前PView大小和自己的节点能力决定是否将节点w。加入节点i的PView中,具体为
节点i以概率p = 1 - 11把节点"。加入其PView中,其中,l尸We^1
表明节点i的PView的大小,如节点数量,Ca/ ac^,表明节点i的能力,如负载能力。釆用该概率进行加入处理,可使节点i的消息传播目的节点的个数和该节点的能力成正比,从而可以达到控制节点视图大小和均衡节点负载的目的。
如果用五[PK"]表示当系统规模增长到w时系统中节点之间边的个数,则根据加入过程,可得到
W — l
=W(C + 1) log/7
可以看出,每个节点的PView大小平均为(c + l)log",满足P2P系统对于簇内节点扇出为logiV数量级的要求,从而证明采用上述流程进行节点加入管理可满足P2P系统可靠性要求。
如果在节点"。加入时,没有查找到物理距离最近的DHT节点,则节点"。按照Chord协议加入Chord环,成为DHT节点,然后创建相应^见图,具体为
随机选取一个DHT节点,节点"Q将DHT节点^ ,加入其EPView, DHT节点d",将节点"。加入其EIView, >久而建立节点"。与DHT节点^2,所属簇的簇间关系;然后,节点w。产生(dst+c)个加入请求拷贝并发送给DHT节点^,,其中dst是节点"。的指针表大小;当DHT节点^收到加入请求后,根据自己当前的EPView大小和自己的节点能力决定是否将节点w。加入其EPView,如果加入,则忽略接收到的节点w。的其余加入请求,如果不加入,则将节点"。的其余加入请求拷贝发送给DHT节点^7,所属簇内的一个节点;接收到加入请求的节点根据自己当前的PView大小和自己的节点能力决定是否将节点 加入其PView,如果决定不加入,并且该节点还有节点"。的加入请求拷贝,则将加
入请求拷贝发送到该簇中的另一个节点,依此类推,直到接收到加入请求的节点根据自己的PView大小和节点能力将节点"。加入其PView,或者已经没有加
入请求拷贝可以转发(每次转发加入请求,拷贝数量递减,即,可通过加入请求拷贝数量控制最多转发次数)。接收到加入请求的节点根据该节点当前视图大小和自己的节点能力决定是否加入节点 的具体实现,可如前所述,采用计
算得到的概率加入节点"。。
可以证明,对于一个由M个点组成的Chord环,节点的指针表中的节点数为logM。进一步的,按照上述节点加入的管理过程,对于一个由M个簇、7V个节点组成的组,DHT节点的平均EPView是(logM + c), DHT节点的平均APView略大于clogiV。因此,上述节点加入的组管理方法能够保证可靠的数据分发。
当有节点离开时,根据节点类型不同,其节点离开的管理方式也有所不同。
15当普通节点^离开时,如果节点w,有外部连接(即该节点的PView或IView 中包含其它簇的节点),则节点巧首先将外部连接转移给簇内的其他节点,具 体可为在节点^所属的簇内选择一个节点;将节点巧的PView中不属于该簇 的节点添加到选择出的节点的PView中,将节点巧的IView中不属于该簇的节 点添加到选择出的节点的I View中;
然后,节点",人其IView中选择出(si-c-l )个节点,其中si为IView的大 小;将选择出的si-c-l个节点的PView替换为节点q的PView,从其余的(c+l ) 个节点的PView中删除节点巧。
如果用五[尸^]表示当系统规模为"时系统中节点之间边的个数,则在节点 巧离开后,可^f寻到
可尸U
J-^J-("l)
=(>2 — l)(C + l)log(M — l)
可以看出,每个节点的PView大小平均为(c + l)log("-l),满足P2P系统 对于簇内节点扇出为log7V数量级的要求,从而证明采用上述流程进行节点离 开管理可满足P2P系统可靠性要求。
当DHT节点—离开时,如果DHT节点、不是其所属簇内的最后一个节 点,则DHT节点^,从其APView中选择一个节点,优选的,选择一个能力大 的节点代替DHT节点在Chord环状结构中的位置之后离开Chord环。用选 择出的节点代替DHT节点^,在Chord环状结构中的位置,具体可为为选择 出的节点建立EPView、 APView、 EIView和AIView,上述视图分别继承节点^, 的相应视图中的节点,并将该选择出的节点的原有PView中的节点添加到建立 的APView中,将该节点原有的IView中的节点添加到建立的AIView中;最 后删除该节点的PView和IView。这样,选择出的节点继承了该节点原有的视 图以及将要离开的组管理节点的视图。如果DHT节点^,是其所属簇内的最后一个节点,则DHT节点d",的离开 意味着其所属簇的删除,在该过程中,需要更新其EIView中的节点的EPView, 具体为假设DHT节点d巧的EIView大小是w,其前(w-1 )个节点构成集 合S ,集合>S中的每个节点将其EPView中的节点替换为节点的EPView 中的节点。
按照上述节点加入的过程,娱内先加入的节点的外部连接个数比较多,但 是整个簇的外部连接个数是很少的。这是因为每个簇平均向外的连接个数为 O(logM)(例如,M= 100,000,000,则O(logM)表示为0(8)),其中M为簇的
个数。节点加入后,如果其外部连接的个数大于1,则其周期性地向簇内其他 节点转移外部连接。所以,经过一段时间后,每个节点的外部连接个数最多为 1。
本发明实施例提出的节点失效管理方法中,借助节点之间的周期性心跳消 息发现邻居节点的失效。当DHT节点失效时,簇内的一个邻居节点将替代失 效的DHT节点在Chord环上的位置,其替代过程类似于前述的当DHT节点离 开时,由簇内节点替代该离开的DHT节点的过程,即,簇内的一个邻居节点 (优选的,节点能力最大的邻居节点)建立EPView、APView、EIView和AIView, 上述视图分别继承该失效的DHT节点的相应^f见图中的节点,并将该邻居节点 的原有PView中的节点添加到建立的APView中,将该邻居节点原有的IView 中的节点添加到建立的AIView中,使该邻居节点替代失效的DHT节点。
图2、图3、图4和图5给出了利用本发明实施例提出的组管理方法,对 10,000个节点的P2P系统进行模拟,分别从负载的均衡性、链路距离和容错能 力三个方面对该方法进行评估所得到的结果。
图2显示了节点的邻居节点个数和其能力的散列分布图。从图2中可以看 出,节点的邻居节点个数严格小于其能力,而且和其能力大体上成正比关系。 由此证明,本发明实施例所提出的组管理方法能够很好地均衡负载。
图3显示了链路距离分布图。从图3中可以看出,利用本发明实施例提出
17的组管理方法,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大小和所述节点设备的能力大小计算概
率,所述概率为p = 1 - 2个,,t卞;根据计算得到的概率,将请求加入的节点设备加入PView或拒绝其加入;
第二加入管理模块63,用于当该节点设备发起加入到P2P系统的加入请 求时,将加入请求发送到节点设备管理组中的一个组管理节点设备,并将该组 管理节点设备加入该节点设备的PView;第二加入管理模块选取出的组管理节 点设备是与该节点设备物理距离最近的组管理节点设备;
第三加入管理模块64,用于当该节点设备为组管理节点设备,并且接收到 其它节点设备发送的加入请求时,向该组管理节点设备的APView的节点设备 转发加入请求;
第一离开管理模块65,用于当该节点设备为节点设备组中的节点设备,且 该节点设备将要离开时,将该节点设备的IView中的部分节点设备的PView中 的节点设备替换为该节点设备的PView中的节点设备,从该节点设备的IView 中其余部分节点设备的pview中删除该节点设备;
第二离开管理模块66,用于当该节点设备被将要离开的组管理节点设备选 取为新的组管理节点设备时,将该将要离开的组管理节点设备的节点视图中的 节点设备加入到该新的组管理节点设备的相应节点视图中,具体可为该模块 为该新的组管理节点建立EPView、 APView、 EI View和AI View,上述视图分 别继承该将要离开的组管理节点的相应视图中的节点,并将该新的组管理节点 的原有PView中的节点添加到建立的APView中,将该新的组管理节点原有的 IView中的节点添加到建立的AIView中,使该新的组管理节点替代将要离开 的组管理节点。
第三离开管理模块67,用于当该节点设备为组管理节点设备,该组管理节 点设备是所属节点设备组中的最后一个节点设备时,将该组管理节点设备的 EIView中的部分节点设备的EPView中的该组管理节点设备,替换为该组管理 节点设备的EPView中的节点设备;
失效管理模块68,用于当该节点设备被失效的组管理节点设备选取为新的 组管理节点设备时,将该失效的组管理节点设备的节点视图中的节点设备加入
19到该新的组管理节点设备的相应节点视图中,具体可为该模块为该新的组管 理节点建立EPView、 APView、 EIView和AIView,上述视图分别继承该失效 的组管理节点的相应^L图中的节点,并将该新的组管理节点的原有PView中的 节点添加到建立的APView中,将该新的组管理节点原有的IView中的节点添 加到建立的AIView中,使该新的组管理节点替代失效的组管理节点。当然, 失效管理模块68的功能也可以由第一离开管理模块65、第二离开管理模块66 或者第三离开管理模块67实现,即将DHT节点失效等同于DHT节点离开时 的处理方式。
本发明实施例还4是供了 一种P2P系统的组管理系统,该P2P系统包括多个 节点设备组,以及由每个节点设备组中的一个节点设备组成的DHT结构的节 点设备管理组;其中
节点设备管理组中的节点设备,用于接收其它节点设备发送的加入P2P系 统的加入请求,并将加入请求转发到自己的APView中的节点设备;
节点设备组中的节点设备,用于当某个节点设备请求加入P2P系统时,将 节点管理组中的一个组管理节点加入自己的PView;还用于接收节点设备管理 组中的组管理节点设备或节点设备组中的其它节点设备转发加入请求,并根据 自己的PView和能力大小将请求加入的节点设备加入自己的PView或拒绝其 加入,具体可为
根据该节点设备的PView和能力大小计算概率,所述概率为
"i一H、,,,'l、;根据计算得到的概率,将请求加入的节点设备加入自己 节点能力大小
的PView或拒绝其力口入。
上述节点设备管理组的节点设备进一步用于,当该节点设备管理组中的节
点设备将要离开时,若该组管理节点设备不是所属节点组的最后一个节点设
备,则从该组管理节点设备所属节点设备组中选取一个节点设备作为新的组管
理节点设备;若该组管理节点设备是所属节点设备组中的最后一个节点设备时,将该组管理节点i殳备的EIView中的部分节点i殳备的EPView中的该组管 理节点设备,替换为该组管理节点设备的EPView中的节点设备;上述节点设 备组中的节点设备进一步用于,当该节点设备被将要离开的组管理节点设备选 取为新的组管理节点设备时,将该将要离开的组管理节点设备的节点视图中的 节点设备加入到该新的组管理节点设备的相应节点视图中。
上述节点设备管理组中的节点设备进一步用于,当该组管理节点设备失效 备时,从该失效的组管理节点设备所属节点设备组中选取一个节点设备作为新 的组管理节点设备;上述节点设备组中的节点设备进一步用于,当该节点设备 被失效的组管理节点设备选取为新的组管理节点设备时,将该失效的组管理节 点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视 图中。
综上所述,本发明的上述实施例,提供了一种P2P系统异构环境下的组管 理结构和组管理方法,通过P2P系统中创建的簇和DHT结构实现层次化的组 结构;在节点加入过程中,节点可根据自己的视图大小和节点能力有选择地将 请求加入的节点加入自己的视图中,从而使节点视图中维护节点数可控,有选 择地维护节点视图还可减少系统开销;并且根据视图大小和节点能力选择维护 节点视图,还可以减少节点过载的发生,实现系统负载均衡,进而提高系统可 靠性。本发明的实施例还通过将物理距离相近的节点组织到一个簇中,实现基 于位置感知的P2P组管理,从而满足层次化消息传播协议的可靠性要求。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种P2P系统组管理方法,其特征在于,所述P2P系统包括多个节点组,以及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组;当有节点请求加入P2P系统时,执行步骤请求加入的节点将节点管理组中的一个组管理节点加入自己的消息传播目的节点视图PView;所述一个组管理节点通知自己的组内消息传播目的节点视图APView中的节点;接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入。
2、 如权利要求1所述的方法,其特征在于,请求加入的节点将节点管理组中的一个组管理节点加入自己的PView之前还包括步骤从节点管理组中选取与自己物理距离最近的组管理节点;选取出与自己物理距离最近的组管理节点后,将该组管理节点加入自己的PView。
3、 如权利要求2所述的方法,其特征在于,请求加入的节点从节点管理组中选取与自己物理距离最近的组管理节点,具体为获取各节点的界标值,根据获取到的界标值在节点管理组中查找与该请求加入的节点物理距离最近的组管理节点。
4、 如权利要求2所述的方法,其特征在于,当所述请求加入的节点未选取出与本节点物理距离最近的组管理节点时,还包括步骤所述请求加入的节点加入节点管理组,成为新的组管理节点;从节点管理组中选取除该新的组管理节点以外的一个组管理节点;将选取出的组管理节点加入该新的组管理节点的EPView,该选取出的组管理节点将该新的组管理节点加入自己的EIView;其中,所述EPView为组管理节点保存的节点组间的消息传播目的节点视图,所述EIView为组管理节点保存的节点组间的消息传播源节点^L图;该选取出的组管理节点根据自己的EPView和能力大小,将该新的组管理节点加入自己的EPView或拒绝其加入。
5、 如权利要求4所述的方法,其特征在于,所述选取出的组管理节点根据自己的EPView和能力大小,拒绝将所述新的组管理节点加入自己的EPView后,还包括步骤所述选取出的组管理节点将从所述新的组管理节点接收到的加入请求转发给该选取出的组管理节点所属节点组中的 一个节点;接收到转发的加入请求的节点根据自己的PView和能力大小,将所述新的组管理节点加入自己的PView或拒绝其加入;若拒绝其加入,则将加入请求转发给所述节点组中的另一个节点,依此类推,直到接收到加入请求的节点根据自己的PView和能力大小将所述新的组管理节点加入其PView,或者直到达到设定的加入请求转发次数时停止转发加入请求。
6、 如权利要求5所述的方法,其特征在于,所述加入请求转发次数根据所述请求加入的节点的指针表大小设定。
7、 如权利要求1所述的方法,其特征在于,所述组管理节点通知自己的APView中的节点后还包括步骤所述组管理节点将加入请求转发给从自己的APView中选取出的部分节点;接收到所述加入请求的节点,若根据前次接收到的加入请求拒绝将所述请求加入的节点加入自己的PView,则将再次接收到的加入请求转发给自己的PView中的一个节点;所述PView中的节点接收到转发的加入请求后,根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入。
8、 如权利要求7所述的方法,其特征在于,所述选取出的部分节点的数量根据所述组管理节点的指针表大小设定。
9、 如权利要求1至8任一权项所述的方法,其特征在于,相应节点根据自己的相应节点-f见图和能力大小,将所述请求加入的节点加入自己的相应节点-阮图或拒绝其加入,具体为根据所述相应节点视图大小和节点能力大小计算概率,所述概率为节点视图大小."_节点能力大小'根据计算得到的概率,将所述请求加入的节点加入自己的相应节点视图或拒绝其加入。
10、 如权利要求l所述的方法,其特征在于,当节点组中的节点将要离开时,还包括步骤将该将要离开节点的IView中的部分节点的PView替换为该离开节点的PView,从该将要离开节点的IView中其余部分节点的PView中删除该将要离开节点,所述IView为节点组中的节点保存的消息传播源节点视图。
11、 如权利要求IO所述的方法,其特征在于,当所述将要离开节点的PView或IView中包含其它节点组的节点时,还包括步骤在所述将要离开节点所属的节点组内选取一 个节点;将所述将要离开节点的PView中包含的其它节点组的节点添加到选取出的节点的PView中;或者,将所述将要离开节点的IView中包含的其它节点组的节点添加到选取出的节点的I View中。
12、 如权利要求l所述的方法,其特征在于,当组管理节点将要离开且该组管理节点不是所属节点组的最后一个节点时,还包括步骤从该将要离开的组管理节点所属节点组中选取一个节点,将选取出的节点加入节点管理组,成为新的组管理节点;将该将要离开的组管理节点的节点视图中的节点加入到该新的组管理节点的相应节点视图中。
13、 如权利要求l所述的方法,其特征在于,当组管理节点失效时,还包括步骤从该失效的组管理节点所属节点组中选取一个节点,将选取出的节点加入节点管理组,成为新的组管理节点;将该失效的组管理节点的节点视图中的节点加入到该新的组管理节点的相应节点一见图中。
14、 如权利要求12或13所述的方法,其特征在于,将所述将要离开或失效的组管理节点的节点视图中的节点加入到新的组管理节点的相应节点视图中,具体为为新的组管理节点创建AIView、 APView、 EIView和EPView,所述AIView和APView分别为组管理节点保存的其所在节点组的组内消息传播源节点视图和目的节点一见图;将新的组管理节点原IView中的节点加入到创建的AIView中,将新的组管理节点原PView中的节点加入到创建的APView中;将所述将要离开或失效的组管理节点的AIView、 APView、 EIView和EPView中的节点加入到创建的相应节点视图中。
15、 如权利要求12或13所述的方法,其特征在于,从所述将要离开或失效的组管理节点所属节点组中选取的节点为所述节点组中节点能力最大的节点。
16、 如权利要求l所述的方法,其特征在于,当组管理节点将要离开且该组管理节点是所属节点组中的最后一个节点时,还包括步骤将所述组管理节点的EIView中的部分节点的EPView中的所述组管理节点,替换为所述组管理节点的EPView中的节点。
17、 如权利要求16所述的方法,其特征在于,所述组管理节点的EIView中的部分节点为该EIView中除最后 一个节点以外的其余所有节点。
18、 一种P2P系统中的节点设备,其特征在于,包括节点视图存储模块,用于存储消息传播的源节点视图和目的节点视图;第一加入管理模块,用于当接收其它节点设备转发的加入请求时,根据自己的消息传播目的节点视图大小和节点设备能力大小,将该请求加入的节点设备加入到自己的消息传播目的节点视图或拒绝加入。
19、 如权利要求18所述的节点设备,其特征在于,所述第一加入管理模块进一步用于,根据所述消息传播目的节点视图大小和所述节点设备的能力大小计算概率,所述概率为/7 = l-!7,,t':、;根据计算得到的概率,将请求节点能力大小加入的节点设备加入所述消息传播目的节点视图或拒绝其加入。
20、 如权利要求18所述的节点设备,其特征在于,还包括第二加入管理模块,用于当所述节点设备发起加入到P2P系统的加入请求时,将加入请求发送到节点设备管理组中的一个组管理节点设备,并将该组管理节点设备加入所述节点设备的消息传播的目的节点视图。
21、 如权利要求20所述的节点设备,其特征在于,所述第二加入管理模块进一步用于,选取出与所述节点设备物理距离最近的组管理节点设备,并将选取出的组管理节点设备加入所述节点设备的消息传播的目的节点视图。
22、 如权利要求18所述的节点设备,其特征在于,当所述节点设备为组管理节点设备时,所述节点视图存储模块存储有所述组管理节点设备所在节点设备组的组内消息传播源节点视图AIView和目的节点视图APView;所述节点设备还包括第三加入管理模块,用于当接收到其它节点设备发送的加入请求时,向所述组管理节点设备的APView的节点设备转发加入请求。
23、 如权利要求18所述的节点设备,其特征在于,所述节点设备为节点设备组中的节点设备时,所述节点视图存储模块存储有IView和PView;所述节点设备为节点设备管理组中的组管理节点设备时,所述节点视图存储模块存储有AIView和APView,以及EPView和EIView;所述节点设备还包括第一离开管理模块、第二离开管理模块或第三离开管理模块,其中第一离开管理模块,用于当所述节点设备为节点设备组中的节点设备,且该节点设备将要离开时,将该节点设备的IView中的部分节点设备的PView中的节点设备替换为该节点设备的PView中的节点设备,从该节点设备的IView中其余部分节点设备的PView中删除该节点设备;第二离开管理模块,用于当所述节点设备被将要离开的组管理节点设备选取为新的组管理节点设备时,将该将要离开的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中;第三离开管理模块,用于当所述节点设备为组管理节点设备,该组管理节点设备是所属节点设备组中的最后一个节点设备时,将该组管理节点设备的EIView中的部分节点设备的EPView中的该组管理节点设备,替换为该组管理节点设备的EPView中的节点设备。
24、 如权利要求18所述的节点设备,其特征在于,还包括失效管理^^块,用于当所述节点设备被失效的组管理节点设备选取为新的组管理节点设备时,将该失效的组管理节点设备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中。
25、 一种P2P系统的组管理系统,其特征在于,所述P2P系统包括多个节点设备组,以及由每个节点设备组中的一个节点设备组成的DHT结构的节点设备管理组;所述节点设备管理组中的节点设备,用于接收其它节点设备发送的加入P2P系统的加入请求,并将加入请求转发到自己的APView中的节点设备;所述节点设备组中的节点设备,用于当所述节点设备请求加入P2P系统时,将节点管理组中的一个组管理节点加入自己的PView;还用于接收节点设备管理组中的组管理节点设备转发的加入请求,并根据自己的PView和能力大小将请求加入的节点设备加入自己的PView或拒绝其加入。
26、 如权利要求25所述的P2P系统的组管理系统,其特征在于,所述节点设备组中的节点设备进一步用于,根据所述节点设备的PView和能力大小计算概率,所述概率为p = l-:个,,,卞;根据计算得到的概率,将请求加入节点能力大小的节点设备加入自己的PView或拒绝其加入。
27、 如权利要求25所述的P2P系统的组管理系统,其特征在于,所述节 点设备管理组的节点设备进一步用于,当所述节点设备管理组中的节点设备将 要离开时,若该组管理节点设备不是所属节点组的最后一个节点设备,则从该 组管理节点设备所属节点设备组中选取 一 个节点设备作为新的组管理节点设 备;若该组管理节点设备是所属节点设备组中的最后一个节点设备时,将该组 管理节点设备的EIView中的部分节点设备的EPView中的该组管理节点设备, 替换为该组管理节点设备的EPView中的节点设备;所述节点设备组中的节点设备进一步用于,当所述节点设备被将要离开的 组管理节点设备选取为新的组管理节点设备时,将该将要离开的组管理节点设 备的节点视图中的节点设备加入到该新的组管理节点设备的相应节点视图中。
28、 如权利要求25所述的P2P系统的组管理系统,其特征在于,所述节 点设备管理组中的节点设备进一步用于,当所述组管理节点设备失效备时,从 所述失效的组管理节点设备所属节点设备组中选取 一 个节点设备作为新的组 管理节点设备;所述节点设备组中的节点设备进一步用于,当所述节点设备被失效的组管 理节点设备选取为新的组管理节点设备时,将该失效的组管理节点设备的节点 视图中的节点设备加入到该新的组管理节点设备的相应节点视图中。
全文摘要
本发明公开了一种P2P系统组管理方法及其节点设备和系统,所述P2P系统包括多个节点组,以及由每个节点组中的一个节点组成的分布式哈希表DHT结构的节点管理组;当有节点请求加入P2P系统时,执行步骤请求加入的节点将节点管理组中的一个组管理节点加入自己的消息传播目的节点视图PView;所述一个组管理节点通知自己的组内消息传播目的节点视图APView中的节点;接收到通知的节点根据自己的PView和能力大小,将所述请求加入的节点加入自己的PView或拒绝其加入。采用本发明,可减少系统开销,减少节点过载的发生,实现系统负载均衡,提高系统可靠性。
文档编号H04L12/24GK101465753SQ20071017993
公开日2009年6月24日 申请日期2007年12月19日 优先权日2007年12月19日
发明者周兆民, 张云飞, 李振宇, 段晓东, 谢高岗, 曦 陈, 冰 魏 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1