一种通过对p2p网络节点分组聚类来提高网络稳定性的方法

文档序号:7945886阅读:191来源:国知局

专利名称::一种通过对p2p网络节点分组聚类来提高网络稳定性的方法
技术领域
:本发明涉及一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,它以很少的系统可扩展性方面的牺牲换取了系统稳定性的极大提高,从而增强了系统强壮性,改善了系统用户的体验。二
背景技术
:以往的一些测量工作显示,真实世界的P2P系统中很大一部分节点都是不稳定的(这些节点多数是个人电脑,个人数码助理等通过调制解调器连接到网络中),也就是说,它们经常只在线很短的时间就下线了(在下文中我们形象地称这些节点为dwarfs)。这种抖动性会引发基于分布式散列表(DistributedHashingTable,简称DHT)的系统进行大量不必要的数据传输和fmgertable的更新。为了减少这种网络负载,一些基于分布式散列表的P2P实现系统(比如OpenDHT)仅利用稳定节点(这些节点一般是稳定在线的服务器或工作站,我们称之为giants)作为DHT节点。那些dwarfs仅作为客户取得DHT系统的服务。我们称这种策略为GiantOnly,它在本质上是为稳定性牺牲了扩展性。这种做法对OpenDHT是合理的,因为OpenDHT建立在有足够多giants的Planetlab上。但是,在其它一些应用于商业的P2P系统实现(比如Skype,KaZaA禾BeDonkey)中,参与节点主要是dwarfs,也就是说环境是高抖动的。将类似GiantOnly的策略应用到这种情况,会造成"客户更多,DHT节点更少"的局面。也就是说,系统不再具有可扩展性了。本发明基于这种观察在高抖动性的环境里,虽然单个dwarf的能力是微不足道的,但是由于这种节点很多,仍然可以将他们联合起来对系统的扩展性做出贡献。更重要的是,在这种giants很少的环境里,合理利用dwarfs几乎是提供可扩展的服务的唯一手段。三
发明内容本发明的目的是提出一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,它以很少的系统可扩展性方面的牺牲换取了系统稳定性的极大提高,从而增强了系统健壮性,改善了系统用户的体验。为实现上述目的,本发明的技术方案是一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,该方法包括以下步骤1.对网络节点分组聚类考虑到节点"存储量"和"带宽"等性能与节点"在线时长"具有同质性这个现象,选择按网络节点生存时长进行分组聚类的方法;节点生存时长指存储量、带宽和在线时长三者综合的参数?2.确定网络节点的组织拓扑结构,为了减少搜索时延,分组聚类采用"组内无结构,组间结构化"的方法制定拓扑结构,并规定了网络中文件的存储和搜索方法;3.确定网络节点分组数量级。首先需要统计出网络节点数的量级N,在此基础上考虑系统稳定性和可扩展性的折中,将网络节点分组的数量级定为N/logN;4.在一定的可扩展性下,确定具体网络节点分组聚类方法的最大化系统稳定性。证明了这个稳定性最大化问题为NP问题,并提出了一个近似算法;5.证明这个近似算法是实际可行的,即其所需的已知条件均是可以从网络历史信息中统计得到的。本发明与现有技术相比,其显著优点是该方法以很少的系统可扩展性方面的牺牲换取了系统稳定性的极大提高,从而增强了系统健壮性,改善了系统用户的体验。四图1是本发明基于Chord的混合结构的一个简单例。五具体实施例方式本发明可分为5个阶段确定分组聚类原则,确定节点组织拓扑结构,确定分组数量级,确定具体分组聚类方法,证明近似算法可行性。阶段l:确定分组聚类原则我们设计这个同质分组策略主要从两个角度,即系统容量和查询时延,来提高系统扩展性。为了提高系统容量,系统容纳了所有申请加入的节点,并将它们分组。以往的工作观察到,在线时间长的节点通常都是以ISDN或电缆连接到网络中,也就是说,它们在诸如带宽和存储容量方面也是giant,而反之亦然。因此可以认为节点的"生存时长"与其能力成正比。由于能力的不对称,将giant和dwarf分在同一个组里是不合理的。首先,带宽的不对称会使giant的带宽在与dwarf通信的时候得不到充分利用。其次,在容量方面,一个giant的离开也许会导致剩下的dwarf不能接管这个giant原来存储的那么多文件。最后,属于同一个网络服务供应商的节点经常会显示某种相似性,因此同质分组策略也可以为调整网络以达到拓扑感知提供便利。总之,将在"生存时长"(也就是广义的"节点能力")意义上同质节点分到一个组里是合理的。阶段2:确定节点组织拓扑结构为了控制搜索时延,在系统连接和查询路由策略上,我们采用一种混合方法每个组对应一个DHT单元(也就是一个Chord节点),依据DHT进行组间连接。进一步说,如果组Ga需要与组Gb相连,则分别在Ga和Gb中随机选择若干个节点相连(以提高容错性)。与之相对,组内连接是随机的。每个组的节点共享一个ID,维护对应的路由表,合作保存文件等等。文件的存储可以基于erasurecoding,用户只需要一部分文件块就可以得到整个文件。这样有两个好处离开系统的节点不必将其所有的文件块都转存给其他节点,从而节省带宽消耗,而崩溃节点对系统造成的影响也被减少。图1是一个简单的例子。搜索包括两步首先进行基于DHT的组间搜索,到达目的组,接下来在目的组里进行类似随机走的搜索来搜集足够的文件块。阶段3:确定分组数量级尽管我们认为P2P系统高度不稳定,但是从另一个角度说,以往的许多工作都观察到,在大多数时间内,离开系统的节点数大致等于加入系统的节点数。这也就是说,网络里的"节点数"是基本稳定的。因此我们假设系统的节点数可以从以往的历史记录中估计出来,设其在^左右浮动。现假设给定^,可以想象到如果组数"M艮小(即各个组含有的节点很多),则由于在一个组里随机走很费时,系统的扩展性很差。另一方面,由于含有节点多的组生存下来的几率大,所以系统的稳定性好。如果系统只有一个组,则退化成Gnutella。相反地,如果^很大,则意味着扩展性好而稳定性差。如果系统里每个节点自成一组,就退化成Chord。由此可见,我们必须确定合适的附来控制搜索搜索时延。假设we6(W/logA0,这就是说,组的平均大小是@(1(^^)。则搜索需要的跳数由两部分组成结构化路由,跳数为W^M^WGg^^g^));随机走,跳数为^og^)。这样总的跳数就是O(log(7V/logA0)+O(logA0=O(logA0。因此we0(7V/logiV)能够导致一个可以接受的査询时延,我们就将分组数设为"^0(7^1^^)。阶段4:确定具体分组聚类方法同质分组聚类策略——即阶段一的"能力同质节点聚类"和阶段三的me0(7V/logAO—仅仅为了提高扩展性所做的两个一般意义上的限制。因此可以在这个原则基础上,进一步设计更具体的分组聚类方法,目的是最大化系统稳定性。我们定义一些相关参数(见表l),并将其形式化为一个分组方法的最大化稳定性问题。表1分组聚类方法中的参数定义<table>tableseeoriginaldocumentpage5</column></row><table>性。按照这种观点,我们将系统稳定性定义为各组稳定性的方差倒数-<table>tableseeoriginaldocumentpage5</column></row><table>其中^"附,而我们最终目的是最大化"。我们简单将&定义为组G的"生存时长"^是不够的,因为各个文件的流行度不同,因此被访问的频率也不同。将这个因素考虑进去,我们将组稳定性^定义为<formula>formulaseeoriginaldocumentpage6</formula>组访问频率加权其"生存时长"^,即。其中被定义为的组(^中的文件流行度之和w。"(Z)是组G的第i个文件的流行度,《是组《所存储的文件数。我们将在一段时间内进入系统的节点集合记为S:"'""…'^,假设每个节点"'的访问频率为",^,进入时刻为W幽—"舰,离开时刻为">謂'"妙',。不考虑同质这一限制,分组方法的最大化稳定性可以形式化为已知5={!,"2,.."&}广广广^"rJ(n)2求S的一个划分G"G2,…,G使最小。我们进而证明了分组方法的最大化稳定性问题是NP难问题。阶段5:证明近似算法可行性我们认为分组聚类方法的最大化稳定性问题不但是NP难的,而且不可行。这是因为它要求知道每个节点的进入和离开时刻,而这在实际应用中是不现实的。作为改进,我们提出一个近似的分组方法,它不仅是非NP的,而且是可行的,因为我们将证明它只需要己知一个参数——即系统节点数W,和三个分布,即v.(.),D.(.),以及g(.),根据已有文献的记录,这些都是可以从历史信息中统计得到的。本方法将"同质"特性稍微严格化。具体地说,我们将"生存时长"轴分为w个区间,也就是[yQ,y!),[y!,y2),…',[yn^,ym),其中^=0^>=+°0。并规定生存时长在同一区间中的节点会被分到同一组里。这种方案禁止了"生存时长"区间的覆盖,可能会稍微损害系统稳定性,也就是得到的解不是最大的。但是我们相信这种损害是很小的。此方法由此归结到决定y"y"…,y^来最大化"。在定理2和3中,我们证明了这种方法是可行的,因为如果上述分布都是己知的话,u是y"y"…,ym"的函数。定理2是h-i和力的函数。定理3^是A-i和^的函数。最终我们得到如下推论推论"是yi,y2,…,ym-i的函数。权利要求1、一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,其特征是包括以下步骤(1)对网络节点分组聚类考虑到节点“存储量”和“带宽”等性能与节点“在线时长”具有同质性这个现象,选择按网络节点生存时长进行分组聚类的方法;节点生存时长指存储量、带宽和在线时长三者综合的参数;(2)确定网络节点的组织拓扑结构,为了减少搜索时延,分组聚类采用“组内无结构,组间结构化”的方法制定拓扑结构,并规定了网络中文件的存储和搜索方法;(3)确定网络节点分组数量级。首先需要统计出网络节点数的量级N,在此基础上考虑系统稳定性和可扩展性的折中,将网络节点分组的数量级定为N/logN。2、根据权利要求1所述的一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,其特征是用分组的方法将网络中节点聚类,将每个组视为一个分布式哈希表中的"节点",组内节点无结构链接,从而形成网络拓扑。文件存储用erasurecoding的方法以减少文件搜索时间。将无结构随机走和有结构分布式散列表结合,用以搜索文件,从而保证了搜索高效性和系统可扩展性。3、根据权利要求1所述的一种通过对P2P网络节点分组聚类来提高网络稳定性的方法,其特征是在保证系统可扩展性的基础上,将以最大化系统稳定性为目标的具体分组聚类方法归结为一个最优化问题;步骤(4)在一定的可扩展性下,确定具体网络节点分组聚类方法的最大化系统稳定性;证明了这个稳定性最大化问题为NP问题,并提出了一个近似算法;步骤(5)证明这个近似算法是实际可行的,即其所需的已知条件均是从网络历史信息中统计得到的。全文摘要本发明公开了通过对P2P网络节点分组聚类来提高网络稳定性的方法,包括以下步骤(1)对网络节点分组聚类考虑到节点“存储量”和“带宽”等性能与节点“在线时长”具有同质性这个现象,选择按网络节点生存时长进行分组聚类的方法;节点生存时长指存储量、带宽和在线时长三者综合的参数;(2)确定网络节点的组织拓扑结构,为了减少搜索时延,分组聚类采用“组内无结构,组间结构化”的方法制定拓扑结构,并规定了网络中文件的存储和搜索方法;(3)确定网络节点分组数量级。首先需要统计出网络节点数的量级N,在此基础上考虑系统稳定性和可扩展性的折中,将网络节点分组的数量级定为N/logN。本发明与以很少的系统可扩展性的牺牲换取了系统稳定性的极大提高,从而增强了系统健壮性,改善了系统用户的体验。文档编号H04L29/08GK101562632SQ200910027818公开日2009年10月21日申请日期2009年5月15日优先权日2009年5月15日发明者谢军锋,陈贵海申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1