论文部分内容阅读
非结构P2P网络由于取消了中央目录服务器,可有效解决网络结构中心化的带来的瓶颈问题,具有较好的网络可维护性和容错性。但同时由于资源的完全分布性和网络的动态自组性,也使其资源搜索技术成为新的应用瓶颈。目前应用在P2P网络中的搜索算法多基于洪泛广播,而占用过多网络带宽、搜索效率低是洪泛广播带来的普遍问题,也是各种改进的智能搜索算法主要关注点。
蚁群算法已在路由优化方面得到了很好的应用,本文在此基础上,将其应用到P2P网络资源搜索中,提出了一种基于蚁群算法的非结构化P2P网络资源搜索算法。该算法通过合理的搜索路径和搜索节点的信息素定义,保证搜索算法的搜索效率;针对节点的动态性可能造成的已获取的路径失效而导致的搜索失败的问题,算法给出了一种路径优化选择方法,可有效避免对失效路径的使用。同时,算法充分利用了P2P网络所具有的幂律特性和搜索局部性原理,即一方面,虽然理论而言P2P网络节点之间的关系是对等的,但事实上P2P网络仍具有明显的幂律特性,即网络中只有少数节点掌握着较多的受欢迎资源,而大部分节点只含有极少能被访问的资源或者根本不包含资源,成为所谓的低效节点;另一方面,P2P网络资源搜索行为具有某种相似性,或者说遵循局部性原理,即在某一搜索时段,会有大量用户对某种特定资源的搜索兴趣较高,相应的资源成为所谓的搜索热点。
算法的具体设计,首先是将网络中的节点进行分类,将经常提供资源的节点称为有效节点,而那些很少提供或者提供恶意资源的节点称为低效节点。相对应地,将节点的信息素定义为节点上资源访问的成功率,并以此作为资源搜索过程中节点的选择依据,避免对低效节点的访问;同时以节点间的通信次数为基数定义路径信息素,以此衡量路径的稳定性,避免对不稳定路径和节点的访问。此外,根据P2P网络所具有的幂律特性和搜索局部性原理,提出了资源主动声明机制,对近期经常被访问的资源进行主动声明,以实现对资源信息的直接定位,进一步提高搜索效率。
为验证论文所提出的搜索算法的有效性,论文进行了基于GridSim的算法仿真实验。仿真结果表明,与常用的洪泛算法和Chord算法相比,论文所提出的搜索算法在查询次数、查询命中率等方面都有明显优势。