论文部分内容阅读
在网络时代的冲击下,人们更热衷于自由、对等、高效、安全的使用网络资源,也正是这个原因,逐渐成就了对等网络(Peer-to-peer network,简称P2P网络)。对等网络按照拓扑结构不同可以分为三类:混合式P2P网络,无结构P2P网络和结构化P2P网络。Napster是混合式网络的代表,它仍保留了一些中心结点作为中央索引服务器,用来保存共享内容的目录,其它结点从这些服务器中找到所需数据的存储位置,然后直接从目标结点下载文件,这种组织方式可以很大程度上减轻中心结点的工作量。但是混合式P2P网络无法摆脱C/S模式的瓶颈问题,使得整个P2P网络更容易遭受恶意攻击而崩溃。结构化P2P网络和无结构P2P网络构建中不存在中央索引服务器,每个结点既是客户端,同时也是服务器,相比之下,这种结构更容易扩展,健壮性也更好。其中结构化模型用分布式散列表(distributed hash table,简称DHT)来严格组织数据存储位置和网络结构,这种方式可以大大提高查询效率和准确性,但是由于P2P网络存在高动态性的特点,这种过于严格的结构会降低P2P网络的实用性。而无结构模型将文件随机存放在结点上,这种方式拓扑结构简单,有良好的自适应性和较高的容错性,更适应高动态性的网络环境,所以目前广泛应用的P2P软件主要都是采用这种组织方式。但是无结构网络存在查询效率低的问题,这里可以简单把查询效率理解为查询成功率与查询开销的比值,我们知道无结构网络目前仍普遍采用基于TTL(Time-To-Live,简称TTL)的洪泛查询方法,如果想保证查询成功率,就要使TTL尽量大;但是TTL增大会导致更多的开销,也正是这个矛盾使得无结构网络扩展性不高,限制了自身的发展。对等网络的研究在各个方面已经很深入,在应用上各种模型由于自身的缺陷而受到限制,如何快速、高效地搜索资源,一直是P2P网络实现应用的关键问题。
本文将目光聚焦在P2P网络的搜索机制上,按类别介绍了目前主要的搜索机制,对比其中的优点和不足。并且在前人的基础之上提出一种P2P网络通用的查询方法,基于对历史查询统计和语义分析结果建立了“统计导向表”(StatisticsGuided Table,简称SGT),在结点有查询请求时首先基于SGT的记录,引导查询在最可能获得资源的结点上进行。这种方法是一种松散的查询机制,独立于底层覆盖网络,也就是说当SGT无法满足查询要求时,系统可以自动启用底层的查询方式,如:无结构网络下的洪泛查询方法,结构化网络下的基于DHT的查询方法,等等。并通过主动、被动两种方式更新SGT,逐步优化本地导向表。在更新导向表时,倾向于不增加过多的开销,被动更新采用类似于捎带更新(piggybacking)的做法,而主动更新在查询被满足时单向单次进行。这种方式能避免使用底层查询方式,减少查询导致的网络开销,也能提高底层网络的容错性和健壮性。另外值得一提的是,文本提出的这种算法在更新SGT时对用户的兴趣进行潜在聚类,在查询的时候按照类别选择。在实验部分以无结构网络Gnutella为底层结构进行模拟实验,结果证实了SGT方法是有效的。虽然在模拟实验中,底层拓扑结构选择的是无结构网络Gnutella,但是在进一步的讨论中可以看出SGT方法在结构化P2P网络也能提高系统性能。