改进的Chord模型
改进的Chord模型(精选4篇)
改进的Chord模型 第1篇
目前,基于DHT机制的P2P覆盖网络主要有CAN[1],Chord[2],Pastry[3]和Tapestry[4]等,这些覆盖网络模型都具有无中心控制、可扩展、负载平衡、容错以及高效路由与定位的优点,但这些系统仍然存在着覆盖网络与物理网络不一致,单一覆盖网络节点容易失效等不足。为了解决上述问题,本文在Chord模型[2]基础上提出一种基于分组的改进型模型G-Chord。
1 G-Chord模型设计
为增强覆盖网络节点的可靠性,G-Chord为每个覆盖网络节点分配多个物理节点,IP地址的前m位相同的物理节点属于同一个覆盖网络节点,使覆盖网络标识邻近的节点在物理网络上相邻近,达到本地性。每个覆盖网络节点内的物理节点都采用分布式存储技术,信息均衡分布在其内部物理节点上。
1.1 G-Chord覆盖网络节点设计
G-Chord为每个覆盖网络节点分配长度为m位的标识,该标识由覆盖网络内的物理节点IP地址m位前缀确定。m取值是综合物理节点冗余度、覆盖网络节点稳定性和系统本地性折衷。
采用IP地址前缀作为覆盖网络标识,在一定程度上可以保证标识相近的覆盖网络节点在物理网络中也是相邻的,从而解决覆盖网络与物理网络不一致的问题。
每个覆盖网络节点都包含若干物理节点,它们具有与覆盖网络节点标识相等的IP地址前缀。从而改变了传统P2P系统中单一覆盖网络节点由单一物理节点构成的状况,增强了覆盖网络节点的健壮性。
1.2 G-Chord物理节点设计
G-Chord将覆盖网络节点中的物理网络节点按照节点能力划分为主节点和一般节点。
主节点 每个覆盖网络节点有一个主节点,主节点代表其所属覆盖网络节点直接连入Chord覆盖网络环,参与信息路由等活动。主节点上存储有覆盖网络节点路由表、内部物理节点表和内部节点路由表。
一般节点 每个覆盖网络节点中除主节点外,其余的节点均为一般节点。一般节点上存储覆盖网络节点路由表和内部物理节点路由表。
覆盖网络节点内的所有节点根据其IP地址的后n(m+n=32,IPv4)位标识,组织成Chord环。该环的主要功能就是运行Chord算法,将发布在该覆盖网络节点的信息均匀分散在内部物理节点上,以达到负载均衡。
覆盖网络节点路由表 记录某覆盖网络节点在覆盖网络环上后继节点相关信息。
内部物理节点表 记录某覆盖网络节点内所有物理节点相关信息。
内部节点路由表 记录该物理节点在内部物理节点标识环上后继节点相关信息。
1.3 G-Chord节点加入设计
设物理节点A通过某种方式已得知系统中的某个物理节点B,加入步骤如下:
(1) A向B发出加入信息。B根据A的IP地址,判断A所属覆盖网络节点标识。
(2) 若A与B同属一个覆盖网络节点,则B根据Chord算法和A的后n位IP地址值将A插入到其所属覆盖网络节点的内部物理节点标识环中,根据Chord算法调整更新相关表(如路由表等),并拷贝一份覆盖网络节点路由表给A。完成。
(3) 若A与B不属于同一个覆盖网络节点,B根据覆盖网络节点路由表按照Chord算法寻找A所属覆盖网络节点。若A所属覆盖网络节点存在于系统中,A将获得所属覆盖网络节点的主节点C,进而向C发出加入请求,具体步骤如(2)。若A所属覆盖网络节点在系统中不存在,则B将请求转给B的主节点C。由C在覆盖网络环上运行Chord算法加入一个新覆盖节点,将A作为覆盖网络节点的主节点,同时对整个覆盖网络环上存储的信息实行调整。
1.4 G-Chord节点退出设计
由于每个覆盖网络节点拥有多个物理节点,根据G-Chord系统设计思想(主节点退出时将影响C-Chord覆盖网络环、一般节点退出时只影响内部物理节点标识环),节点退出存在两种情况。
1.4.1 主节点退出网络
(1) 若主节点是当前覆盖网络节点中有且仅有的一个物理节点。
当主节点退出系统时,G-Chord将按照Chord算法删除该覆盖网络节点,转移发布在该节点上的相关信息并更新覆盖网络环上相关节点表,完成。
(2) 若主节点不是当前覆盖网络节点中有且仅有的一个物理节点。
当主节点退出系统时,G-Chord首先根据内部节点路由表将主节点的内部节点表转移至直接后继节点,将其后继节点作为当前覆盖网络节点的主节点,转移发布在其上的信息,删除节点,并根据Chord算法更新覆盖网络环和内部物理节点标识环上的表。
1.4.2 一般节点退出网络
转移发布在其上信息,删除该节点并根据Chord算法调整该内部物理节点标识环上的相关节点表。
1.5 G-Chord信息发布机制设计
G-Chord信息发布机制不同于目前主流的基于DHT的P2P信息发布机制。G-Chord根据hash函数,如SHA-1,对需要发布的信息进行hash运算,得出一个全局唯一信息标识。将该信息标识对覆盖网络节点标识空间取模,得到覆盖网络信息发布标识,该标识与Chord算法配合决定存储信息的覆盖网络节点。将全局唯一信息标识对覆盖网络内物理节点标识空间取模,得到内部节点信息发布标识,该标识与Chord算法配合决定将信息发布到哪个物理节点。
1.6 G-Chord信息定位机制设计
首先,计算出覆盖网络信息发布标识,运行Chord算法,将信息定位消息路由至对应覆盖网络节点的主节点。主节点收到信息定位消息时,根据信息的内部节点信息发布标识,在主节点内模拟运行Chord算法,得到存储该发布信息的物理节点,并将信息发布到该节点。由于引入了内部物理节点表,不用多节点合作进行Chord计算,在覆盖节点内可以做到一次定位。
2 G-Chord系统评估
在有N个物理节点的G-Chord系统中,最多有2m个覆盖网络节点,每个覆盖网络节点最多拥有2n个物理节点。当m为0或32时,G-Chord退化为Chord。否则用g代表覆盖网络环上的节点数(gN,g2m),l代表每个覆盖网络节点中的物理节点个数(lN,l2n)。无论是加入或者退出系统只需更新O(logg +l)(主节点加入或退出)或O(logl)(一般节点加入或退出)个相关节点信息,实际中gN,lN,故定位节点信息所需步数小于Chord,减少节点定位次数。
由于根据IP地址对节点进行了分组,可以以较大概率保证物理位置相邻的节点属于同一覆盖网络节点内,节点加入或者退出系统所引发实际网络流量远少于Chord,并且这些流量只是在物理位置相邻的节点间的流量,信息的转储只发生在物理位置相邻的节点间,极大地减少了骨干网络上的流量,减少了信息在网络上的传输距离、传输过程中所经过的路由数及传输时延,因而减少了信息在网络中传输的代价。
3 总 结
G-Chord模型通过引入覆盖网络节点并利用物理节点IP地址组织网络,具有更佳的本地性和可靠性,减少了定位次数和网络流量。但由于引入了主节点,存在单点失效问题,此问题可以通过备份主节点来解决,当主节点失效时将备份主节点切换为主节点。
参考文献
[1]Ratnasamy S,Francis P,Handley M,et al.A Scalable Content-Addres-sable Network.SIGCOMM01,August 27-31,2001,San Diego,Califor-nia,USA.
[2]Stoica I,Morris R,Karger D,et al.Chord:Ascalable peer-to-peer look-up service for Internet applications.Technical Report TR-819,MIT,March 2001.
[3]Rowstron A,Druschel P.Pastry:Scalable,distributed object locationand routing for large-scale peer-to-peer systems.IFIP/ACMInternation-al Conference on Distributed Systems Platforms(Middleware),Novem-ber,2001.
[4]Ben Y Zhao,John Kubiatowicz,Anthony D.Joseph.Tapestry:An Infra-structure for Fault-tolerant Wide-area Location and Routing.ReportNo.UCB/CSD-01-1141 April 2001,Computer Science Division(EE-CS)University of California Berkeley.
灰色马尔可夫链模型的改进及其应用 第2篇
将灰色模型与马尔可夫链方法相结合,建立了灰色马尔可夫链预测模型,并对该模型进行了改进.采用滑动转移概率矩阵,并依据广西合面狮水库10 a的年最大洪水流量预测以后2 a的.年最大洪水流量范围.结果表明,采用改进的灰色马尔可夫链模型,可比较准确地预测随机波动性较大的水文数据序列的范围.
作 者:赵琳琳 夏乐天 ZHAO Lin-lin XIA Le-tian 作者单位:河海大学理学院,江苏,南京,210098 刊 名:河海大学学报(自然科学版) ISTIC PKU英文刊名:JOURNAL OF HOHAI UNIVERSITY(NATURAL SCIENCES) 年,卷(期): 35(4) 分类号:O211.62 关键词:马尔可夫链 灰色模型 滑动转移概率矩阵 年最大洪水流量 合面狮水库
一种改进的Chord路由算法 第3篇
Chord是支持DHT的P2P系统之一, DHT (distributed hash table) -分布式散列表是近来P2P系统中普遍采用的用于分布式数据存储与组织的数据结构, 系统中各个资源节点保存了散列表的一部分, 散列表以 (key, object) 对的形式来组织数据。Chord实现了这样一种操作:给定一个关键字 (key) , 将key映射到某个结点。如果给对等网络应用的每个数据都分配一个key, 那么对等网络中的数据查找问题就可以用Chord很容易地解决了。
Chord采用了相容哈希的一种变体为结点分配关键字。相容哈希有几个很好的特点, 首先是哈希函数可以做到负载平衡, 也就是说所有的结点可以接收到基本相同数量的关键字。另外, 当第N个结点加入或者离开网络时, 只有1/N的关键字需要移动到另外的位置。Chord进一步改善了相容哈希的可扩展性, 结点并不需要知道所有其他结点的信息。每个Chord结点只需要知道关于其他结点的少量的“路由”信息。在由N个结点组成的网络中, 每个结点只需要维护其他O (log2N) 个结点的信息, 同样, 每次查找只需要O (log2N) 条消息。当结点加入或者离开网络时, Chord需要更新路由信息, 每次加入或者离开需要传递O (log2N) 条消息。
首先, 每个PS结点都有一个m位的标识, 该标识由标准哈希函数SHA-1对结点的资源类型Type值进行哈希转换得到, 将标识对2m取模后顺序排列, 各结点都被映射到了一个大小为2m的环状逻辑空间中。在这一环状空间中, 结点标识之间形成了前驱与后继的关系, 如图1所示:
为确保高效的路由与查找性能, 每个结点除了维护前驱与后继邻结点之外, 还维护一个名为finger table的路由表, finger table表结构如下表1, 其中每一个表项都记录在环上顺时针方向与自身标识相距至少2k-1 (1km) 的第一个结点的地址, 如图2所示:
基于以上机制的传播策略为: (1) 请求标识值为X, 并将该请求发至结点M; (2) 结点M搜索本地finger table, 如存在值为X的结点则查找结束;如果没有, 将请求信息转至在finger table中最接近X的结点N; (3) 对结点N的finger table重复步骤2的搜索。
以上的传播策略不再将请求盲目地传递给所有邻结点, 使得请求在路由转发中逐渐接近目标, 能够保证对于任意键值的查找以很高的概率在O (log2N) 跳数内成功结束, 其中N为PS服务层中的结点规模。
2 改进后的chord路由算法
2.1 chord的不足
以图2的Chord系统为例, 标识符空间为26=64, 上线节点个数为10, 这里就出现了三个重复的后继节点14。我们可以看到, 如果从节点N8开始, 以2i为跨度来寻找路由表中的后继节点, 分别以20、21、22为跨度, 找到的后继节点都是N14, 也就是有接近一半的信息是冗余信息, 这些冗余信息大大减少了节点路由表的有效信息, 降低了Chord的查询效率。
从上面看出在标识符空间大于上线节点个数的情况下, 会出现一些路由信息的冗余, 那么如果在实际网络当中, 这种情况会严重到什么程度呢?
首先来分析Chord系统中节点路由表的冗余信息占总的路由表的比例。假设采用的是2m (m=32) 的环形空间, 网络中共有节点10 000个, 由于Chord系统采用的是相容哈希的方法来分配节点与关键字, 那么可以近似认为节点在环上是均匀分布的。所以这时每一个节点之间的间隔是232/10000, 差不多间隔是429496, 相当于218, 而每一个节点的路由表中共有m=32项的路由信息, 也就是说其中有18/32=57%的信息是冗余的。
如果对这样的路由表进行改进, 去掉这些冗余信息, 然后再增加有效的路由信息, 应该会提高系统的性能。
2.2 chord的改进
基于chord传播策略知, 请求标识值为X, 首先将该请求发至PS层结点M, 结点M搜索本地finger table, 如存在值为X的结点则查找结束;如果没有, 将请求信息转至在finger table中最接近X的结点N;对结点N的finger table重复上述步骤的搜索。结点与结点之间的转发存在着一定延迟, 而结点间的转发延迟是Chord系统性能的关键, 转发延迟的减少可以大大地提高Chord资源查询的性能。缩短结点间消息转发的延迟可以从两个方面着手, 一是增加网络带宽, 提高网络的传输速度;二是减少消息的传发次数, 使其在网络中传输的数据尽可能少。基于上述思想, 我们在减少冗余信息, 增加有效路由信息的基础上, 减少消息的转发次数, 来优化chord的资源节点查询算法。
因为Chord协议中的每个节点只在指针表中包括了半个Chord环中的某些节点的信息, 而且其中还包括一些冗余信息, 因此我们在改进方案时, 我们考虑删掉冗余信息, 并且将每个节点中未覆盖到的半个chord环的信息添加到新的路由表中。
增加新路由信息的具体过程如下: (1) 先按照原来的方法初始化当前节点的路由表; (2) 从开始处扫描该路由表中的信息, 标记出冗余的信息, 假设共有x条冗余信息; (3) 删除路由表中的冗余信息; (4) 然后把路由表中剩下的信息依次向上移动x步; (5) 均匀的取x条信息, 增加到路由表中, 其中分界点间隔:2m-2m-1/x+1, 另外最后一跳, 一定要跳回当前节点。
针对图2给出的例子, 我们来看一下增加新路由信息的具体方法。
从节点8的路由表中我们可以看出从节点N8开始, 找到了3项的后继节点都是指向N14的, 因此我们删掉2项, 然后在路由表最后再增加2项信息, 其中分界点间隔为: (64-32) /3=10.6, 然后向下取整=10, 所以有了N8+ (32+10) , N8+ (32+20) , 这两条路由信息。这里注意, 如果这里有除不尽的情况, 我们可以采用向下或向上取整的方法来处理。此时我们己经处理好路由表中关于Start的情况, 然后, 我们再来处理interval的情况, 对于原来N8+32, 这一条路由的interval的值要由原来的[40, 8]改变成[40, 50], 依次类推, 最后一条的路由信息变成[60, 8]。
再让我们详细比较一下新旧两张路由表:
按照此方法改进的Chord见图3, 可以看出这时节点的路由表的规模并没有发生改变, 却可以使当前节点发出的一个查询的最大步幅由原来的到Chord环的一半的距离, 到现在的可以一步几乎跳到整个Chord环, 这中间就可以包容更多新的节点信息。这时就可以提高查询的速度。
结合图3来分析Chord系统资源节点查询消息的转发次数, 假设当前节点是N8, 要搜索N38上的资源, 步骤如下: (1) 判断得N38不是当前节点; (2) 搜索当前节点的指取表, 结果未能找到N38落在Start与successor (start) 之间的表项; (3) 找到表项N8+16 N32, 将资源节点查询消息转发给N32; (4) 判断得N32不是所要搜索的节点; (5) 查找N32的指取表, 找到第一项N32+1 N38, 将N38返回给N8, 资源节点查询结束。显然, N8搜索N38过程中有一次消息转发。但如果在N8+16 N32表项后加入N32的后继节点N38信息, 上述搜索即需要1次的消息转发, 从而减少了消息转发的次数。如图4所示:
基于上述分析, 为了减少消息转发次数, 我们在finger table中引入二次级后继节点来提高资源节点的查询效率。Finger table的结构如表3。
设N=2m, 即指取表中有m个表项, 索引值从0到m-1, 每个表项指向一个不同的实际节点。每个表项有两个域:Start和successor (start) 的IP地址。如节点k上第i个表项的两个域分别为:Start=k+2i (mod2m) 、successor (start[i]) 的IP地址。Successor (successor (start) ) 存放的是successor (start) 后继的IP地址。
3 仿真实验与结果分析
针对本文提出的改进后的chord算法改进, 进行模拟仿真试验, 将其与经典的chord算法比较, 对其进行性能分析。P2PSim能够以随机过程的方式来定义节点加入、退出、失败的模式, 从而能够准确地表现P2P网络的动态进化的过程, 所以我们采用P2PSim来进行模拟实验。P2PSim是MIT的CSAIL (计算机科学和人工智能实验室) 推出的仿真软件, 它是一个开放源代码的项目。
P2PSim能模拟Chord、Accordion、Koorde、Kelips、Tapestry和Kademlia, 而且P2PSim也同样支持创建自己的协议。它可以用于评估、研究和模拟P2P协议, P2PSim可以运行在Linux和Fress BSD上。本实验是在一台1G内存, 运行频率为2.66GHz, Fedora Core 4, GCC2.95.3的环境下对算法的性能进行评估的。使用P2Psim可以对P2P协议进行包括性能、负载均衡、容错等多方面的评估。
使用P2PSim进行实验, 首先我们要准备好描述网络拓扑结构的文件topology.txt, 配置模拟器的配置文件agrsfile, 和执行脚本命令的脚本文件。然后运行模拟器, 在模拟过程中将中间结果保存下来, 最后模拟执行完毕即可得到最终的结果和统计结果。Chord算法的改进与模拟分析运行后的输出结果得到很多重要的衡量数据, 例如平均路径长度, 正确、错误、失败的平均查找延迟时间, 带宽等, 在这里我们只考察平均路径长度和正确平均查找延迟时间两方面的数据。
(1) 平均查询延迟时间。平均延迟时间定义为考虑到每个hop的平均物理网络延迟时的资源定位时间。在图5中, Chord代表原Chord协议曲线, 横坐标为节点数, 纵坐标为正确平均查找延迟时间, 单位为ms。
(2) 平均查询路径长度。相同的模拟实验环境, 我们比较平均查询路径长度的差异, 路径长度定义为在P2P网络上, 查询某一个分布对象时所经过的节点的数目。图6曲线代表的协议同上叙述的相同, 横坐标也为节点数, 不同的是纵坐标为平均查询路径长度, 单位为hop。由图中我们可以看到, 同平均查询延迟时间的结果一样, 随着节点数的增长, 平均路径长度也都跟着增长。
从以上比较可以看出, 改进后的chord算法与经典的chord算法相比, 提高了chord的查找效率。
4 结束语
通过P2PSim进行模拟仿真, 其实验结果表明, 改进后的chord提高了路由表中有价值信息的含量, 并且通过引入二次级后继节点来提高资源节点的查询效率, 在一定程度上解决了原chord算法未考虑路由表冗余信息的缺点, 提高了查询的效率。
摘要:在P2P中有效确定存储所需数据的节点是至关重要的。Chord是一种比较成功的P2P路由算法, 但是chord的路由表存在严重的信息冗余。提出了一种对chord改进的算法, 增加了路由表中的有效信息, 提高了查询效率。
关键词:P2P,Chord,分布式哈希表,路由表,P2Psim
参考文献
[1]STOICA I, MORRIS R, KARGER D, et al.Chord:A Scalable Peer-to-peer Lookup Service for Internet Application[C].ACM SIGCOMM'01.San Diego, California, USA, 2001.
[2]FU XD, SHI WS, AKKERMAN A.CANS:Composable, Adaptive Network Services Infrastructure[C].Proceedings of3rd USENIX Symposium Internet Technologies and Systems, 2001.
[3]ROWSTRON A, DRUSCHEL P.Pastry:Scalable, Distributed Object Location and Routing for Large-scale Peer-to-peer System[C].Proceedings of the18th IFIP/ACM International Conference on Distributed Systems Platforms, 2001.
[4]Ion Stoica, Robert Morris, David Liben-Nowell.Chord:A Scalable peer-to-peer Lookup Protocol for Internet Applications[C].In:IEEE/ACM Transactions on Networking.New York, NY, USA:ACM Press, 2003.
改进的Chord模型 第4篇
SWOT分析方法应用成功与否的关键,在于对各战略因素的强度及其重要性的评估.本文采用模糊综合评判方法代替一般性专家评估,使评估工作更接近客观实际,从而减少了评估中的.主观因素.
作 者:黄昕 周世植 作者单位:黄昕(武建集团总承包公司武汉,430014)周世植(武汉水利电力大学武汉,430072)
刊 名:价值工程 ISTIC英文刊名:VALUE ENGINEERING 年,卷(期):2000 “”(3) 分类号:F2 关键词:经营战略 权重 SWOT 模糊综合评判★ 货代工作总结
★ 货代年终总结
★ 空运货代实习报告
★ 货代业务员年度工作总结
★ 货代操作员个人简历
★ 货代转正申请书
★ 民营企业经营战略的缺失
★ 货代业务员终总结
★ 货代公司转正申请书
改进的Chord模型
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


