一种基于集中服务的分布式对等网络的实现方法及系统的制作方法

文档序号:7664642阅读:91来源:国知局
专利名称:一种基于集中服务的分布式对等网络的实现方法及系统的制作方法
技术领域
本发明属于网络与通信技术领域,具体涉及一种基于集中服务的分布式 对等网络的实现方法及系统。
背景技术
随着网络规模的不断扩大,网络用户数量的迅速增长,传统的客户端/服 务器模式面临着过量存储负载、单点失效、网络带宽限制等一些难以解决的 问题。为了解决这些问题,分布式对等网络技术得到了快速发展。对等网络
(P2P-Peer-to-Peer)是一种点对点的分布式网络系统,共享资源分布在各个对 等节点中,资源共享在各对等节点之间直接进行。
在对等网络中,对等节点之间的组织方式在很大程度上决定着对等网络 的性能,对等节点之间的组织方式按照提出的先后分别为(l)采用集中式的 组织方式,资源的发现依赖于目录服务器,以著名的MP3共享软件Napster为 代表;(2)采用随机图的组织方式,对等节点之间结构松散,资源的发现以泛 洪方式进行,以Gnutdla模型为代表;(3)采用某种特定结构的组织方式,如 采用Torus结构的CAN系统,采用Plaxton Tree结构的Tapestry禾BPastry系统,以 及采用Ring结构的Chord系统,资源的发现借助于分布式Hash表(DHT)。采用 特定结构的组织方式使得对等网络的性能大幅度提升,同时也带来了新的亟 待解决的问题为了维护对等节点之间的某种特定结构使得维护开销相当可 观,特别是在大规模和节点加入退出频繁的网络环境下,会造成严重的网络 波动问题。
本发明提出一种基于集中服务的分布式对等网络的构造方法,在对等网 络中引入集中服务器,对等网络采用轮状结构组织方式,对等节点之间采用 环状结构组织方式。集中服务器为节点的加入、退出对等网络提供集中服 务,对等节点可以通过集中服务器査找自己的邻居节点,这样降低了对等节 点之间维护邻居关系的开销,使网络波动得到有效控制,避免了对等节点孤 岛的出现。对等节点之间维护适当数量的邻居关系,这样既减轻了集中服务 器的负担,又能够在一定程度上解决服务器单点失效问题。

发明内容
本发明的目的在于提供一种基于集中服务的分布式对等网络及构造方 法,以解决节点频繁加入、退出对等网络造成的网络波动问题,特别适用于 大规模对等网络,提高对等网络工作效率。
步骤l,为所述对等网络配置一个集中服务器,为服务器定义B+树数据结 构用于存储动态变化的对等节点的信息,节点的信息至少包括节点的唯一身 份标识ID,节点的通信地址IP和建立通信连接的端口Port,节点上次通告集中 服务器存活信息的时间Time,以及节点的存活状态标志Flag。
步骤2,新节点加入对等网络执行以下步骤
2.1新节点向集中服务器发送加入对等网络请求,如果集中服务器不能提 供集中服务,执行2.2,否则,执行以下步骤
2丄1集中服务器在自身维护的B+树结构中査找新节点ID在B+树中的插入 位置,找到后存储新节点信息,并将新节点的ID和存储新节点信息的指针插 入到该位置;
2丄2集中服务器在自身维护的B+树结构中查找新节点的直接邻居的信 息,找到后将直接邻居的信息返回给新节点;
2丄3执行2.3,即新节点与其直接邻居建立邻居关系加入对等网络。
2.2新节点获取当前已加入对等网络的任一对等节点,如果未能获得对等
节点,新节点加入失败返回,否则,执行以下步骤
2.2.1执行步骤3,即从对等节点出发在虚链路中査找新节点的直接邻居; 2.2.2如果找到新节点的直接邻居,执行2.3,即新节点与其直接邻居建立
邻居关系加入对等网络,否则,新节点加入失败返回。
2.3新节点与其直接邻居建立邻居关系加入对等网络,具体步骤如下 2.3.1新节点根据己获得的直接邻居的信息请求与之建立直接邻居关系; 2.3.2直接邻居接收到新节点发出的请求建立直接邻居关系信息后,验证
新节点是否为其直接邻居,如果通过验证,修改邻居信息表中直接邻居的信
息条目,返回建立直接邻居关系成功信息给新节点,否则,新节点加入失败
返回;
2.3.3新节点接收到建立直接邻居关系成功信息后,修改自己邻居信息表 中相应的直接邻居信息条目;
2.3.4重复2.3.1-2.3.3步骤,直到新节点与其直接前驱邻居和直接后继邻居 都建立直接邻居关系;
2.3.5新节点负责向集中服务器通告加入对等网络成功信息。
步骤3,在不提供集中服务的情况下,从对等节点出发在虚链路中查找新
节点的直接邻居,具体步骤如下
3.1将査找出发的对等节点作为当前节点,在当前节点维护的主邻居列表 中査找新节点的直接邻居,如果找到新节点的直接邻居,将新节点的直接邻 居的信息返回给新节点,査找结束返回,否则,继续执行;
3.2执行3.4,即在当前节点的次邻居列表中查找距离新节点最近的已加入 对等网络的对等节点,如果找到,将其作为新的査找出发节点,转到执行 3.1,否则,置当前节点的主邻居列表中距离新节点最近的对等节点为新的査 找出发节点,转到执行3.1;
3.3直到査找跳数(Hops)溢出为止。
3.4在当前节点的次邻居列表中査找距离新节点最近的已加入对等网络的 对等节点,具体步骤如下
3.4.1在当前节点维护的次邻居列表中除去在主邻居列表范围内的节点,
余留节点列表为査找范围;
3.4.2如果新节点ID在査找范围内最小ID和最大ID之间,执行以下步骤
(1) 依折半査找方法査找新节点ID在査找范围的插入位置;
(2) 从新节点插入位置的前后两个节点起按照距离新节点由小至大的顺序 逐个进行连接检测,査找当前已加入对等网络的对等节点;
3.4.3否则,从査找范围的ID最小节点和ID最大节点起由按照距离新节点 由小至大的顺序逐个进行连接检测,查找当前已加入对等网络的对等节点。 步骤4,对等网络内单个节点退出或连续多个节点并发退出,执行以下步
4.1对等网络内退出节点分别向集中服务器和自己维护的邻居信息表的主 邻居列表中的直接邻居发送退出对等网络信息;
4.2收到节点退出信息的集中服务器,如果正常运行,在自己维护的B+树 结构中根据退出节点ID査找到退出节点,并在节点信息中置退出标志;
4.3将收到节点退出信息的对等节点作为边界节点,边界节点在其维护的 主邻居列表的退出节点所在前驱或后继区域中依从上到下的顺序逐个连接检 测节点的存活状态,如果边界节点在其主邻居列表的退出节点所在区域中检 测到存活节点,此节点为边界节点的直接邻居,执行步骤6,即边界节点与其 直接邻居建立直接邻居关系,否则,继续执行;
4.4如果集中服务器不能提供集中服务,执行4.5,否则,执行以下步骤
4.4.1边界节点向集中服务器请求査询其直接邻居;
4.4.2集中服务器在自己维护的B+树结构中査找边界节点的直接邻居,并 将直接邻居信息返回给边界节点;
4.4.3执行步骤6,即边界节点与其直接邻居建立直接邻居关系。 4.5执行步骤7,即在不提供集中服务的情况下,边界节点从自身出发在
虚链路中査找其直接前驱或后继邻居,如果找到其直接邻居,执行步骤6,即 边界节点与其直接邻居建立直接邻居关系,否则,网络环状拓扑断裂返回。
步骤5,对等网络内单个节点失效或连续多个节点并发失效,被动退出对 等网络,执行以下步骤
5.1集中服务器连接检测哪些在时间阈值内没有向其通告存活信息的对等 节点,对于失效节点服务器在自己维护的B+树结构中根据失效节点ID查找到 失效节点,并在节点信息中置失效标志;
5.2对等网络内每个节点周期性连接检测其直接邻居的存活状态,当检测 发现其直接邻居失效,边界节点在其维护的主邻居列表的失效节点所在前驱 或后继区域中依从上到下的顺序逐个连接检测节点的存活状态,如果在主邻 居列表的失效节点所在区域中检测到存活节点,此节点为边界节点的直接邻 居,执行步骤6,即边界节点与其直接邻居建立直接邻居关系,否则,继续执 行;
5.3如果集中服务器不能提供集中服务,执行5.4,否则,执行以下步骤 5.3.1边界节点向集中服务器请求查询其直接邻居;
5.3.2集中服务器在自己维护的B+树结构中査询边界节点的直接邻居,并 将直接邻居信息返回给边界节点;
5.3.3执行步骤6,即边界节点与其直接邻居建立直接邻居关系。 5.4执行步骤7,即在不提供集中服务的情况下,边界节点从自身出发在 虚链路中査找其直接前驱或后继邻居,如果找到其直接邻居,执行步骤6,即 边界节点与其直接邻居建立直接邻居关系,否则,网络环状拓扑断裂返回。
步骤6边界节点与其直接邻居(边界节点)建立直接邻居关系,执行以 下步骤
6.1边界节点根据已获得的直接邻居的信息请求与之建立直接邻居关系; 6.2直接邻居接收到边界节点发出的请求建立直接邻居关系信息后,修改
邻居信息表中相应的直接邻居信息条目,返回建立直接邻居关系成功信息给
边界节点;
6.3边界节点接收到建立直接邻居关系成功信息后,修改自己邻居信息表 中相应的直接邻居信息条目;
6.4边界节点与其直接邻居的主邻居列表的退出节点所在区域中的其余邻 居信息条目从对方学习获得;
6.5边界节点与其直接邻居向自己维护的主邻居列表的无退出节点区域中 的其余邻居节点通告更新的信息条目,这些节点对自己维护的主邻居列表进 行相应修改。
步骤7,在不提供集中服务的情况下,边界节点从自身出发在虚链路中査 找其直接前驱邻居或直接后继邻居,执行以下步骤
7.1边界节点根据连接检测的结果确定査找其直接后继邻居还是直接前驱 邻居,如果查找其直接后继邻居,边界节点从自己出发循逆时针方向査找顺 时针距离自己最近的对等节点,否则,边界节点从自己出发循顺时针方向査 找逆时针距离自己最近的对等节点;
7.2直到找到边界节点的直接邻居或査找跳数(Hops)溢出为止。 一种基于集中服务的分布式对等网络,包括一个集中服务器,集中服务 器用于存储对等节点的信息,对等节点可以通过集中服务器査找自己的邻居 节点。
一种基于集中服务的分布式对等网络,还包括为集中服务器定义B+树数 据结构用于存储动态变化的对等节点的信息,实时记录对等节点当前的存活 状态。
一种基于集中服务的分布式对等网络,还包括对等节点的唯一身份标识
ID为节点的通信地址IP和通信连接端口Port经哈希函数运算得到的值,即对等
节点;d = //^/ (/尸,。
一种基于集中服务的分布式对等网络,还包括对等网络采用轮状结构组 织方式,对等节点之间采用环状结构组织方式,对等节点之间依照节点/Z)大 小组成环状结构。
一种基于集中服务的分布式对等网络,还包括每个对等节点都维护一张 邻居信息表,邻居信息表由集中服务器信息项、主邻居列表和次邻居列表三 部分组成,其中,(i)主邻居列表包括距离该节点最近的对等节点的信息条
目,推荐值是距离自己最近的3个前驱和3个后继,周期检测确保这些节点存 活;(2)次邻居列表包括由节点的加入和退出导致从主邻居列表中调整过来的 节点信息条目,无须检测这些节点存活与否。
本发明的优点在于(1)在对等网络中引入集中服务器,集中服务器为节 点的加入和退出对等网络提供集中服务,对等节点可以通过集中服务器査找 自己的邻居节点,这样降低了对等节点之间维护邻居关系的开销,使网络波 动得到有效控制,避免了对等节点孤岛的出现;(2)为服务器定义B+树数据结 构,B+树是动态的多路平衡査找树,非常适合用于存储动态变化节点的信 息;(3)对等节点之间维护适当数量的邻居关系,这样既减轻了集中服务器的 负担,又能够在一定程度上解决服务器单点失效问题。


图l是本发明中对等网络维护的轮(Wheel)状拓扑结构的示意图2是本发明中为集中服务器所定义的用来存储对等节点信息的B+树数据
结构的示意图3是本发明中对等节点维护的邻居信息表的示意图4是本发明中对等节点维护的邻居信息表的具体示例图5是本发明中新节点加入对等网络的流程图6是本发明中新节点与其直接邻居建立直接邻居关系的流程图; 图7是本发明中从对等节点出发在虚链路中查找新节点直接邻居的流程
图8是本发明中对等节点主动退出对等网络的流程图; 图9是本发明中两个边界节点建立直接邻居关系的流程图; 图IO是本发明中边界节点从自身出发在虚链路中査找其直接前驱或后继 邻居的流程图11是本发明中对等节点失效被动退出对等网络的流程图。
具体实施例方式
有关本发明的技术内容及详细说明,现配合

如下 图l为本发明的对等网络系统的轮状拓扑结构图。本发明的一种基于集中 服务的分布式对等网络系统包含对等节点和集中服务器。为降低新节点频繁 加入和对等节点频繁退出对等网络造成的网络波动,进一步提高对等网络工 作效率,本发明所述对等网络采用轮状拓扑结构。集中服务器位于轮状拓扑 中心,为节点的加入和退出提供集中服务。对等节点之间按照节点ID组成环
状拓扑结构,该结构有自组织能力,可独立完成节点的加入和退出工作。为
服务器定义B+树数据结构用于存储动态变化的对等节点的信息,节点的信息 至少包括节点的唯一身份标识ID,节点的通信地址IP和建立通信连接的端口 Port,节点上次通告集中服务器存活信息的时间,以及节点的存活状态标志。
在所述对等网络中节点的唯一身份标识ID为节点的通信地址IP和通信连
接端口经哈希函数(如SHA , MD5等)运算得到的值,即节点 7D = ifo我/尸,户or/)。
图2为本发明的集中服务器用来存储对等节点信息的B+树数据结构图。数 据结构B+树是动态的多路平衡査找树,非常适合用于存储动态变化节点的信 息。 一棵附阶B+树,或为空树,或为满足下列特征的w叉树.-
(1) 树中每一个非叶结点最多有m棵子树;
(2) 如果根结点不是叶结点,则根结点至少有2棵子树;
(3) 除根结点外的所有非叶结点至少有「m/2]棵子树;
(4) 所有的非叶结点中包含下列信息数据(",4^,,4,A^2,…人,A),其 中《(/ = 1,2,...,")为关键字,且K, <《,+1(/ = 1,2,...,"-1), 4(/-0,1,...,")为指向子树
根结点的指针,且指针4—,所指子树中所有的关键字均小于《("1,2,...^), 4
所指子树中所有结点的关键字均大于《 ,"为关键字的个数;
(5) 所有的叶结点都处于同一层次上,包含了全部关键字及指向相应数据 对象存放地址的指针,且叶结点本身依关键字从小到大顺序链接。
B+树中査找关键字方法在B+树中有两个入口指针,分别是指向B+树的 根结点的指针和指向关键字最小的叶结点的指针,査找关键字可以从指向关 键字最小的叶结点的指针开始循叶结点链顺序査找,也可以从指向B+树的根 结点的指针开始,自顶向下,直至叶结点。
B+树中结点的插入方法首先在B+树中査找待插入关键字的插入位置, 然后从B+的叶结点开始进行插入,每插入一个关键字-指针索引项后要判断结 点中的子树棵数是否超出范围,若子树棵数超出范围,需要将结点分裂为两 个结点,并且它们的双亲结点中应同时包含这两个结点的最小关键字和结点 地址,此后,继续向上重复此过程,直到结点的子树棵数未超出范围。
B+树中结点的删除方法首先在B+树中查找待删除关键字所在的叶结 点,然后从B+的叶结点开始进行删除,每删除一个关键字-指针索引项后要判 断结点中的子树棵数是否小于下限,若子树棵数小于下限,需要将结点进行 调整或合并,此后,继续向上重复此过程,直到结点的子树棵数不小于下 限。
在本发明中,集中服务器随新节点加入和对等节点退出对等网络而动态
维护B+树数据结构。在集中服务器维护的B+树结构中,关键字--指针索引项分 别为对等节点ID--指向相应对等节点信息存放地址的指针。
B+树的阶数m和每个叶结点可容纳关键字-指针索引的最大容量可视对等 网络的规模等因素确定,在本具体实施例中均为28。
集中服务器为了在B+树中快速检索到某一节点的直接邻居,在本发明 中,叶结点本身依关键字从小到大顺序链接成环,并且依关键字从大到小顺 序链接成环,这样叶结点构成双向循环链接。
当新节点加入对等网络,集中服务器在自己维护的B+树结构中査找新节 点ID的插入位置,将新节点ID和指向新节点信息存放地址的指针插入到该位 置;当对等节点退出对等网络,集中服务器在自己维护的B+树结构中查找退 出节点ID的所在位置,修改退出节点信息结构的存活状态标志值或从B+树结
构中删除退出节点;当査找对等节点的直接邻居,集中服务器在自己维护的 B+树结构中査找该节点ID的所在位置,从所在位置起在叶节点内或叶结点之 间查找该节点的直接邻居。为集中服务器所定义的B+树数据结构可以高效地 处理动态变化的对等节点信息,为新节点加入对等网络和对等节点退出提供 集中服务。
图3为本发明对等节点维护的邻居信息表的结构。在本发明中,加入对等 网络中的每个节点都会维护一张邻居信息表,邻居信息表中存储邻居节点信 息,节点信息主要包括节点的唯一身份标识ID,节点的通信地址IP和建立通
信连接的端口,节点上次通告集中服务器存活信息的时间,以及节点的存活 状态标志。邻居信息表由集中服务器信息项、主邻居列表和次邻居列表三部 分组成,其中,(1)主邻居列表是指当前必须维护的该节点的第l、 2、 3个前 驱和第l、 2、 3个后继节点信息条目,共计六条,节点周期检测主邻居列表中
节点的存活状态,确保这些节点存活;(2)次邻居列表是指由节点的加入和退 出导致从主邻居列表中调整过来的节点信息条目。
图4为本发明实施例的对等节点维护的邻居信息表结构示例图。节点的主 邻居列表分为前驱邻居列表和后继邻居列表,前驱邻居列表中节点信息按照 从下至上节点ID顺时针有序排列,后继邻居列表中节点信息按照从上至下节 点ID顺时针有序排列。
图5为本发明的新节点加入对等网络的流程图。首先,新节点向集中服务 器发送加入对等网络请求(步骤S101),集中服务器判断是否能够提供集中 服务(步骤S102),如果集中服务器能够提供集中服务,则集中服务器在自 身维护的B+树结构中査找新节点ID在B+树中的插入位置,找到后存储新节点 信息,并将新节点的ID和存储新节点信息的指针插入到该位置(步骤 S103);然后,集中服务器在自身维护的B+树结构中査找新节点的直接邻居 信息,找到后将直接邻居的信息返回给新节点(步骤S104)。
如果集中服务器不能提供集中服务,则判断新节点是否能获取当前已加 入对等网络的任一对等节点(步骤S105),如果能够获得对等节点,则从对 等节点出发在对等网络中通过虚链路在限定跳数内査询新节点的直接邻居节 点,找到后将直接邻居的信息返回给新节点(步骤S106),如果没有找到直 接邻居节点或步骤105的判断结果为不能获取当前已加入对等网络的任一对等 节点,则新节点加入对等网络失败(歩骤S107)。
在步骤104及106将直接邻居的信息返回给新节点后,新节点与其直接邻 居建立直接邻居关系,新节点加入对等网络成功(步骤S108)。
新节点加入对等网络有两种可选方式 一是新节点通过集中服务器査找 获得其直接邻居信息,与其直接邻居建立直接邻居关系加入对等网络;另一 种是新节点从对等网络内任一对等节点出发,通过虚链路在限定跳数内查询 获得其直接邻居信息,与直接邻居建立直接邻居关系加入对等网络,并通告 集中服务器加入成功信息。
如果集中服务器正常运行并且连接不繁忙,新节点首选通过集中服务器 査找获得其直接邻居加入对等网络,否则,新节点从对等网络内任一对等节 点出发査询获得其直接邻居加入对等网络。
新节点获取当前已加入对等网络的任一对等节点的方法有(1)通过用户 配置获得当前已加入对等网络的对等节点;(2)新节点在自身维护的以前记录 的邻居列表中按照距离自己由近及远的顺序对节点逐个进行连接检测,获得 当前已加入对等网络的对等节点。
在新节点加入对等网络的两种方式中,通过集中服务器加入对等网络造 成的网络波动很小,缺点是增加了集中服务器的负担,而通过对等节点在虚 链路中査询其直接邻居加入对等网络会造成一定网络波动,优点是减轻了集 中服务器的负担,在本发明中,新节点加入对等网络的两种方式融合在一 起,既降低了新节点加入对等网络造成的网络波动又减轻了集中服务器的负 担。
图6为本发明中新节点与其直接邻居建立直接邻居关系的流程图。步骤
S108进一步包含首先,新节点根据己获得的直接邻居的信息向直接邻居节 点发出与之建立直接邻居关系的请求(步骤S201)。直接邻居节点接收到请 求后,验证新节点是否为其直接邻居(步骤S202),如果通过验证,修改邻 居信息表中直接邻居的信息条目,并返回建立直接邻居关系成功信息给新节 点(步骤S203);否则,返回建立直接邻居关系失败信息给新节点(步骤 S204)。然后,判断新节点与其直接前驱邻居和直接后继邻居是否都建立了
直接邻居关系(步骤S205),如果没有,则返回步骤201;如果已经都建立的 直接邻居关系,则新节点负责向集中服务器通告加入对等网络成功信息(步
骤S206)。
在新节点与其直接邻居建立直接邻居关系步骤中,直接邻居需要验证新 节点是否为其直接邻居,在此给出检测算法来验证节点ID x是否为节点ID "和 6的顺时针直接邻居,算法详细介绍如下
设有"个对等节点,对等节点之间拓扑关系为<",6>,其中,6=(a+0% w, a=0, 7,…,w-/, hMin[y—/,…,w &节点(x+力% "是存活的}。
检测直接邻居算法(a, b, x) 如果a小于b
如果x大于a并且x小于b,返回x是节点a和b的直接邻居 否则,返回x非节点a和b的直接邻居 如果a大于b
如果x大于b并且x小于a,返回x非节点a和b的直接邻居 否则,返回x是节点a和b的直接邻居 图7为本发明中从对等节点出发在虚链路中査找新节点的直接邻居节点的 流程图。步骤S106进一步包含首先,将査找出的对等节点作为当前节点, 在当前节点维护的主邻居列表中査找新节点的直接邻居节点(步骤S301), 如果找到新节点的直接邻居节点,将新节点的直接邻居的信息返回给新节 点,查找结束返回(步骤S302);否则,在当前节点的次邻居列表中查找距 离新节点最近的已加入对等网络的对等节点(步骤S303),如果找到,将其 作为新的査找出发节点,否则,置当前节点的主邻居列表中距离新节点最近 的对等节点为新的查找出发节点。然后,判断查找跳数(hops)是否溢出, 如果没有溢出,返回步骤301,否则,返回査找新节点的直接邻居失败。在步骤S301中,需要在对等节点的主邻居列表中查找新节点的直接邻
居,可调用上述"检测直接邻居算法(",6, x)"完成,将节点IDa和6代换为对 等节点主邻居列表中顺时针有序的两个节点ID, x代换为新节点ID。
步骤S303进一步包含首先,在当前节点维护的次邻居列表中除去在主 邻居列表范围内的节点,余留节点列表为査找范围(步骤S303A);然后,如 果新节点ID在査找范围内最小ID和最大ID之间,依折半査找方法査找新节点 ID在査找范围的插入位置,接着从新节点插入位置的前后两个节点起按照距 离新节点由小至大的顺序逐个进行连接检测,査找当前已加入对等网络的对 等节点(步骤S303B),否则,从査找范围的ID最小节点和ID最大节点起由 按照距离新节点由小至大的顺序逐个进行连接检测,查找当前己加入对等网 络的对等节点(步骤S303C)。
在步骤S303B和步骤S303C中需要计算两个对等节点之间的最短距离,在 此给出有"个节点的对等网中,计算对等节点/和乂之间的最短距离算法,详细 介绍如下
计算两个节点间最短距离算法(z', _/', n)
/到j'的顺时针距离为《=- / + ")%"
/到y的逆时针距离为^ = (/ - _/+")%"
/到J'的最短距离为c^min(《,《) 图8给出了本发明中对等节点主动退出对等网络的流程图。首先,对等网 络内退出节点分别向集中服务器和自己维护的邻居信息表的主邻居列表中的 直接邻居发送退出对等网络信息(步骤S401)。其次,收到节点退出信息的 集中服务器,如果正常运行,在自己维护的B+树结构中根据退出节点ID査找 到退出节点,并在节点信息中置退出标志(步骤S402)。最后,边界节点 (收到直接邻居节点退出信息的对等节点)在其维护的主邻居列表的退出节 点所在前驱或后继区域中依从上到下的顺序逐个连接检测节点的存活状态
(步骤S403),如果边界节点在其主邻居列表的退出节点所在区域中检测到 存活节点(此节点为边界节点的直接邻居),边界节点与其直接邻居建立直
接邻居关系(步骤S404);否则,如果集中服务器能提供集中服务,通过集 中服务器査找边界节点的直接邻居(步骤S405),边界节点执行步骤S404, 否则,边界节点从自身出发在虚链路中査找其直接前驱或后继邻居(步骤 S406),如果找到,边界节点执行步骤S404,否则,网络环状拓扑断裂返回。
步骤S405进一步包含边界节点向集中服务器请求查询其直接邻居(步 骤S405A)。集中服务器在自己维护的B+树结构中査找边界节点的直接邻居, 并将直接邻居信息返回给边界节点(步骤S405B)。
图9是本发明中两个边界节点建立直接邻居关系的流程图。步骤S404进一 步包含首先,边界节点g在获得边界节点i 的信息后,请求与i 建立直接邻 居关系(步骤S501)。其次,7 接收到g发出的请求建立直接邻居关系信息 后,修改自己邻居信息表中相应的直接邻居信息条目,并将建立直接邻居关 系成功信息发送给^ (步骤S502)。最后,Q接收到建立直接邻居关系成功信 息后,修改自己邻居信息表中相应的直接邻居信息条目(步骤S503)。
图IO是本发明中边界节点从自身出发在虚链路中査找其直接前驱或后继 邻居的流程图。步骤S406进一步包含边界节点根据连接检测的结果确定查 找其直接后继邻居还是直接前驱邻居(步骤S601),如果査找其直接后继邻 居,边界节点从自己出发循逆时针方向査找其直接后继邻居(步骤S602), 否则,边界节点从自己出发循顺时针方向查找其直接前驱邻居(步骤 S603)。
步骤S602进一步细化为首先,边界节点从自己出发循逆时针方向査找 顺时针距离自己最近的对等节点(步骤S602A)。然后,将査找到的对等节点 作为当前节点(步骤S602B)。最后,如果当前节点是边界节点的直接后继,
査找成功返回(步骤S602C),否则,判断是否在査找限定跳数(hops)内, 如果在査找限定跳数(hops)内,从当前节点出发,循逆时针方向査找顺时 针距离边界节点最近的对等节点(步骤S602D),返回步骤S602B,否则,査
找失败。
步骤S603进一步细化为首先,边界节点从自己出发循顺时针方向查找 逆时针距离自己最近的对等节点(步骤S603A)。然后,将査找到的对等节点 作为当前节点(步骤S603B)。最后,如果当前节点是边界节点的直接前驱, 査找成功返回(步骤S603C),否则,判断是否在查找限定跳数(hops)内, 如果在査找限定跳数(hops)内,从当前节点出发,循顺时针方向查找逆时 针距离边界节点最近的对等节点(步骤S603D),返回步骤S603B,否则,查 找失败。
图ll是本发明中对等节点失效被动退出对等网络的主要流程。对等节点 周期性连接检测邻居节点的存活状态(步骤S701),当检测发现其邻居节点 失效,边界节点在其维护的主邻居列表的失效节点所在前驱或后继区域中依 从上到下的顺序逐个连接检测节点的存活状态(步骤S702),如果在主邻居 列表的失效节点所在区域中检测到存活节点,此节点为边界节点的直接邻 居,边界节点与其直接邻居建立直接邻居关系(步骤S404);否则,如果集 中服务器能提供集中服务,通过集中服务器査找边界节点的直接邻居(步骤 S405),边界节点执行步骤S404,否则,边界节点从自身出发在虚链路中査 找其直接前驱或后继邻居(步骤S406),如果找到,边界节点执行步骤 S404,否则,网络环状拓扑断裂返回。
以上对本发明的技术方案和有益效果作了进一步详细说明。本发明可以 有多种变形方案实现,凡在本发明的精神和原则之内,所作的任何修改、参 数替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于集中服务的分布式对等网络系统,包含对等节点,其特征在于,还包含存储对等节点的信息,对等节点通过它来查找自己的邻居节点的集中服务器;集中服务器内含有用于存储动态变化的对等节点的信息,实时记录对等节点当前的存活状态的B+树数据结构体;对等节点的唯一身份标识ID为节点的通信地址IP和通信连接端口Port经哈希函数运算得到的值,对等节点ID=Hash(IP,Port)。
2、 根据权利要求l所述的一种基于集中服务的分布式对等网络系统,其 特征在于,对等网络采用轮状结构组织方式,对等节点之间采用环状结构组 织方式,对等节点之间依照节点/D大小组成环状结构。
3、 根据权利要求l所述的一种基于集中服务的分布式对等网络系统,其 特征在于,对等节点还有邻居信息表,邻居信息表由集中服务器信息项、主 邻居列表和次邻居列表三部分组成,其中,(1)主邻居列表包括距离该节点最 近的对等节点的信息条目,推荐值是距离自己最近的3个前驱和3个后继,周 期检测确保这些节点存活;(2)次邻居列表包括由节点的加入和退出导致从主 邻居列表中调整过来的节点信息条目,无须检测这些节点存活与否。
4、 一种基于集中服务的分布式对等网络的实现方法,新节点加入对等网 络,其特征在于,包含以下步骤步骤l:新节点向集中服务其发送加入对等网络请求;步骤2:如果集中服务器可以提供集中服务,集中服务器记录新节点信 息,在自身维护的B+树结构中査找新节点的直接邻居信息,将新节点的直接 邻居信息返回给新节点;步骤3:否则,新节点从对等网络内一个对等节点出发,通过虚链路在限 定跳数内査询获得直接邻居信息; 步骤4:新节点与其直接邻居建立直接邻居关系加入对等网络,并通告集 中服务器加入成功消息。
5、 根据权利要求4所述的实现方法,其特征在于,从对等节点出发在虚 链路中查找新节点的直接邻居的步骤如下(1) 对等节点在自己维护的主邻居列表中查找新节点的直接邻居;(2) 如果找到新节点的直接邻居,返回直接邻居的信息给新节点;(3) 否则,在对等节点维护的邻居信息表中查找距离新节点ID最近的当前 已加入对等网络的对等节点,将此节点作为新的查找出发节点;(4) 重复此过程,直到找到新节点的直接邻居或查找跳数(Hops)溢出为止。
6、 根据权利要求4所述的实现方法,其特征在于,验证节点IDx是否为节 点ID a和6的顺时针直接邻居算法如下设有w个对等节点,对等节点之间拓扑关系为<",6>,其中,6 m a=0, /,…,w-7, /t=Min[y [y=7,…,w &节点(x+力% "是存活的}。如果a小于Z),若x大于a并且x小于6,返回x是节点a和6的直接邻居,否则 返回x非节点a和6的直接邻居;如果"大于6,若x大于6并且:c小于a,返回x非节 点"和6的直接邻居,否则返回x是节点a和6的直接邻居。
7、 根据权利要求4所述的实现方法,其特征在于,在"个节点的所述对等 网中,计算对等节点/和/之间的最短距离算法如下/到y的顺时针距离为《=(7-/ + ")%" , /到J'的逆时针距离为 ^ = (/"' + ")%",得/到y的最短距离为d = min(《,^)。
8、 根据权利要求4所述的实现方法,其特征在于,新节点与其直接邻居 建立直接邻居关系的步骤如下(1)新节点请求与其直接邻居建立直接邻居关系; (2)新节点的直接邻居验证新节点是否为其直接邻居,如果未通过验证,新节点加入失败返回;C3)否则,新节点的直接邻居修改其邻居信息表中相应的直接邻居的信息 条目,返回建立直接邻居关系成功信息给新节点;(4)新节点接收到建立直接邻居关系成功信息后,修改自己邻居信息表中 相应的直接邻居信息条目。
9、 一种基于集中服务的分布式对等网络的实现方法,对等节点主动退出 对等网络,其特征在于,包含步骤如下步骤l:对等网络内退出节点分别向集中服务器和其直接邻居发送退出信息;步骤2:接收到其前驱或后继直接邻居退出信息的边界节点逐个连接检测其主邻居列表中退出节点所在区域内其他节点的存活状态;步骤3:如果边界节点直接连接检测到自己新的前驱或后继直接邻居,与 其前驱或后继直接邻居建立直接邻居关系;步骤4:否则,边界节点需要从集中服务器处查找获得自己新的前驱或后继直接邻居或者从自己出发在虚链路中查找其前驱或后继直接邻居,与其前 驱或后继直接邻居建立直接邻居关系。
10、 一种基于集中服务的分布式对等网络的实现方法,对等节点失效被动退出对等网络,其特征在于包含步骤如下步骤l:对等节点周期性连接检测邻居节点的存活状态;步骤2:检测到其邻居节点失效的边界节点逐个连接检测其主邻居列表中退出节点所在区域内其他节点的存活状态;步骤3:如果边界节点直接连接检测到自己新的前驱或后继直接邻居,与 其前驱或后继直接邻居建立直接邻居关系; 步骤4:否则,边界节点需要从集中服务器处査找获得自己新的前驱或后 继直接邻居或者从自己出发在虚链路中査找其前驱或后继直接邻居,与其前 驱或后继直接邻居建立直接邻居关系。
11、 根据权利要求10所述的实现方法,其特征在于边界节点从自己出发 在虚链路中査找其前驱或后继直接邻居的步骤如下步骤l:如果査找直接后继邻居,边界节点从自己出发循逆时针方向査找 顺时针距离自己最近的对等节点;步骤2:否则,边界节点从自己出发循顺时针方向查找逆时针距离自己最 近的对等节点;步骤3:直到找到边界节点的直接邻居或查找跳数溢出为止。
12、 根据权利要求10所述的实现方法,其特征在于边界节点从自己出发 在虚链路中查找其前驱或后继直接邻居的步骤如下步骤l:如果査找直接后继邻居,边界节点从自己出发循逆时针方向査找 顺时针距离自己最近的对等节点;步骤2:否则,边界节点从自己出发循顺时针方向查找逆时针距离自己最 近的对等节点;步骤3:直到找到边界节点的直接邻居或查找跳数溢出为止。
全文摘要
一种基于集中服务的分布式对等网络及构造方法,该方法包括(1)为对等网络配置一个集中服务器,该服务器用来为新节点加入对等网络以及对等网络中的节点退出提供服务,并为服务器定义B<sup>+</sup>树的数据结构用于存储动态变化节点的信息;(2)新节点经集中服务器查找其直接邻居或从对等节点出发在虚链路中查找其直接邻居,加入对等网络;(3)边界节点(其前驱或后继直接邻居退出的对等节点)经集中服务器查找其直接前驱或后继邻居,或从该节点出发在虚链路中查找其直接前驱或后继邻居,使得对等节点之间维持环状拓扑。本发明将集中服务融合在分布式对等网络中,明显降低了因节点的频繁加入和退出造成的网络波动,显著提高了对等网络的工作效率。
文档编号H04L12/42GK101179466SQ20071017587
公开日2008年5月14日 申请日期2007年10月15日 优先权日2007年10月15日
发明者明 万, 吴恒奎, 飞 宋, 张宇翔, 张宏科, 冬 杨, 秦雅娟, 罗洪斌 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1