欢迎来到天天文库
浏览记录
ID:25946019
大小:58.50 KB
页数:8页
时间:2018-11-23
《基于节点兴趣的非结构化p2p网络资源搜索算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于节点兴趣的非结构化P2P网络资源搜索算法基于节点兴趣的非结构化P2P网络资源搜索算法 1引言 P2P网络中最关键的问题是如何高效地搜索资源。当节点在自身找不到想要的资源时,就会发出搜索请求,搜索过程涉及消息形式、请求转发方式、转发节点选择、节点局部索引等方面。 不同网络结构可能会采用不同的搜索方法。当前的P2P网络可以分成两大类:结构化和非结构化。非结构化网络因其简单和健壮性获得广泛应用,Gnutella是其中的典型模型。 2改进的搜索算法 一个节点需要的资源,更可能在本文由.L.收集整理跟自己兴趣相似的节点中搜索到。如果在某个节点成功搜索到需要的资源,说明两节点兴
2、趣相似,下次该节点成功搜索的可能性会也提高。基于这个思想,在Gnutella的搜索模型上,提出了基于节点兴趣和搜索经验的资源搜索算法。 2.1相关概念 定义1元数据:对一个资源的描述,通常包括资源的唯一标识(通常为资源的Hash值)、属性(如标题,作者,创建时间,关键字等)以及资源的存储位置。在搜索算法中,对资源的搜索转化为对元数据相关数据的搜索。 定义2假设P2P系统中包括n个节点,记为P1,P2,,Pn,N={P1,P2,,Pn} 定义3邻居节点:如果一个peerPi和另一个peerPj直接相连,那么它们互称为邻居节点。 定义4朋友节点:如果一个peerPi和另一个
3、peerPj有相似的兴趣,那么它们互称为朋友节点。 定义5兴趣相似系数用来描述节点间的相似性。系数越高,节点相似性越高。定义为: (1) 其中≤1) (2)对任意节点Pi和Pj,S(Pi,Pj)=S(Pj,Pi)。 定义6捷径节点:如果一个peerPi和另一个peerPj既是邻居节点优势朋友节点,那么它们互称为捷径节点 2.2分组策略 改进的搜索算法,根据节点间网络拓扑和兴趣相似度的关系,将节点分组为邻居节点、朋友节点以及捷径节点。 2.2.1建立邻居节点 邻居节点的划分采用了底层搜索机制来发现邻居节点。这里的邻居节点直接连接并非指应用层的路由,而是实际网
4、络层中的路由距离,可以避免应用层中路由的一跳在实际网络层相距较远的情况出现,也更加接近实际网络拓扑结构,能获得更加有效的路由。 建立邻居节点步骤: (1)当节点Pi加入P2P系统时,它不存在关于其他邻居节点的任何消息,而其他邻居节点也不了解它的共享资源,因此Pi首先根据自己的共享资源建立本地信息表,并且当本地共享资源有变化(加入或者删除)时要对本地信息表进行更新。 (2)Pi根据网络的规模选择一个合适的TTL值发出Ping命令,主动探测与自己相通的节点; (3)收到该消息的节点Pj,PkPm将返回应答消息。应答消息包含返回消息经过的跳数Hop和返回消息的节点IP,以及返回
5、消息节点的本地资源信息表; (4)节点Pi将根据收到的应答消息中的Hop和收到消息的时间进行排序。Hop越小则说明应答节点与Pi越接近。根据网络规模Pi选择一定数量Hop较小(一般取Hop=1)的节点作为邻居节点。 (5)节点Pi向选择的邻居节点发送消息。邻居节点根据收到消息的时延等因素决定是否将其作为邻居节点。 2.2.2建立朋友节点 在保证消息的转发是在沿着实际距离位置上尽可能短的距离上进行的基础上,消息应该尽可能转发给最有可能存储查询资源的节点,因此查询消息要转发给兴趣最相似的节点。 建立朋友节点的步骤: (1)如果节点Pi是新加入的节点,在建立邻居节点时,根据
6、其他节点返回的本地信息表,可以计算出其他节点与Pi的兴趣相似度。根据兴趣相似度将节点排序,根据网络规模取一定数量的相似度较高的节点作为朋友节点。 (2)节点Pi将与其他节点的兴趣相似度发给对应的节点。其他节点根据其相似度决定是否将Pi作为自己的朋友节点。 (3)将所有的朋友节点按照兴趣相似度和查询历史排序。当有新的节点加入时则将排在最后面的节点删除,再加入新的朋友节点。 2.2.3建立捷径节点 节点的捷径节点就是那些与节点距离最近、兴趣相似的节点,即邻居节点集和朋友节点集的交集。 2.3搜索机制 节点进行资源搜索的过程就是查询消息在网络中进行路由的过程。进行搜索的依据
7、就是节点维护的路由信息和采用的路由策略。节点按照分组不同收集和保留一定的路由信息,使得路由尽量选择距离最近且兴趣最相似的节点。 2.3.1节点路由信息 (1)节点Pi加入系统后,建立邻居节点、朋友节点和捷径节点,然后建立相应的邻居节点、朋友节点和捷径节点的索引表。 (2)在节点进行查询时和节点共享资源更新时动态地维护索引表。 邻居节点、朋友节点和捷径节点的索引表都有相应的大小L1、L2和L3(一般L3<l1,l3<l2),而随着时间推移,节点间相互关系也会有相
此文档下载收益归作者所有