浅谈P2P拓扑结构及算法

来源 :远程教育杂志 | 被引量 : 0次 | 上传用户:yaojian42506
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  一、引言
  
  随着德国媒体集团巨子贝塔斯曼以800万美元的价格收购Napster,以网络自由为己任的“开放源代码运动”(Open Source)与商业公司进行的堂吉诃德似的斗争也告一段落。然而,Napster把一种全新的网络应用模式“对等网络”(Peer-to-Peer Networks,P2P)带入人们的视野,并迅速被人们所接受。
  P2P 信息共享技术是一种用于不同PC用户间,不经过中继设备直接交换数据或服务的技术,它允许网络用户直接使用对方的文件,改变了传统的将资源集中放置在服务器端,用户要获得资源,必须先和服务器建立连接,并通过网络传输到本地计算机上的客户机/服务器模式(Client/Server,C/S),消除了中间环节,使内容从“中心”走向“边缘”,避免了C/S 结构固有的性能瓶颈,并使位于网络边缘节点上的信息资源参与共享。 P2P网络拓扑是P2P信息共享技术的基础,它负责合理地组织网络中的节点以及节点上提供共享的信息资源,并在此基础上高效地发送查询请求和查询应答消息,其目的是在保证检索质量的情况下,尽可能减少查询所引发的各种开销。
  本文力求寻找一种具有高可伸缩性、低开销的对等网络拓扑,改进算法。
  
  二、常见P2P网络拓扑结构及不足
  
  拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,节点之间的拓扑结构一直是确定系统类型的重要依据。对等网络拓扑构造是目前对等信息共享研究的一个核心问题。以下是四种常见的拓扑结构。
  1.单目录服务器型混合式拓扑
  混合式拓扑是一种混合了中央服务器结构的对等网络拓扑结构, 在某些文献中也被称为集中索引模型(Central Index Server Model)。在基于此类拓扑结构的系统中,存在一个或多个特殊的被所有节点共知的中央节点——服务器,中央服务器集中管理各种索引并执行检索。拓扑结构如图1。
  这种拓扑结构严格来说是C/S模型与P2P模型的混合体。其资源发现和查找过程采用C/S模式,节点间的文件传输则采用P2P模式。由此带来的问题是仍带有集中式的特征,单点故障使系统的容错性很差,一旦出现技术问题,服务器会减速甚至停止服务,同时服务器很容易成为系统的瓶颈,服务器可承受的负载限制了系统扩展。
  2.多超级节点型混合式拓扑
  针对单目录服务器型混合式拓扑存在的问题,后续的混合式P2P系统作了相应的改进。改进的基本思想都是在增加超级节点的数目的基础上弱化系统中的集中性,同时加强超级节点间的联系,以降低单点故障的危害。拓扑结构如图2所示。
  3.全分布式非结构化拓扑
  全分布式非结构化拓扑不存在索引服务器,所有用户节点完全对等,结构如图3所示。为了搜索某个文件,查询发出节点会向其邻居列表上的节点发出查询请求并附加该查询的TTL(Time-To-Live)。收到查询消息的节点,首先检查本地资源,看是否有与查询匹配的目标文件。如果有,则发送查询应答消息给查询发起者,如果没有,则转发给邻居节点。不管查询是否成功,只要查询的TTL不为0,接收查询的节点都会将该查询的TTL值减1后,转发给自己邻居列表上的节点。这种转发查询的洪泛机制以消耗相当高的网络带宽为代价,会导致较高的查询成本和较长的响应时间。
  4.全分布式结构化拓扑
  全分布式结构化拓扑一般都是基于DHT(Distributed Hash Table,分布式哈希表)技术,其共性是每个节点都有一个逻辑地址,新节点在加入时必须获取逻辑地址,这些逻辑地址反映了拓扑结构,路由、拓扑的维护等都是相对于这个逻辑地址而言。全分布式结构化拓扑具有良好的系统可伸缩性,是目前P2P领域研究的热点。因为在全分布式结构化拓扑中,文件存放和消息路由严格受控,所以这类系统都能实现一定程度的高效查找。但这种严格受控的系统也面临一些问题,由于P2P系统固有的动态性,使得这种维护的开销很大。拓扑结构如图4所示。
  
  三、拓扑结构及算法实现
  
  依据全分布式构化拓扑,笔者给出了一个拓扑结构的框架模型,如图5所示。该模型包含资源发布、路由维护、索引维护、数据对象维护、资源检索/定位等功能,将网络中信息资源的提供节点结合在一起,使得在保证系统可伸缩性的前提下,把信息共享覆盖到整个互联网。
  1.P-Grid算法的基本思想
  P-Grid是由Karl Aberer为首的P-Grid工作组研究给出的P2P系统。它是一种基于虚拟分布式搜索树的P2P系统:每个节点(Peer)只保存整棵树的一部分内容,这种树结构只有通过各个节点间的通信合作才能建立起来。P-Grid的搜索高效、快速,极大地减少了网络带宽,是一个真正的分布式系统,不需要中央协调者。它完全基于随机性的算法和节点间的交互来运作。与其它基于树结构的分布式索引不同,P-Grid节点能在非常不可靠的网络环境中执行搜索/更新操作,并且系统假设节点经常出现故障,节点在线概率低至10%左右。
  为了能在没有中央控制的情况下,实现大量节点间的可靠搜索,并且使系统在节点数量上具有良好的伸缩性,P-Grid定义了一种新的数据访问结构。它的基本思想是:节点通过相互间随机的访问,连续不断地分割搜索空间,每个节点均保留足够的信息以便在以后响应搜索请求时与其它节点通信。最终形成的分布式访问结构就称为“P-Grid”(Peer Grid)。
  尽管P-Grid算法有上述吸引人的特征,但在P-Grid中,只是沿着搜索树执行定向查找,在每次选择下一跳转发节点时,算法并没有考虑该节点或沿着该节点到达的节点是否真的拥有与查询请求相关的信息,这样的后果有可能直接造成某次查询的失败,而且由于算法没能从失败的查询中“吸取教训”,同样的失败将有可能一直存在,一直重复。另外,对于一次非常成功的查询,算法也不能从中“汲取经验”,这样相同的查询可能会走很多“歪路”,甚至失败,造成搜索效率的下降,增加网络带宽消耗。针对这个问题,本文在P-Grid算法的基础上加以改进,引入反馈机制。
  2.基于推荐的P-Grid算法的基本思想
  在对P-Grid算法研究的基础上作者给出了基于推荐的P-Grid算法以弥补不足。该算法利用已执行查询的反馈来有效地指导后继查询,是一种基于可靠消息的搜索算法。在算法中,每个节点都保持一个本地索引,索引由每个被请求或转发的数据对象关于每个邻居节点的一个条目(即三元组<数据对象,邻居节点,索引值>)组成。每个条目的值反映了在以后对特定数据对象的请求中,这个节点的邻居节点被选为下一跳转发节点的相对概率。
  在转发过程中,一个节点不是随机选择它的下一跳邻居节点,而是使用它的索引值提供的概率,即选择“最好”的节点进行转发。在每一步转发中,节点都把自己的节点标识符添加到查询消息中,并为它们处理过的查询保持软状态。假如来自同一查询的两个转发节点路径相交(比如,由于环的存在,一个节点收到一个副本查询消息),第二个转发节点就被认为是失败结束,副本查询消息被丢弃。
  作为反馈的索引值可以从以下两种方法得到:
  (1)乐观方法
  乐观算法建立在转发节点将成功完成查询请求的假定条件之上:当一个节点向一个或几个邻居节点转发查询时,就增加被选节点的索引值。当查询消息转发终止时,如果成功则任何事情也不用做(因为转发过程中已经增加了索引值),如果失败则沿着转发路径的逆路径修正那些与被请求对象相关的索引值(即转发过程中已经增加的索引值)。利用查询消息中的信息,转发路径上的最后一个节点发一个correct消息给它前面的节点。当这个节点收到correct消息后就减少对最后节点的索引值以反映失败。修正过程一直沿着这个请求的转发路径逆向返回,中间节点减少它们的本地关于下一跳的索引值。最后,发起查询的请求节点减少与这个转发路径相关的邻居节点的索引值。
  (2)悲观方法
  悲观算法与乐观算法相反:当一个节点向一个或几个邻居节点转发查询时,就减少被选节点的索引值(假设转发节点将失败)。当查询消息转发终止时,如果失败则任何事情也不用做,如果成功则沿着转发路径的逆路径增加那些与被请求对象相关的索引值。
  虽然可以采用悲观和乐观两种方法,但在实际应用中,由于各种意外因素,导致查询消息还没结束就在转发途中丢失,这时查询失败,而又无从沿转发路径的逆路径修正索引值,因此,乐观的方法在实际应用中存在困难,所以本文接下来的讨论都针对悲观算法。
  为了确定修正值,引入公式:
  v(t)=v0 (v0>0, t>0)
  其中,v0是当一个节点向一个或几个邻居节点转发查询时,对被选节点的索引值的减少值, t是从一个节点发起查询到得到查询结果之间的延迟,v(t)是查询成功后沿着转发路径的逆路径对相关索引值的增加值。显然,v(t)大于v0,即对索引值的增量大于对索引值的减量,且当t1>t2时v(t2)>v(t1),即对于同一查询的两条成功路径中,延迟小的索引值的增量大。所以,最后关于同一个数据对象的所有条目的索引值呈现:转发成功的(延迟较小)>转发成功的(延迟较大)>没被转发的>转发失败的。这正是算法要达到的效果。 这样,当系统运行一段时间后,每个节点上都保持了已被修正的索引表,这时查询转发将根据索引表提供的信息,选择索引值较高的节点进行,即选择查询延迟较小的路径。可见基于推荐P-Grid算法能通过有效路由减少查询延迟,提高路由性能。
  3.基于推荐的P-Grid算法访问结构
  定义1 二进制树是n(n≥0)个节点的有限集T,T为空时称为空树,否则它满足如下两个条件:
  有且仅有一个特定的称为根(Root)的节点,若n=1,则二进制树只包含一个Root节点;
  其余的节点可分为两个互不相交的子集Tl和T2,其中Tl和T2本身又是一棵二进制树,并称其为根的子树(Subtree)。
  在二进制树中,如果某个节点的子树个数为0,则称此节点为叶子节点。
  定义2 ?坌p∈P,path (p)=b1…bn,bi∈{0, 1},P为节点集合
  系统由N个节点的集合P={p1, …, pN}构成,每个节点都有自己的节点路径。节点路径有最大长度maxlength,根据实际应用情况设定,用于控制二进制搜索树的深度。maxlength反映了整个搜索空间被划分的程度,系统稳定后,整个搜索空间将被划分为2maxlength份。节点路径允许相同,路径相同的节点称为复制节点。
  (注:节点路径的下标从1开始。)
  每个节点均负责管理一个搜索区间,负责该区间内数据对象的信息,响应针对这些数据对象的检索请求。节点p负责数据对象d的条件是:path(p) 是key(d)的前缀,或key(d)是path(p)的前缀。节点p称为数据对象d的负责节点。而数据对象d有可能由其他节点q提供共享,并不存储在节点p上。节点q称为数据对象d的存储节点。 复制节点负责相同的数据对象。由于复制节点的存在,不会因某些节点的失效造成信息的丢失,从而进一步提高了系统健壮性。
  即节点p维护了一张路由表,该表分层记录其他节点的地址。对于第i层路由表Ri中的任一节点r,r的路径和p的路径具有长度为 i的公共前缀,但第i+ 1位的值不同。当搜索请求的前i位和path(p)一致,但第i+1位与path(p)不匹配时,节点p可通过Ri将请求路由到适当的节点。为控制路由表的大小,每层中的最大节点数由参数为了实现层内推荐,提高检索效率,节点p在本地维护一张索引表,索引表和其路由表对应,分层记录数据对象关于各转发节点的索引值。对于第i层索引表Ii中的任一索引(d,r,v):数据对象d的键值key ( d )和节点p的路径具有长度为 i的公共前缀,但第i + 1位的值不同;节点r为相对应第i层路由表Ri中的节点;索引值v为任一实数。对于一个特定的数据对象只可能向路由表中的某一层转发,所以也只可能出现在索引表中的某一层,而不会是很多层。
  4.基于推荐的P-Grid算法的简单模型
  图6中的简单例子描述了基于推荐的P-Grid算法的结构。图中包含6个节点,用带数字的圆圈表示,这些节点位于树结构的叶子节点上,用其节点路径(分别是00、01、10、11)来标识。
  图6中也描述了查询请求被转发的过程:查询“100”(“100”为要查询的数据对象所对应的二进制标识符)被发送到图中的节点 6,节点 6的路径为“00”,第1位就与key不同,根据路由表的表项可以把请求转发给节点3、4、5。其中节点3和4的路径和“100”匹配,查询结束。节点5的路径为“11”,和“100”有一位相同,但第2位不同,根据路由表表项又将请求转发给节点4,查询结束。 假设只有节点4上负责了“100”,初始值全为1.0,并取修正公式中的v0为0.3,表2显示了查询“100”前后的索引值的变化。
  由此可见,基于推荐的P-Grid算法访问结构中,搜索沿二进制搜索树从根到叶子执行定向查找的同时,在树的同一层上又执行基于层内推荐的可靠消息路由,这种“双保险”机制使得搜索成功率、搜索响应时间得到更进一步的保证。
  
  四、总结和展望
  
  近年来,人们对P2P网络中的拓扑结构进行了不断的探索和研究,本文在现有P-Grid系统算法的基础上加以改进,利用反馈来有效地指导后继查询,节约了大量的时间和带宽资源。总的来说,本文基本达到了预期的目标,找到了一种具有较高可伸缩性、较低开销的对等网络拓扑结构及更加快捷的搜索算法。随着网络技术的日益成熟,研究的不断深入,P2P网络模式必将发挥越发重要的作用,而对等网络的拓扑结构,版权问题,安全问题等也将得到有效的解决。
  
  [参考文献]
  [1]Karl Aberer, Manfred Hauswirth. Peer-to-peer Information Systems: Concepts and Models, State-of-the-art, and Future Systems. 18th International Conference on Data Engineering, San Jose, California, 2002.
  [2]刘晓红,邱力戈.对等网络运营模式探讨[J].通讯世界,2001,(9).
  [3]余智华,陆天波等.P2P技术与信息安全[J].信息技术快报,2004,(3).
  [4]周宁.信息组织[M].武汉:武汉大学出版社,2001,(5).
  [5]刘继光,陈立伟.一种基于DHT的P2P搜索方法[J].微计算机信息,2006,22(3).
  [6]黄宏斌,杨光,秦振.一种分布式信息资源定位机制的研究[J].计算机工程,2006,32(6).
  [7]汪维华,汪维清. 一种P2P网络信息分类检索模型研究[J].计算机工程与设计, 2007,(4).
  [8]王平根,刘勇,周脚根. 基于蚁群算法的P2P网络路由[J].广西师范大学学报(自然科学版), 2007,(02).
  
  [作者简介]
  方玉田,浙江广播电视大学现代教育技术中心。
  ON P2P Topology Frame and Algorithm
  Fang Yutian
  (Modern Education Technology Center of Zhejiang Radio & TV University, Hangzhou Zhejiang 310012)
  
  【Abstract】 Nowadays, the brand-new network mode of “peer-to-peer general acceptance of information sharing” is attracting people’s attention. The paper aims to find a more flexible, speedy peer to peer network topology frame on the basis of the traditional common one, and to improve algorithm.
  【Keywords】 P2P;Network topology;Algorithm
  
  本文责编:胡智标
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
一、eMM简介    许多关于e-learning的分析关注于孤立的教育机构的个体表现,而关于教育机构整体环境的深入分析却并不多。已经有许多关于在e-learning领域的最佳实践的文章,并且被发展成为一些技术规范,比如“可共享的内容对象参考模型”(SCORM)。一些关于e-learning的学术上的质量标准也已经建立起来了,例如线性基准质量。问题在于,关注于最优秀系统的更加整体化的方法远比关注个
期刊
李 阳 吉 喆 杨玉芹 译    [摘要]本综述主要关注人们创造力的特点,社区、学科领域、社会情境等与数字技术特点之间的互动。对创造力在教育中的作用,数字技术对创造力的支持,如何教授创造力,如何创造性地使用数字技术,如何评价创造力、学习和数字技术等进行了详细论述。在文章最后两部分对实践、课程及学习资源设计的启示及目前存在的问题进行了简要总结。  [关键词]创造力;技术;ICT  [中图分类号]G4
期刊
[摘 要] 本文首先对综述中用到的关键术语进行了界定,并讨论了思维技能、学习和技术三者之间的联系;然后从讨论一般思维技能是否存在的问题入手,针对思维技能能否被教授的问题进行了理论和实证的分析;接着对技术在思维技能教学中的作用进行了讨论,并认为信息和通讯技术(ICT)在思维技能教学中的作用方式主要有三种:作为导师或者教学机器、提供思维工具以及支持学习性对话。最后为使用技术支持思维技能的教学制定了指南
期刊
设计研究(DBR)是当前国际教育领域正在兴起的一种研究新范式,近年其思想陆续被引入国内教育技术学界,掀起了研究和讨论热潮。从它的发展历史来看,其最早兴起于上世纪90年代的学习科学研究领域。这一领域的研究者反对传统基于实验室的学习研究范式,认为这些研究剥离了真实情境很难迁移到现实的学习中。因而,他们开始走出实验室,转而关注在自然场景中进行学习环境的革新设计,并对发生其中的学习作出阐释。它的目的非常明
期刊
基于设计的研究是一种探究学习的方法论,旨在设计一些人工制品作为教学干预或教学革新并应用于实践,以潜在影响自然情境之中的学与教并对其作出阐释,从而促进教育实践和学习理论的同等发展。“数字化校园中的虚拟实验室建设与发展研究”项目正是在真实、自然的研究情境下,通过重复性的分析、设计、开发、实施、检验和反思来不断完善虚拟实验系统的教学功能,进而促进理论、技术与实践的和谐发展。    一、基于设计的研究范式
期刊
[摘要] 文章以认知弹性理论为基础,提出一种在线教学模型,以消除多样性学习群体的认知鸿沟,更好地满足来自不同背景的学习者的需要,并让学生学会对知识的远迁移。  [关键词] 认知弹性理论;教学模型;认知鸿沟    在线教学中,尤其是成人在线学习,经常会碰到这样的问题,部分学习者来自企业,部分来自一直在校的学生,他们具有不同的学习或工作经历,世界观也大不相同,这样的学习者在同一个学习社区中学习时存在认
期刊
普适计算(ubiquitous/pervasive computing)的思想在上世纪90年代初被提出来后,在计算机和教育技术等领域受到了广泛的关注。由于普适计算强调人与计算环境之间的紧密联系,强调计算机和网络应该更有效地渗透到人们的学习之中,让人们在任何时间、任何地点都能方便快捷地与他人协作、获得网络计算提供的各种服务,因而使得泛在学习受到了研究者的普遍关注。  泛在学习的目标是使学习过程中使用
期刊
[摘要] 通过分析目前有形技术使用中活动形式与呈现形式的性能,作者尝试对有形技术提供的交互性能进行概述。同时作者也对不断发展的心理学领域与教育领域中的一些相关研究进行综述,从而为有形技术支持的学习之研究汲取理论基础。在此基础上,作者提供了有形技术教育应用的一些案例。最后,对这些研究对未来研究、应用与实践的启示进行了简要论述。  [关键词] 有形计算;泛在计算;扩增现实    一、引言    在本综
期刊
技术在支撑学习与教学方面的作用已得到证实,而随着国内外对教师专业发展和教师学习问题的普遍关注,利用技术来促进教师学习的研究也越来越多,其中有些项目(如WIDE Wedd)已被介绍、人引入国内的教师专业发展培训中。  促进学生成功的教师在线指导系统(eMSS,e-Mentoringfor Student Success)是教师在线学习的一个著名项目,它是在美国国家科学基金会(NSF)批准资助下,由全
期刊
[摘要] 学校情境下的问题大部分是良构问题,而现实生活中面临的问题大多是非良构问题。解决良构问题的程序是激活图式表征问题,搜寻解决方案和执行解决方案。结构性知识与具体领域的知识是解决良构问题的主要成分。解决非良构问题的过程包括了解问题的陈述,确定问题是否存在,确定问题的本质,澄清问题产生的原因,识别与澄清不同的看法,生成与选择可能的解决方案,评估与实施解决方案。认知的调节、认知观和情感态度等非认知
期刊