基于Gnutella协议P2P搜索改进算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Gnutella协议P2P搜索改进算法

基于Gnutella协议P2P搜索改进算法   摘要:在分析了前人提出的基于索引机制的路由算法的基础上,对该算法进行改进,弥补了原算法在指引查询时不能保证查询消息可达性的缺点。采用缓存查询返回消息的策略来提高重复查询的效率,从而提高了搜索的效率和效果。   关键词:对等网;非结构化;Gnutella??   中图分类号:TP391; TP301.6文献标志码:A   文章编号:1001-3695(2008)01-0108-03      1Gnutella协议??      1.1Gnutella 网络协议体系??   在Gnutella分布式对等网络模型中,每一个联网计算机既是客户机同时又是服务器,因此被称为对等机(servent)[1]。它通过与相邻对等机之间的连接遍历整个网络。Gnutella协议定义了网络中这些对等机间通信的方式,是工作于TCP协议之上的应用层协议。该协议包括对等机间通信描述符集(服务原语集)和相应的通信规则集。一台新对等机通过与当前处于Gnutella网络中的另一台活动对等机建立一个连接,从而将自己连入Gnutella网络。??   1.2传统Gnutella协议的查询机制??   传统的Gnutella网络采用洪泛式(flooding)的查询机制[2]。Gnutella网络的查询机制总结如下:??   a)Gnutella 网络上的任一台主机在需要查询资源时,先根据查询的内容形成一条查询消息(query消息)。??   b)查询源主机将该query消息发送给网络上与其直接相连的其他主机。??   c)收到query消息的主机搜索自身的资源。如果有与查询消息相匹配的资源,则形成一个queryHit消息,按照query消息来时的路径发送给源查询主机;如果没有,则不发送。??   d)收到query消息的主机将该消息转发至除发送消息的主机以外的其他主机。??   e)重复步骤c)d)。??   举例说明,如图1所示。当Gnutella网络中某一主机节点A想要查询abc.doc资源时,首先生成查询消息query(abc.doc)。节点A会将该查询请求发送至与它直接相连的主机B、C、D。主机B、C、D收到该查询后,检查到自己没有符合该查询的资源则再将该查询消息转发给主机E、F。主机E、F收到该查询消息后,E主机检查到自己有符合该查询所需的资源,则形成一个queryHit消息,按(E、C、A)的路径返回给主机A;然后再将查询消息query(abc.doc)转发至除C以外的其他邻居节点,达到继续搜索资源的目的。??   Gnutella传统的查询机制是存在问题的。由于其采用洪泛机制传递消息,随着网络规模扩大,流量急剧增加,导致网络拥塞。根据Clip2 公司最近的研究显示,56 kbps modem 用户最多处理查询消息20个/s。当网络节点大于1 000 时,处理极限被突破。随着这部分节点失效,Gnutella 网络被分片,使查询访问只能在网络很小一部分进行,导致网络可扩展性下降。??   如何管理网络连接,实施高效的搜索算法,减少冗余消息,提高搜索的查准率,解决Gnutella 网络的可扩展性,对Gnutella网络的进一步发展至关重要。??      2基于索引机制的路由算法及其改进??      2.1传统索引机制路由算法??   传统算法使节点在传播查询消息期间积累经验来为以后传播查询提供指导。其经验值[3~6]主要包括:通过此节点成功到达的资源的次数;资源到此节点为止所经过的路径节点,用来指导下次查询。??   为了实现以上功能,引入本地资源索引表(LIT)和路由索引表(RIT)对节点进行管理。图2所示的网络拓扑图对应的路由索引表如表1所示。 ??      表1中,行表示关键字;列表示节点A的邻居节点。Ki为节点A过去一段时间内所查询的关键字。其中(Ki,B)的值为m??1,表示通过节点B成功查询到Ki的次数为m??1。例如(K??1,B)的值为4,表示通过节点B成功查询到K??1的次数为4。这里“通过节点B成功查询到K”有两种情况:一是节点B本身是查询的目标节点;二是节点B是查询的中间节点。此方法虽然能够指导查询消息向更加有效的邻居节点进行转发,但当查询消息的TTL值低于该路径到达资源节点的TTL值时,查询消息将不能到达资源节点。??   2.2改进后的路由索引机制算法??   为了方便说明,给出相似查询的定义,即两个查询消息所要请求的资源相似。这样的查询为相似查询。??   本文在上述工作的基础上,所做的改进工作主要包括两个方面:??   a)在传统算法提出的路由索引表的基础上进行改进。由于原表仅记录了通过邻居节点成功查询到关键字的次

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档