P2P网络搜索技术_第1页
P2P网络搜索技术_第2页
P2P网络搜索技术_第3页
P2P网络搜索技术_第4页
P2P网络搜索技术_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章主要内容一、什么是网络搜索三、P2P网络搜索的分类四、集中式P2P网络搜索五、分布式P2P网络搜索六、混合式P2P网络搜索二、P2P网络搜索的评价体系Web 搜索与P2P搜索搜索网页建立索引数据库在索引数据库中搜索排序P2P搜索发现P2P网络中的活跃点与资源与Web搜索不同与P2P网络体系(拓扑)结构紧密相关P2P搜索评价体系P2P网络拓扑分类P2P网络拓扑分布式非结构化分布式非结构化P2P网络拓扑网络拓扑分布式结构化分布式结构化P2P网络拓扑网络拓扑集中式集中式P2P网络拓扑网络拓扑混合式的混合式的P2P网络拓扑网络拓扑1.完全集中式完全集中式研究目标及重点是应用模式从C/S模式向对等模

2、式的转变优点:应用模式消除了应用服务器的瓶颈问题并缓解了应用流量的不均衡性,在目录服务器获取资源索引信息之后的所有数据的交换都是在节点间完成的。简单易部署。可以模糊查询。缺点:单点失效。尽管可以用并行服务器解决。拓扑结构:非结构化、集中式。典型代表:Napster2、非集中式、非结构化、非集中式、非结构化研究目标和重点是去除体系结构上的单点失效问题。对象查询是分布式的。查询是逐跳的,泛洪式直到成功或失败或超时。优点:自组织的管理模式使得整个系统的鲁棒性得以大幅度增强。可以模糊查询。缺点:消息传递(泛洪、回溯等)的资源定位模式制约了网络规模的可缩放性。查询效率低。典型代表:Gnutella、Fr

3、eenet、KaZaA拓扑结构:非结构化、非集中式、无规则分布式拓扑结构示例e.g. NapsterHybrid P2PdirectoryPure P2Pe.g. Freenet & GnutellaContent Delivery NetworksServerDuplicated Servere.g. Akami3、非集中式且结构化、非集中式且结构化需要解决的问题则是如何增强网络规模的可缩放特性。对象查询也是分布式的。使用DHT技术构造结构化拓扑。对象的查询也是逐跳的执行,经过确定的步跳可以确信是成功的。拓扑结构:非集中式、结构化。 如:mesh、ring、d-dimension t

4、orus and butterfly。典型P2P网络如:CAN、Chord、Oceanstore等。优点:在资源管理过程中同时拥有自组织特性、规模的强可缩放特性以及部署的廉价性等等。为规模庞大的资源整合及共享提供了可能性。缺点:节点仅存在局部视图。缺少权威第三方的控制。不支持模糊查询。集中式P2P搜索在集中式P2P网络中,节点以集中式的目录服务器为中介,从而发现对方,集中式的目录服务器上,存储着此网络中所有的节点信息,但不存储资源。集中目录模式最流行,Napster使用群组的Peers连接到发布其能提供共享内容的中心目录上,匹配请求与索引文件直接交换在两个Peers间进行需要一些可管理的设施(

5、目录服务器:记载群组所有参加者的信息)限制了规模的扩大:大量用户增加大量请求-大服务器-存储器然Napster经验表明,除开法律问题外,该模式还很有效和强大IndexIndex1 12 23 35 54 4搜索搜索下载下载Napster运行原理Napster是众所周知的音乐交换系统。每个节点登录到服务器上并发送它们的文件清单,发布查询到服务器上查找哪些节点是它们拥有的想要的文件,并直接与目标节点连接下载文件。支持模糊匹配Napster原理I have X!Publishinsert(X, ).Napster原理Where is file A?QueryReplyse

6、arch(A)-Fetch分布式结构化P2P搜索结构化P2P网络中,每个节点都有固定的地址,整个网络具有相对稳定而规则的拓扑结构。依赖拓扑结构可以给网络的每个节点指定一个逻辑地址,并把地址和节点的位置对应起来。Pastry网络网络CAN网络网络Chord网络网络Tapestry网络网络一种机制,四种网络文档路由模型(Document Routing Model) 这种文件路由模型需要用分布式哈希表(Distributed Hash Tables, DHT) ,这是有结构对等网络采用的搜索方法, 也是有结构和无结构对等网络的根本区别。是确定性的算法。在这种模型下,每个

7、对等体都有一个ID,每个文件有一个关键字Key,当宣告一个关键字为K1的文件时,先通过哈希映射得到对应的K1 ID1 ,然后将该文件存到ID号为ID1 的节点,文件的存放过程需要将文件路由到该节点ID1。反过来,当查找一个关键字为K1 的文件时,先进行哈希映射得到K1 ID1 ,然后将该文件从ID号为ID1 的节点上取到该文件,从该网络中取文件需要将请求消息路由到ID1 节点,然后文件从ID1 节点原路返回。Distributed Hash Table分布式分布式Hash表表分布式应用分布式应用get (key)datanodenodenode.put(key, data)查找服务查找服务lo

8、okup(key)node IP address(文件共享文件共享)(DHash)(Chord)结构化重叠路由加入:开始时,联系一个“bootstrap”节点,加入分布式数据结构,获得一个节点id发布:向数据结构中最近的节点发布文件id的路由信息搜索:向路由表中最近的节点查询文件id,数据结构保证查询会找到发布节点获取:两个选项查询到的节点保存有文件,则从查询结束的节点获取查询到的节点返回结果:节点x有文件,则从节点x获取DHT示例Chord:在一维空间(环)中给每个节点和文件一个唯一的id例如从0.2m中选取通常是文件和IP地址的hash四大结构化模型2001年,SIGCOMM(网络通信顶尖

9、会议)- Chord: Ion Stoica等(Berkeley、MIT)- CAN: Ratnasamy等(Berkeley、AT&T)2001年,其它两个模型- Pastry: Rowstron等(微软、Rice)- Tapestry: 赵燕斌等(Berkeley)4个算法实现文件路由Chord/CAN/Tapestry/Pastry目标相同减少路由到指定文件的P2P跳数减少每个Peer必须保持的路由状态算法异同都保证算法的跳数与Peer群组的大小相关或都指出算法能以高概率完成方法上的差别很小Chord每个Peer保持LogN其他Peer的踪迹(N是群组的全部Peer数)当Peer

10、加入或离开时,高优化算法版本仅需关注LogN个Peers的变化CAN每个Peer保持少于LogN个其他Peers的踪迹在插入和删除时仅这些Peers受影响其路由表较小,但到达的路径较长可能更适合动态通信Tapestry与Pastry很相似除减少跳数外,还积极削减每个P2P跳上的时延Chord 原理实现了这样一种操作:给定一个关键字(key),将key映射到某个节点。如果给对等网络应用的每个数据都分配一个key,那么对等网络中的数据查询问题可以用Chord解决。Chord采用了相容哈希的一种变体为节点分配关键字。相容哈希特点:哈希函数可以做到负载平衡(所有的节点可以接收到基本相同数量的关键字)当

11、第N个节点加入或者离开网络时,只有1/N 的关键字需要移动到另外的位置。Chord 对相容哈希进行改善:每个节点值需要知道关于其他节点的少量路由信息。在由N个节点组成的网络中,每个节点只需要维护其它O(logN)个节点的信息,同样每次查找只需要O(logN)条消息。当节点加入或离开网络时,Chord需要更新路由信息,每次加入或离开需要传递O(log2N)条消息。当节点n加入网络时,为了保持相容哈希映射,某些原来分配给n的后继结点的关键字将分配给n。当节点n离开网络时,所有分配给他的关键字重新分配给n的后继节点。具体实现:利用相容哈希函数,为每个节点和关键字分配m位的标识符。此标识符可用SHA-

12、1(安全哈希算法)等哈希函数产生。节点的标识符通过哈希节点的IP地址产生,关键字的标识符通过哈希此关键字产生。例如:IP: 通过SHA-1哈希后的标识符为123,关键字LetItBe哈希后的关键字为60。标识符长度m必须足够长,这样才能保证两个节点或者关键字哈希到同一个标识符上的概率小到可以忽略不计。相容哈希中,每个关键字都保存到他的后继节点(节点标识符大于等于关键字k标识符的第一个节点)中。我们将其记为successor(k)。Chord:逐跳查找N32N90N105N60N10N120K80“Where is key 80?”“N90 has K80”结点维护一个有m

13、(ID位数)项的路由表,也称“指向表”(finger table),其中第i项指向结点s,s=successor(n+2i-1),1im,即s是在顺时针方向到n的距离至少为2i-1的第一个结点,记做n.fingeri.nodeChord路由表的特点:每个结点只保存很少的其它结点信息,并且对离它越远的结点所知越少Chord结点不能从自己的路由表中看出对象k的后继为确定对象k的后继(k所在的结点),结点n在自己的路由表中查找在k之前且离k最近的结点j,让j去找离k最近的结点,递归查找,最终可以找到对象k的前驱(在k之前离k最近的结点,记做predecessor(k),类似,结点n的前驱记做n.pr

14、edecessor)前驱中必然有后继的路由表项,定位成功Chord结点n的路由各项属性及其定义属性定义fingerk.start(n+2k-1)mod2m, 1ervalfingerk.start, fingerk+1.start).noden.fingerk.start的第一个结点successor后继结点,即finger1.nodepredecessor前驱结点假设结点3要找到对象1的后继在结点3的路由表中,1属于3.erval即7,3)结点3让3.finger3.node即结点0去找1结点0在路由表中发现自己的后继1恰好是对象1的后继,因此将1返回给结点

15、3结点3由此知道对象1放在结点1中Chord:插入N32N90N105K80K20K5Circular ID spaceKey 5Node 105Chord结点加入算法Chord的自适应需要保持两个不变的属性每个结点的后继始终正确对每个对象k,结点successor(k)始终负责k的索引为此,新结点n的加入需要完成几个任务初始化n的前驱和路由表项更新网络其他结点的前驱和路由表项告诉其后继将应该由n负责的数据对象索引传递给n新结点n连接到某个众所周知结点n,通过调用join(n)初始化自己的状态信息,并将自己加入到Chord网络节点失效当节点n失效时,所有在指针表中包括n的节点都把n替换成n的后

16、继结点。为了便于维护正确的后继指针,每个节点都维护一张包括r个最近后继的后继列表,如果节点n的后继节点失效了,就从后继列表中第一个正常节点替换失效节点。Content-Addressable NetworkCAN内容寻址网络可以在Internet规模的大型对等网络上提供类似哈希表的功能,CAN 的设计是完全分布式的,不需要任何形式的中央控制点。CAN 具有很好的可扩展性,结点只需要维护少量的控制状态而且状态数量与系统中的结点数量无关;CAN 支持容错特性,结点可以绕过错误结点进行路由。CAN 基于虚拟的d 维笛卡儿坐标空间实现其数据的组织和查找功能,它将整个坐标空间动态地分配给系统中的所有结点

17、,每个结点都拥有独立的互不相交的一块区域。可以把整个CAN 系统看成一张保存( key,value)对的大哈希表。CAN 的基本操作包括插入、查找和删除( key,value)对。其中key 是对被搜索资源的关键字(如文件名)哈希后的值,而value 则是资源的存储位置( 如IP 地址和目录)。整个CAN 系统由许多独立的结点组成,每个结点保存哈希表的一部分,称之为一个区。此外,每个结点在邻接表中还保存了少量邻接区的信息。对指定关键字的插入( 或者查找、删除)请求被中间的CAN 结点路由到区里含有该关键字的CAN 结点。下图给出了一个2 维的0,10,1的笛卡儿坐标空间划分成五个结点区域的情况

18、。从图1 中可以看到,虚拟坐标空间中的每个区被动态地分配给CAN 中的某个结点,如坐标空间(0. 5 - 1,0. 0 - 0. 5)被分配给结点B。CAN 中的路由实际上就是穿过笛卡儿空间从源坐标到目的坐标的一条直线段路径。在CAN 中,每个结点都维护一张坐标路由表,此表用来存放该结点所有邻居的IP 地址和虚拟坐标区。在d 维坐标空间中,如果两个结点的坐标在d - 1维上重叠而在另一维上相邻接,则称这两个结点是邻居关系。CAN 的路由机制 由此,不难看出,对于d 维的坐标空间,每个结点有2d 个邻居结点,因此每个结点的坐标路由表会维护2d 个邻居的IP 地址和坐标信息。如2 维的坐标空间,每

19、个结点有4个邻居结点,因此每个结点将维护4 个邻居结点的IP 地址和坐标空间。因为每条CAN 消息都包含目的坐标,结点在路由时会将该消息转发给坐标路由表中距目的坐标最近的结点,直到目的坐标。虚拟坐标空间采用下面的方法来保存(key,value)对:当要保存(K1,V1)时,首先通过统一的哈希函数把关键字K1映射成坐标空间中的某个点P 的坐标,相应的(key,value)对即存放在点P 所在区的结点内。当需要查询关键字K1 对应的值时,任何结点都可以使用同样的哈希函数找到K1 对应的点P,并从点P 所在区的结点取出相应的值。如果点P 所在区的结点不是发起查询请求的结点或其邻居,则CAN 负责将此

20、查询请求路由到点P 所在区的结点。因此,在CAN 中,有效的路由机制是一个关键问题。图2 给出了一个路由例子,虚线是点1 到点(x,y)的路由,图2 中还标明了在结点7 加入系统前结点1 的邻居结点集为2,3,4,5。新结点的加入整个CAN 空间是由当前系统里所有的结点来动态划分的。每当新的结点加入时,系统必须为它分配相应的坐标空间。一般的做法是:系统中某个现有的结点将自己的区域一分为二,自己保留一半,将另一半分配给新的结点。整个过程包括:1)新的结点必须找到一个在CAN 中已经存在的结点;2)通过CAN 的路由机制,新结点必须找到一个区域将要被分割的结点;3)进行区域划分操作,并通知被分割区

21、域的邻居有新的结点加入以便在邻居的坐标路由表中包含新的结点。在结点7 加入系统前结点1的邻居结点集为2,3,4,5。首先结点7 找到要划分区域的结点,即结点1;然后,结点1 将自己的区域一分为二,自己保留一半,并将另一半区域分配给结点7;区域重新分割后,结点1 的邻居集变为2,3,4,7,结点7 的邻居集为1,2,4,5。结点离开,恢复当结点离开CAN 系统时,要保证空出的区能移交给剩下的结点。正常的过程是结点明确地将它的区和相关的( key,value)数据库移交给其中的一个邻居。如果某个邻居的区可以合并该区并产生单个有效的区,那么任务就完成了;如果不行,那么就将该区移交给区最小的邻居结点,

22、该结点将暂时负责两个区。正常情况下,结点周期性地发布更新消息给它的每个邻居,更新消息中包含自己和邻居的区坐标列表。如果某个结点在给定时间内未收到邻居结点的更新消息,则说明该邻居结点失效。一旦某个结点失效,则它的每个邻居结点会分别初始化接管算法并启动接管定时器,定时器的大小和该结点拥有的区大小成比例。当定时器超时,每个邻居结点向其他所有邻居结点发送TAKEOVER 消息,消息中含有自己的区信息。每当收到一条TAKEOVER 消息时,每个邻居结点都会做同样的操作:比较自己的区和消息中的区,当消息中的区小于自己的区时,结点会取消自己的定时器,反之则回应自己的TAKEOVER 消息。用这种方法,可以有

23、效地选择区小的存活邻居结点,由这个邻居结点接管失效结点的区。Pastry 原理功能:Pastry网络中每个节点都有一个唯一的节点号(nodeId)。当给定一条消息和一个关键字时,Pastry节点将会把这条信息路由到当前所有的Pastry节点中nodeId和关键字最接近的那个节点。路由过程的复杂度是O(logN),这里N是网络中Pastry节点的总数。目标:Pastry考虑了网络的位置信息,使消息传递的距离最短。距离采用类似于IP路由的hop数的标量距离度量。 采用了启发式的算法,可以使关键字首先路由到在节点空间中与消息产生的节点距离最近的包括查找关键字的节点。Pastry原理节点分配制度Pas

24、try系统中的每个节点都被分配一个128位的节点号。节点号用于在节点空间中标识节点的位置。节点号是在节点加入系统时随机分配的。分配策略是在节点空间中均匀分布。节点号的获取:通过计算节点公钥或者IP地址的哈希函数值来获得。为了进行路由,把节点号和关键字表示为一串以2b 为基的数。Pastry把消息路由到节点号从数值上最接近关键字的节点。具体过程如下:l在每个路由步骤中,当前节点将把消息路由给节点号和消息关键字的共同前缀长度至少比当前值长一个数位(b个二进制位)的节点。l如果不存在这样的节点,消息将传递给前缀长度相同但是节点号更接近的关键字的节点。为了支持这样的路由过程,每个节点必须维护一定的路由

25、状态。Pastry的路由过程当收到一条消息时,节点首先检查消息的关键字是否落在叶子节点的集合中。 是,直接把消息转发给对应的节点,也就是说叶子节点的集合中节点号和关键字最接近的节点。 否,使用路由表进行路由。当前节点把消息发送给节点号和关键字直接的共同前缀至少比现在节点长一个数位的节点。如果路由表对应表项为空,或者路由表对应的节点不可达。这时消息会被转发给共同前缀一样长的某个节点。这个节点从数值上比当前节点更接近关键字。Tapestry原理Tapestry是用于覆盖网络的定位和路由机制,它可以对消息进行位置无关的路由,把消息传递到最近的存放所要求的对象拷贝的节点。特点:自我管理、容错和灵活平衡

26、负载等特点。Tapestry是基于Plaxton提出的定位和路由机制进行优化的。表5-2基于哈希表的路由机制有无法解决的问题。经过哈希后,节点的位置信息破坏了,来自同一个子网的站点很可能节点号相距甚远,这不利用查询性能的优化基于哈希表的系统不能利用应用本身的信息,许多应用(文件系统)的数据本身是按照层次结构组织的,使用哈希函数后,层次信息丢失了TerraDir提出了一种面向层次结构的查询机制。该机制通过缓存机制可以进一步提高查询性能。Chord每个Peer保持LogN其他Peer的踪迹(N是群组的全部Peer数)当Peer加入或离开时,高优化算法版本仅需关注LogN个Peers的变化CAN每个Peer保持少于LogN个其他Peers的踪迹在插入和删除时仅这些Peers受影响其路由表较小,但到达的路径较长可能更适合动态通信Tapestry与Pastry很相似除减少跳数外,还积极削减每个P2P跳上的时延4个算法实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论