一种能有效预防无结构对等网络覆盖网分割问题的方法

文档序号:7658749阅读:77来源:国知局
专利名称:一种能有效预防无结构对等网络覆盖网分割问题的方法
技术领域
本发明涉及一种一种能有效预防无结构对等网络覆盖网分割问题的方法,它的使 用还具有优化覆盖网拓扑结构、提高对等网络在动态环境下的容错性的效果。二、 背景技术分布式、自组织的对等网络在过去几年里以惊人的速度发展到巨大的规模,在世 界范围内被广泛应用到多个领域。虽然对等网络中的结点在功能上互相平等,但实际 上其中某些结点对于整个网络却有特殊意义。 一方面,那些作为两个或多个独立子网之间唯一通道的结点,对覆盖网拓扑结构有重要影响,其失效很可能导致覆盖网被分 割,而反过来覆盖网被分割往往可以追溯到它们的失效。另一方面,那些成为系统性 能"瓶颈"的结点,其能力影响到系统在动态环境下工作的多方面性能,如査询成功 率、数据(结点)定位跳数、通信拥塞和时延等等。我们称上述特殊意义的结点为"拓 扑关键点"。如果能在对等网络中以分布式的方法有效地检测到拓扑关键点并加以合 理的避免,就能从本质上增强系统对覆盖网分割的抵抗力,同时显著地提高系统容错 性。目前,未见有效预防无结构对等网络覆盖网被分割的方法。三、 发明内容本发明目的是提出一种有效预防无结构对等网络覆盖网被分割的方法,通过提 出"分点"这一概念来描述无结构对等网络的拓扑关键点,提出一套简单、有效、分 布式的分点检测和避免方法。为实现上述目的,本发明的技术方案是 一种能有效预防无结构对等网络覆盖网 分割问题的方法,该方法包括以下步骤1、启动检测,即网络中每个结点向其邻居 发送启动检测消息;2、探测可达性,即让每个结点的邻居可达性消息在整个网络中 不断更新和扩散;3、划分子集,即每个结点收集其邻居可达性消息并据此将其邻居 划分到若干个子集中;4、判定分点,即每个结点根据其邻居划分子集的结果判定自 身是否为分点,分点是易导致覆盖网分割的结点;5、分点避免,即每个分点通过适 当加边的方法合并邻居子集从而使自身成为非分点结点;6、适当减边,某些分点由 于加边操作可能导致负载过大,此时需要适当减边以平衡负载;7、结束。本发明与现有技术相比,其显著优点是它是纯分布式的方法,实现起来十分简 单并且可以方便地嵌入到现有无结构对等网络中;同时它可以有效地优化覆盖网拓扑 结构、提高对等网络在动态环境下的容错性。 四

图l是分点检测过程的示意图。图2是分点避免过程中线性链连接的例子。图3是分点避免过程中带弦环连接的例子。五具体实施方式
本发明可分为两个阶段分点检测、分点避免。图l中(0)网络初始状态、(1)启动检测、(2a)探测可达性I、 (2b)探测可达性II、 (3)收集可达关系、(4)划 分子集、判定分点。分点检测的关键,就是在候选分点C不参与消息路由的前提下,探测其邻居间的 可达关系,再依据可达关系将邻居集分成互不可达的子集;若子集只有一个,那么C不是分点,否则,C是分点。具体说来,C为了检测自己是否为分点,分几步进行:(1) 启动检测候选分点的结点C向每个邻居w,,^,…,乂发送消息MsgJnit以启动检测,收到消息的邻居必须回复Msg—Response,其中包含它的IP地址、带宽、时延、 连接度等信息(见图1 (l)),这些信息是以后的工作(分点避免)所必需的。如果C没有收到邻居W,的回复,就认为w,失效,将其从路由表中删除。(2) 探测可达性C给每个邻居发送探测消息Msg—Probe (见图1 (2a)),此消息中包 含结点C的地址、跳数限制TTL和邻居号乂。网络中每个结点维护一张"连接表",每个候选分点在连接表中都有其对应的一项,形如< 候选分点地址,邻居号l,邻居 号2,… >。结点N的连接表中候选分点C所对应的项表明C的哪些邻居是互相可 达的。当某个结点收到Msg—Probe消息时,如果MSg_Probe中的邻居号是新的,它就 把该消息发送给每个邻居(除了消息发送者)(见图1 (2b)),并且将消息中的邻居号iv,添加到候选分点C的连接表项中。如果连接表项的邻居号不止1个,就给候选分点发送Msg一Arrival消息,此消息包含该表项中所有的邻居号,实际上就是告诉候 选分点哪些邻居可达(见图1 (3))。候选分点给其不同邻居发出的探测消息所到 达的范围是不重叠的(只在相交的那一点回发Msg—ArrWal消息报告邻居间的可达关 系),避免了重复的可达性探测。(3) 划分子集C不断收集Msg—Arrival消息,计算其邻居之间的可达关系,将可达 的结点划分到同一个子集(这一步实际上是在计算等价类)。鉴于对等网络的动态性, 少数Msg—Arrival信息可能会丢失,所以C可以设置一个超时值Timeout (典型的具 体值为5000毫秒),在Timeout后认为得到了最终的划分。(4) 判定分点完成子集的划分后,C根据子集的数目(典型的具体值为3 — 5)来判 定自己是否为分点如果所有邻居归到同一个子集,那么C不是分点;否则,C是分 点,进入下一步一一分点的避免。
当结点C判定自己是分点后,为避免成为分点,C需要给其邻居加边以合并互不可达的多个子集。假设c的邻居被分成多个子集s,,s2,***,s ,那么<:从每个子集&中找到最"适合"加边的代表结点W"然后以某种方式将所有代表结点相连。为了找到最"适合"加边的代表结点,我们考虑如下原则(1)使每个结点的连接度尽量高 于某个常数下限(也就是尽可能提高对等网络的最小结点度,典型的最小结点度限制 为3),从而提高系统容错性;(2)使每个结点尽量各尽所能,也就是使负载因子(= 结点度/结点能力)尽量趋于一致,从而开发对等网络中普遍存在的结点异构性。基于上述原则,分点C首先找到子集&中连接度最低的结点,看其结点度是否低于常数下限Min_Degree (典型的具体值为3),如果是则将此结点作为s,的代表结点否则,计算每个结点的负载因子,将负载因子最小的结点(也就是负担最轻的结点)作为代表结点乂。 选择好代表结点后,代表结点之间相连最简单的连接方式是"线性链连接"给每个A^加一条到W,+,的边(给A^加一条到W,的边),这样所有的代表结点就形成了一条闭合链,从而合并了互不可达的多个子集,避免了分点的存在。图2是线性链连接的例子。各代表结点以线性链方式连接代表结点虽然简单,但很脆弱,以后如果有结 点失效,这条链很可能断裂,从而又形成新的分点。因此,我们考虑稍复杂的连接方式,比如对代表结点W,、 W、 、 W ,让每个乂不仅连接 +1)_,还连接AU,。^,也就是首先连成环,然后在环上给每个代表结点加一条到对面的弦(见图3)。通过模拟实验我们比较了带弦环连接和线性链连接的性能,测量结果表明前者通常要优于 后者。每个结点所可以维护的连接数(典型的连接数为3—20)是有限制的。连接度越 高,更新路由表的自适应开销就越大,因此每个结点只能根据自己的能力(带宽、 存储容量、计算能力等)维持一定数目的连接。所以,当加边操作导致结点连接度 超过其上限(典型的上限值为10—20之间,正比于结点能力),该结点需要减边以 限制邻居数。减边遵循如下原则(1)为避免分点而新加的那些边不能减;(2)对 于其它边而言,计算每条边所连接的结点的负载因子,将负载因子最大的结点(也 就是负担最重的结点)对应的那条边删去。上述两条原则的理由是明显的,而实现 方法也很直观,不再累述。需要注意的是原则(1)优先于原则(2),否则可能产生覆盖网因减边再次分割的问题。
权利要求
1、一种能有效预防无结构对等网络覆盖网分割问题的方法,其特征是该方法包括以下步骤(1)启动检测,即网络中每个结点向其邻居发送启动检测消息;(2)探测可达性,即让每个结点的邻居可达性消息在整个网络中不断更新和扩散;(3)划分子集,即每个结点收集其邻居可达性消息并据此将其邻居划分到若干个子集中;(4)判定分点,即每个结点根据其邻居划分子集的结果判定自身是否为分点,分点是易导致覆盖网分割的结点;(5)分点避免,即每个分点通过适当加边的方法合并邻居子集从而使自身成为非分点结点;(6)适当减边,某些分点由于加边操作可能导致负载过大,此时需要适当减边以平衡负载;(7)结束。
2、 根据权利要求1所述的一种能有效预防无结构对等网络覆盖网分割问题的方 法,其特征是所述分点所用到的的定位关系、可达关系都基于局部性的路由。
3、根据权利要求1所述的一种能有效预防无结构对等网络覆盖网分割问题的方法, 其特征是步骤(2)中每个结点的邻居可达性消息在整个网络中的更新和扩散是不重叠 的,因此避免了重复的可达性探测开销。
4、 根据权利要求1所述的一种能有效预防无结构对等网络覆盖网分割问题的方 法,其特征是步骤(5)和步骤(6)中做加边或减边操作时综合原则是1)、使每个结 点的连接度尽量高于某个常数下限,提高系统容错性;2)、使每个结点尽量各尽所能, 也就是使负载因子尽量趋于一致,从而开发对等网络中普遍存在的结点异构性。
5、 根据权利要求1所述的一种能有效预防无结构对等网络覆盖网分割问题的方 法,其特征是分点检测方法,在候选分点的结点C不参与消息路由的前提下,探测 其邻居间的可达关系,再依据可达关系将邻居集分成互不可达的子集;若子集只有一 个,那么C不是分点,否则,C是分点;检测是否为分点的步骤(1)启动检测候选分点的结点C向每个邻居W,,W2,…,A^发送消息Msg—Init以启动检 测,收到消息的邻居结点必须回复Msg一Response,其中包含它的IP地址、带宽、时 延、连接度等信息,这些信息是分点避免所必需;如果C没有收到邻居^的回复,就认为W,失效,将其从路由表中删除;(2)探测可达性候选分点的结点C给每个邻 居发送探测消息Msg—Probe,此消息中包含结点C的地址、跳数限制TTL和邻居结点号W,;网络中每个结点维护一张"连接表",每个候选分点在连接表中都有其对应的一项;邻居结点N的连接表中候选分点C所对应的项表明C的哪些邻居是互相可 达的;当某个结点收到Msg一Probe消息时,如果Msg一Probe中的邻居结点号是新的,它就把该消息发送给每个邻居;并且将消息中的邻居结点号w,添加到候选分点C的连接表项中;如果连接表项的邻居结点号不止1个,就给候选分点发送Msg—Arrival 消息,此消息包含该表项中所有的邻居结点号,实际上就是告诉候选分点哪些邻居可 达;候选分点给其不同邻居发出的探测消息所到达的范围是不重叠的,避免了重复的 可达性探测;(3)划分子集候选分点的结点C不断收集Msg—Arrival消息,计算其 邻居之间的可达关系,将可达的结点划分到同一个子集;鉴于对等网络的动态性,少 数MSg_Arrival信息可能会丢失,所以候选分点的结点C可以设置一个超时值 Timeout,在Timeout后认为得到了最终的划分;(4)判定分点完成子集的划分后, 候选分点的结点C根据子集的数目来判定自己是否为分点如果所有邻居归到同一个 子集,那么C不是分点;否则,C是分点,进入下一步一一分点的避免;分点的避免 方法当候选分点的结点C判定自己是分点后,为避免成为分点,C需要给其邻居加边以合并互不可达的多个子集。假设C的邻居被分成多个子集S,,^,…,S。,那么C从每个子集S,中找到最"适合"加边的代表结点W,,然后以某种方式以某种方式将所 有代表结点相连;基于上述原则,分点C首先找到子集s,中连接度最低的结点,看其结点度是否低 于常数下限Min一Degree,如果是则将此结点作为s,的代表结点w,;否则,计算每个 结点的负载因子,将负载因子最小的结点作为代表结点w,;选择好代表结点后,代表结点之间相连方式是最简单的连接方式是"线性链连接"给每个W,加一条到^+,的 边或采用带弦环连接方式,对代表结点W,、 W2、、 W ,让每个W,不仅连接W(,,^,还连接 ,+ ,2— ,也就是首先连成环,然后在环上给每个代表结点加一条到对面不相 邻结点的弦。
全文摘要
本发明公开了一种能有效预防无结构对等网络覆盖网分割问题的方法,包括以下步骤1.启动检测,即网络中每个结点向其邻居发送启动检测消息;2.探测可达性,即让每个结点的邻居可达性消息在整个网络中不断更新和扩散;3.划分子集,即每个结点收集其邻居可达性消息并据此将其邻居划分到若干个子集中;4.判定分点,即每个结点根据其邻居划分子集的结果判定自身是否为分点,分点是易导致覆盖网分割的结点;5.分点避免,即每个分点通过适当加边的方法合并邻居子集从而使自身成为非分点结点;6.适当减边;7.结束。本发明是纯分布式的方法,实现起来十分简单并且可方便地嵌入到现有无结构对等网络中。
文档编号H04L12/46GK101159655SQ20071013502
公开日2008年4月9日 申请日期2007年11月2日 优先权日2007年11月2日
发明者李振华, 邱彤庆, 陈贵海 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1