会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 对等网络 / 对等网络中全局节点维护方法

对等网络中全局节点维护方法

申请号 CN200610011472.2 申请日 2006-03-10 公开(公告)号 CN100386998C 公开(公告)日 2008-05-07
申请人 清华大学; 发明人 徐恪; 崔勇; 孙睿; 王海洋;
摘要 本发明属于对等网络的全局拓扑维护技术领域,其特征在于,首先为对等网络配置一个控制服务器,以管理全局节点的状态,完成节点的加入、退出、更新和检测以及与各客户机的通讯,相应定义一个动态的存储节点信息的数据结构;其次,按IP地址C段将该对等网络分为各分区,并为其建立一个唯一可比较的标识符以及按标识符降序排序的节点列表,还要把C段首地址作为该标识符,建立一个首地址列表,按IP地址顺序排列;再用折半搜索法查找首地址列表,完成节点的加入、退出、更新,并为其维护一个邻居节点列表;然后再按设定的阈值根据上次发送保持激活消息的时间来判断节点的失效,并据此进行周期检测。本发明在保证并优化节点间传输性能的同时,也避免了网络中形成局部孤岛。
权利要求

1.对等网络中全局节点的维护方法,其特征在于,在所述对等网络中该方法依次含有以下步骤: 步骤1.为所述对等网络配置一台控制服务器,由该服务器管理全局节点的状态,完成节点的加入、退出、更新和检测,以及与客户机通过网络协议通讯,相应地,在该控制服务器和客户机上各定义一个动态的存储节点信息的数据结构,每个节点的信息至少包含该服务器为节点分配的全局唯一的ID标识符、节点地址IP、节点是否处于地址转换设备所管理的网络中以及节点上次发送保持激活消息的时间,所叙述地址转换设备指的是允许多台主机同时共享少数IP地址来进行网络访问的设备; 步骤2.把全网所有的节点按其IP地址的C段进行分区,并设置唯一的许可比较的ID标识符,把同一个IP地址C段的节点信息存储在一个变长的节点信息表中,按ID标识符降序排列,再把所有的这些IP地址C段数组的首地址作为所述ID标识符保存在一张区域信息表中,按照节点的IP地址信息顺序排列,在区域信息表中,包含分区的唯一标识符以及一个指向节点信息表首地址的指针; 步骤3.当有一个新节点向所述控制服务器提出申请加入对等网络时,依次按以下步骤执行: 步骤3.1.根据当前新节点的IP地址的分段为该新节点分配一个区域,并根据所述该区域ID的分布,为新节点产生一个ID标识符; 步骤3.2.根据新来节点的IP地址信息,该控制服务器使用折半搜索法对区域信息表进行搜索,以发现新节点所在区域是否有节点已经加入到当前的对等网络中,所述折半搜索法依次含有以下步骤: 步骤3.2.1.选择数组中的起始位置和结束位置作为折半搜索当前的搜索范围; 步骤3.2.2.进入折半搜索的循环,首先,判断起始位置和结束位置相差是否小于等于1,如果小于等于1,则表示没有搜索到需要的值,搜索失败返回空值,否则,继续执行以下步骤; 步骤3.2.3.根据当前的搜索范围,利用起始位置与结束位置之和的一半,求出中间位置的节点,获取该节点的指针; 步骤3.2.4.比较该中间位置节点的值与要搜索值的大小,如果两者相等,表示搜索成功,返回该中间位置节点的位置,否则,继续执行以下步骤; 步骤3.2.5.如果搜索值比中间位置节点的值大,则将当前搜索范围的起始位置作为新的起始位置,将当前的中间位置作为搜索范围的新的结束位置,返回到步骤3.2.2继续执行; 步骤3.2.6.如果搜索值比中间位置节点的值小,则将当前的中间位置作为新的起始位置,将当前搜索范围的结束位置作为搜索范围的新的结束位置,返回到步骤3.2.2继续执行; 步骤3.3.若新节点所在区域已经有节点加入到当前的对等网络中,则按以下步骤获取候选节点列表,并把该候选节点列表发送给客户机作为将来预提供给客户机的候选邻居节点,该控制服务器把新节点按ID标识符降序依次插入到该区域的节点数组中; 步骤3.3.1.该控制服务器根据当前节点信息表的首地址,遍历该数组中的每一个元素,中止条件为数组总元素个数或者预设的候选邻居节点数,并判断当前遍历到的节点是否失效,判断准则是被遍历到的节点的上次发送有效激活消息的时间是否超过3倍的预先设定的值,如果遍历到失效节点,则删除节点信息表中的对应项,否则,执行下一步骤; 步骤3.3.2.判断当前节点是否处于地址转换设备所管理的网络中,若结果为”是”,则删去步骤3.3.1中那些不存在内网的有效节点;若为”否”,则删去步骤3.3.1中那些在地址转换设备所管理的网络中的有效节点; 步骤3.3.3.把步骤3.3.2得到的各个节点加入到候选节点列表中,一直到满足步骤3.3.1中所述的中止条件为止; 步骤3.3.4.若步骤3.3.3中得到的候选节点不满足设定的候选邻居节点数,则随机选择IP地址的一个C段的节点信息表,继续按照步骤3.3.1~步骤3.3.3进行候选节点搜索,若在所述节点信息表内还没有满足设定的候选节点总数,则按照在所述区域信息表中的IP地址的顺序,继续在相邻的下一个IP地址C段区域的节点信息表中搜索,一直到满足设定的候选节点总数或者搜索完全网所有节点为止; 步骤3.4.若步骤3.2中没有发现已经加入到当前对等网络中的节点,则随机选择一个节点信息表,按照步骤3.3.1~3.3.4进行,以获取候选节点列表,并发送给客户机作为其候选邻居节点,该控制服务器创建该分区的一个新节点数组,并把该节点加入该数组,然后把该数组首地址按照IP降序放入到IP分区数组中; 步骤4.若客户机发送保持激活消息,请求节点更新时,则该控制服务器依次按照以下步骤执行: 步骤4.1.该控制服务器使用步骤3.2所述的折半搜索法对区域信息表进行搜索,获取所述要被更新节点所在IP地址C段的节点信息表的首地址,若找到所选首地址,则执行下一步骤,否则,提示操作失败,执行步骤5; 步骤4.2.根据步骤4.1得到的首地址,在节点信息表中,以所选节点ID作为基准,在节点信息表中利用步骤3.2中所述的折半搜索法查找该节点,若找到所述节点,则修改节点信息中的数据,改变上次修改时间为该控制服务器当前时间,若未找到该节点,则提示操作失败,继续执行步骤5; 步骤5.当客户机发出退出消息,该控制服务器便按照以下步骤依次进行: 步骤5.1.使用步骤3.2中所述的折半搜索法查找区域信息表,获取该节点所在IP地址的C段的节点信息表首地址,若找到该首地址便执行下一步,否则,提示操作失败,执行步骤6; 步骤5.2.根据获取到的首地址,以该控制服务器在节点信息表中以该客户机所在节点的ID作为搜索关键字,在节点信息表中使用步骤3.2所述的折半搜索法查找该节点,若找到该节点,便删除节点信息表中的数据,把其后的节点前移,并判断节点信息表是否已经为空,若已经为空,则删除区域信息表中的对应项,若不为空,则提示删除信息成功继续执行步骤6,若未找到该节点,则提示操作失败,继续执行步骤6; 步骤6.当控制服务器需要周期检测IP地址某个C段的节点信息表中的节点是否失效时,则按如下步骤依次进行: 步骤6.1.根据输入控制服务器中需要检测的节点信息表首地址,遍历该信息表中的所有元素; 步骤6.2.首先,根据上次更新的时间按设定的阈值,判断当前节点是否失效,若失效,则删除该节点信息,并把后面的节点前移,否则,继续判断下个节点; 步骤6.3.判断是否已经到数组的最后一个节点,若已经到了,则退出循环,否则,继续循环判断; 步骤6.4.判断该节点信息表经过失效节点清除之后是否为空,如果为空,则将该节点信息表释放,并删除区域信息表中的对应项,后面数据项前移,退出主程序,否则,继续步骤6所述的周期性检查。

2.根据权利要求1所述的对等网络中全局节点的维护方法,其特征在于,针对IPv6 而言,区域信息表中的区域标识符为节点的IPv6地址和一个128位值按位相与的结果值, 该128位值的特点是,前120位为1,后8位为0,即:OxfffiffimiDO。

说明书全文

对等网络中全局节点维护方法

技术领域

对等网络中全局节点维护方法属于对等网络的全局拓扑维护技术领域。 背聚技术
对等网络是基于点对点的网络传输模式,从而完全突破了传统的客户机/服务器模式的 缺陷,并具有可扩展性强、低成本、灵活方便的特点。在对等网络中,每个中继节点都将 既作为客户机又作为服务器存在,这样整个网络的传输性能在很大的程度上取决于网络的 拓扑形状,以及为每个节点预先提供的邻居节点的服务质量。
在对等网络中,通常按照两个拓扑结构组织组成员, 一个是控制拓扑,另一个是数据 拓扑,控制拓扑主要用来维护全局的节点状态和网络拓扑形状。根据构造控制拓扑和数据 拓扑的顺序,可以将应用层组播协议分成3类:基于网状的策略,基于树的策略和基于隐 含组播转发拓扑结构的策略。
传统的全局节点维护方法有两种方案, 一种为简单的由客户机不断检测邻居节点,从 而导致拓扑结构持续变化,该方法的主要问题在于客户机持续不断的检测,导致了网络上 控制数据流i的迅猛增大,另外,客户机搜索邻居节点时完全不考虑节点之间的物理位置 的关系;另外一种维护方法是由超级节点(相当于我们的控制服务器)完全维护拓扑结构, 将来形成的拓扑结构也是由超级节点来管理,这种方式问题在于超级节点将会成为网络中 的单一失效点, 一旦失去超级节点,则网络就会立即崩溃。
本发明采用IP相似的候选节点列表搜索算法,为每一个新来的节点提供其物理地域附 近的节点作为其邻居节点,这样可以保证他们之间的数据交互的性能,从而维护了一个全 局拓扑数据传输性能更好的控制拓扑维护方案,并且提供了更好的可扩展性,为引入节点 的激励机制提供了良好的扩展方式。本发明有效的降低了网络中控制数据的流量,从而降 低了网络负担,并且考虑节点之间物理位置的关系,使得位于同一物理区域的节点能够形 成一个比较独立的数据流区域,仅由少量的边界节点与邻居区域交互,另外,我们的控制 服务器仅负责记录节点状态,并不维护具体的网络拓扑,因此,降低了控制服务器单一失 效点的影响,如附图10所示,为本发明运行若干时间后产生的逻辑拓扑图。

发明内容

本发明的目的在于提供一种对等网络中全局节点维护更好的解决方案。 本发期的特征在于.在所述对等网络中该方法依次含有以下步骤:
步骤:1.为所述对等网络配置一台控制服务器,由该服务器管理全局节点的状态,完成
节点的加入、退出、更新和检测,以及与客户机通过网络协议通讯,相应地,在该控制服务 器和客户机上各定义一 个动态的存储节点信息的数据结构,每个节点的信息至少包含该服务 器为节点分配的全局唯一的ID标识符、节点地址IP、节点是否处于地址转换设备所管理的 网络中以及节点上次发送保持激活消息的时间(所叙述地址转换设备指的是允许多台主机同 时共享少数IP地址来进行网络访问的设备);
步,2.把全网所有的节点按其IP地址的C段进行分区,并设置唯一的许可比较的ID 标识符,把同一个IP地址C段的节点信息存储在一个变长的节点信息表中,按ID标识符降 序排列,再把所有的这些IP地址C段数组的首地址作为所述ID标识符保存在一张区域信息 表中,按照节点的IP地址信息顺序排列,在区域信息表中,包含分区的唯一标识符以及一 个指向节点信息表首地址的指针;
步驟3.当有一个新节点向所述控制服务器提出申请加入对等网络时,依次按以下歩骤 执行-
步»3.1.根据当前新节点的IP地址的分段为该新节点分配一个区域,并根据所述该区 域ID的分布,为新节点产生一个ID标识符;
步翻3丄根据新来节点的IP地址信息,该控制服务器使用折半搜索法对区域信息表进 行搜索,以发现新节点所在区域是否有节点已经加入到当前的对等网络中,所述折半搜索法 依次含有以下步骤:
步籌3.2.1.选择数组中的起始位置和结束位置作为折半搜索当前的搜索范围: 步il3.21进入折半搜索的循环,首先,判断起始位置和结束位置相差是否小于等于1, 如果小于等于l,则表示没有搜索到需要的值,搜索失败返回空值,否则,继续执行以下步
骤;
步據3.23.根据当前的搜索范围,利用起始位置与结束位置之和的一半,求出中间位置 的节点,获取该节点的指针-,
步翱3丄4.比较该中间位置节点的值与要搜索值的大小,如果两者相等,表示搜索成功, 返回该中间位置节点的位置,否则,继续执行以下步骤;
步翻3工S.如果搜索值比中间位置节点的值大,则将当前搜索范围的起始位置作为新的 起始位置,将当前的中间位置作为搜索范围的新的结束位置,返回到步骤3.2.2继续执行;
步職3丄6.如果搜索值比中间位置节点的值小,则将当前的中间位置作为新的起始位 置,将当前搜索范围的结束位置作为搜索范围的新的结束位置,返回到步骤3.2.2继续执行:
步簾若新节点所在区域已经有节点加入到当前的对等网络中,则按以下步骤获取 候选节点列表,并把该候选节点列表发送给客户机作为将来预提供给客户机的候选邻居节 点,该控制服务器把新节点按ID标识符降序依次插入到该区域的节点数组中;
步翻3A1.该控制服务器根据当前节点信息表的首地址,遍历该数组中的每一个元素, 中止条件为数组总元素个数或者预设的候选邻居节点数,并判断当前遍历到的节点是否失 效,判断准则是被遍历到的节点的上次发送有效激活消息的时间是否超过3倍的预先设定的
值,如果通历到失效节点,则删除节点信息表中的对应项,否则,执行下一歩骤;
步骤3.3.2.判断当前节点是否处于地址转换设备所管理的网络中,若结果为"是",则删 去步骤3.3.1中那些不存在内网的有效节点;若为"否",则删去步骤3.3.1中那些在地址转换 设备所管理的网络中的有效节点:
步據333.把步骤3.3.2得到的各个节点加入到候选节点列表中,一直到满足步骤3.3.1 中所述的中止条件为止;
步據33A若步骤3.3.3中得到的候选节点不满足设定的候选邻居节点数,则随机选择 IP地址的一个C段的节点信息表,继续按照步骤3.3.1〜歩骤3.3.3进行候选节点搜索,若在 所述节点信息表内还没有满足设定的候选节点总数,则按照在所述区域信息表中的IP地址 的顺序,继续在相邻的下一个IP地址C段区域的节点信息表中搜索,一直到满足设定的候 选节点总数或者搜索完全网所有节点为止:
步籌3.4.若步骤3.2中没有发现已经加入到当前对等网络中的节点,则随机选择一个节 点信息表,按照步骤3.3.1〜3.3.4进行,以获取候选节点列表,并发送给客户机作为其候选 邻居节点,该控制服务器创建该分区的一个新节点数组,并把该节点加入该数组,然后把该 数组首地址按照IP降序放入到IP分区数组中;
步籌4.若客户机发送保持激活消息,请求节点更新时,则该控制服务器依次按照以下 步骤执行:
步翻4丄该控制服务器使用步骤3.2所述的折半搜索法对区域信息表进行搜索,获取所 述要被更新节点所在IP地址C段的节点信息表的首地址,若找到所选首地址,则执行下一 步骤,否则,提示操作失败,执行步骤5;
步翻".根据步骤4.1得到的首地址,在节点信息表中,以所选节点ID作为基准,在 节点信息表中利用步骤3.2中所述的折半搜索法査找该节点,若找到所述节点,则修改节点 信息中的数据,改变上次修改时间为该控制服务器当前时间,若未找到该节点,则提示操作 失败,继续执行步骤5;
步職S.当客户机发出退出消息,该控制服务器便按照以下歩骤依次进行:
步,S.l.使用歩骤3.2中所述的折半搜索法査找区域信息表,获取该节点所在1P地址 的C段的节点信息表首地址,若找到该首地址便执行下一步,否则,提示操作失败,执行步 骤6;
步驟SJ.根据获取到的首地址,以该控制服务器在节点信息表中以该客户机所在节点 的ID作为接索关键字,在节点信息表中使用步骤3.2所述的折半搜索法査找该节点,若找 到该节点,便删除节点信息表中的数据,把其后的节点前移,并判断节点信息表是否已经为 空,若已经为空,则删除区域信息表中的对应项,若不为空,则提示删除信息成功继续执行 步骤6,若未找到该节点,则提示操作失败,继续执行步骤6;
步糖&当控制服务器痛要周期检测IP地址某个C段的节点信息表中的节点是否失效
时,则按如下步骤依次进行:
步翻6.1.根据输入控制服务器中需要检测的节点信息表首地址,遍历该信息表中的所 有元素;
步翻6丄首先,根据上次更新的时间按设定的阈值,判断当前节点是否失效,若失效, 则删除该节点信息,并把后面的节点前移,否则,继续判断下个节点:
步驟63.判断是否已经到数组的最后一个节点,若已经到了,则退出循环,否则,继 续循环判断:
步驟6.4.判断该节点信息表经过失效节点清除之后是否为空,如果为空,则将该节点信息 表释放,并艄除区域信息表中的对应项,后面数据项前移,退出主程序,否则,继续步骤6 所述的周期性检査。
针对IPv6而言,针对IPv6而言,区域信息表中的区域标识符为节点的IPv6地址和一个 128位值按位相与的结果值,该128位值的特点是,前120位为1,后8位为0,即:
本发明所提出的对等网络中全局节点维护的解决方案,使得每个节点都能够选择与自己 物理地域相近的节点作为其邻居,尽量地保证节点与邻居节点之间的传输性能,充分利用网
络资源,优化全网数据传输性能。同时,本解决方案为了避免网络中形成局部孤岛,即:部 分节点与全网断连的情况,采用了预防的措施:在该区域的前几个节点加入时,为其选择其 它区域中的节点作为其邻居,对于这些节点来说,已知的始终是区域外部节点,因此,这些 节点总能够保证该区域与外部连通。

附图说明

图1.全局节点维护节点信息组织形式: 图2.全局节点维护流程图; 图3.执行节点加入的流程图; 图4.执行候选节点搜索的流程图: 图5.执行节点更新的流程图; 图6.执行节点删除的流程图; 图7.执行节点失效检測的流程图: 图8.执行折半搜索法的流程图; 图9.全局节点的物理拓扑示意图; 图10.本发明的应用示例图;
图ll.终端数量与初始父节点列表生成时间的关系图。 具体实施方式
将对等网络按照C段地址分为不同的区域,每个区域内刚开始加入网络的节点作为本 区域的代表节点做区域间交互,这些代表节点从其他区域获得数据,然后拿到本区域进行 流通,并将这些数据也同时交给另外的区域。区域内的其它节点与这些代表节点交互,并 交上这些节点自身的交互,从而达到区域内数据的流通。
对于每一个块都有一个唯一的标识符来标识它们,以区别于别的区域,并且这个标识 符带有可比较的性质,这样的设计主要是为了使搜索算法可以采用折半査找得算法,令搜 索得速度更快一些,否则,就只能使用顺序査找得方法来搜索了。
我们的设计是基于c段地址来划分区域的,因此,为了算法实现简单的方面考虑,标 识区域的一个最方便也是最简单的方法就是用每个区域的c段地址的起始地址作为每个区
域的标识,即:我们假设,如果两个节点的1P与子网掩码相与之后的值相同,则认为这两个节点属 于临近区域,以上做法是对于IPv4进行的。
为了使我们的设计能够支持IPv6,采用一种和IPv4类似的处理方式,即:取IPv6地 址的前120位作为一个区域的标识符,从而解决了本解决方案应用于IPv6存在的一些问题。
举个例子来说明我们的解决方案,对于新来的节点A,其IP地址版本为IPv4,地址 是:192.168丄134/255.255.255.0,根据上面的结论,可以得出,该节点位于区域192.168丄0 内,这个标识符是通过IP地址与子网掩码地址按位相与产生的。因此,在我们的存储结构 中,这个区域的标识ID将为192.168.1.0,在mwfeDomii切数组中每个元素都包含了下面儿 类信息和数据:该区域的唯一标识符,即:192.168丄0,以及一个指向mwfe!to首地址的指 针。
该节点要求加入网络,由于该节点是该区域第一个加入网络的节点,因此,算法将随 机地找一个区域作为该节点的候选邻居节点,使该区域可以和其他区域处于连通状态,以 保证本区域的数据流量。此后再加入一部分节点之后,系统将只为新来节点选择区域内的 节点,这样区域内就不需要所有的节点都连到外部区域,从而在一定程度上提髙了网络的 性能。
节点加入到网络之后,就需要定时汇报自己仍然存在于网络的消息,这样做的目的是 让网络中的节点尽快了解节点是否失效的信息,以便于相关的节点在有节点失效的时候, 能尽快作出决策,更换父节点或者退出网络等。
对于节点是IPv6的情况,比如某新来节点的IP地址为:2009血8:ff::21/120,根据类似 的结论,将该IP地址与一个前120位为1 ,后8位为0的值按位相与,即:与值OxffiffiffifflTOO 按位相与,从而得到该节点位于区域2009:da8:ff::内。另外,对于IPv4和IPv6地址,由于 其地址的不同,并且,实现时,IPv6和IPv4将会各有一个完整的存储结构进行区分,因此, 我们的发明天然地部分解决了 IPv4和IPv6之间交互的问题,即:为IPv4分配的邻居节点 —定是BPv4,而为IPv6分配的节点也一定是IPv6的,那么节点之间通讯就不会存在IPv4 与IPv6地址转换问题了。
本发明霈要使用集中式管理全局节点信息,这里称为控制服务器,由它管理全局的节 点状态,完成上述节点加入、退出、更新信息、失效检测的所有管理工作。普通的客户机 与其通过协议通讯,发送各种节点管理的指令。
图11是终端节点数量从1变化到100的过程中,父节点列表的生成时间与终端节点数. 量的关系图,从图中,可以发现当节点数量大于20时,本发明产生父节点的所消耗的时间 基本趋于稳定为20ms左右。
由此可见,本发明达到了预期目的。