基于非结构化p2p网络的搜索方法

文档序号:7919243阅读:277来源:国知局

专利名称::基于非结构化p2p网络的搜索方法
技术领域
:本发明属于网络通信
技术领域
,特别是一种P2P网络资源的搜索方法,可用于在非结构化网络中搜索文档、音乐、电影等资源信息。
背景技术
:近几年来,随着点对点网络技术的进步与发展,基于点对点P2P的网络逐渐成为互联网中最流行的网络之一。在P2P网络中存在着丰富的信息资源,正确高效地搜索信息是P2P系统实现有效的资源共享和协同的关键。当前,应用较广的P2P系统大多为非结构化P2P网络,这是由于其结构较为简单,容易实现,能提供较为灵活的搜索方式。然而,在非结构化P2P网络中,由于网络中站点较多,并且搜索方法多采用盲目的洪泛方式,因此基于非结构化P2P网络的现有的搜索方法搜索成功率较低,网络负载较高,扩展性较差。如何找到一种搜索成功率较高、网络负载较低和扩展性较强的基于非结构化P2P网络的搜索方法成为研究的重点。目前,流行的基于非结构化P2P网络的搜索方法主要有广度优先搜索技术BFS,随机广度优先搜索技术RBFS,定向广度优先搜索技术DBFS和扩展环搜索技术ExpandingRing。其中1、广度优先搜索技术BFS在非结构化P2P网络中广泛应用,Gnutella网络就使用这种技术。网络上的任意一个站点首先根据査询内容生成一个査询消息Query,并将该査询消息发送给网络上与其直接相连的邻接站点。收到该査询消息的站点搜索自身的资源,如果有与査询消息相匹配的信息,则形成一个查询应答QueryHit,并按照査询消息来时的路径发送给源查询站点。如果没有,则不发送。收到查询消息的站点将该消息转发给除发送该消息的站点以外的其它站点。如图1所示,站点a发送一个Query给所有的邻接站点b、c、d,各站点搜索自身的资源,站点b含有所要的信息,则发送Queryffit给a。c、d没有发现所要的信息,就不向a返回消息。然后站点b、c、d再向各自的邻接站点发送Query消息。由于一个站点在收到一条查询消息后,只简单的将该消息向外扩散开去,将査询消息发送给所有站点,因此这种技术使网络中消息的数量呈指数增长,网络负载很高,搜索成功率较低,扩展性较差。2、随机广度优先搜索技术RBFS是BFS的一个改进版本。与BFS的不同之处在于结点在发送Query消息时,会从它的邻居结点中随机的选取一些站点进行发送。这种方法虽然一定程度的降低了网络负载,但是搜索成功率也随之降低了。3、定向广度优先搜索技术DBFS与RBFS—样也是将查询消息发送给邻接站点的一部分,但是不像RBFS那样随机的选择邻接站点,DBFS是根据最近m次的搜索结果来决定选择其中的部分邻接站点。例如可以选择过去产生查询结果多的邻接站点,也可以选择过去返回结果速度较快的站点,等等。因此站点根据统计邻接站点的相关信息,来决定将査询消息发送给哪些邻接站点。这种方法同样也能一定程度地降低网络负载,但是搜索成功率同时也会下降。4、扩展环技术ExpandingRing可以有效地减少标准洪泛查询时产生的网络流量。它通过减少Query消息初始TTL值来达到这一目的。如果源站点发送一个Query消息后,经过一段时间没有得到任何的应答消息,那么就重新发送这个Query消息,不过要稍稍增加Query消息的初始TTL值。这种重复广播査询消息中止的条件是(l)有应答消息返回,(2)Query消息的初始TTL值达到了一个预先定义的最大值。当所查询的文件距离源站点很近时这种方法减少了洪泛广播的跳数,而距离很远或是不可达时则会大大增加网络中的消息量。5、在随机漫步搜索技术RandomWalks中,请求者发出K个査询请求给随机挑选的K个相邻站点。然后每个查询信息在以后的漫步过程中直接与请求者保持联系,询问是否还要继续下一步。如果请求者同意继续漫步,则又开始随机选择下一步漫步的站点,否则中止搜索。此方法虽然减少了查询站点数量,但是査询信息时需要在漫步过程中与请求者保持联系,这将会大大消耗网络资源,导致网络负载加大。
发明内容本发明的目的在于克服上述已有技术的不足,提供一种在非结构化P2P网络中搜索资源的方法,以实现非结构化P2P网络搜索资源的高成功率和低负载的性能。实现本发明目的的技术方案是吸取现有非结构化P2P网络查询方法的各自优点,并对査询中的两个关键参数n和TTL进行最优化的选取,从而构造出一种新的基于非结构化P2P网络的搜索方法,具体步骤如下A.参数确定步骤网络上的任意一个站点根据公式TTL=rOUnd(lognN)+2计算一组TTL值,并按降序排列,TTL为消息包存活时间,N为网络站点数,n为从所有邻接站点m中确定的要发送査询消息包的邻接站点数,11=1,2,3,...且0<n<20;根据公式Load:n^计算出一组网络负载值Load,并按降序排序,n=l,2,3,...i0<n<20;根据公式Priority-ain(F(ld+l)+a2nOXk2+l)计算各组值的优先级,al为TTL的权重因子,a2为Load的权重因子,lq为TTL数组的下标,k2为Load数组的下标;从Priority的多组值中选出最大值,将该最大值对应的n和TTL值确定为最终要发送查询消息包的邻接站点数n和消息包存活时间TTL;B.査询消息步骤网络上的任意一个站点根据査询内容生成一个査询消息,并将该查询消息发送给步骤A所确定的最终要发送的n个邻接站点;收到该查询消息的第j个邻接站点将步骤A所确定的TTL值减j后,对其本站资源进行搜索,lsj、7TL,如果本站有与查询消息包中的关键字相匹配的资源信息,则生成一个査询应答消息,返回给发送该査询消息的站点,否则,将该査询消息转发给除发送该査询消息的站点以外的其它n个邻接站点;如此往复直至TTL值变为0或搜索到所要的资源后停止。上述搜索方法,其中所述的将该査询消息发送给步骤A所确定的最终要发送的n个邻接站点,是在与本站点直接相连的所有邻接站点m中随机选择出n个邻接站点发送査询消息,若;n《/z,则向所有邻接站点m发送査询消息。上述搜索方法,其中所述的收到该査询消息的第k个邻接站点将步骤A所确定的TTL值减k后,对其本站资源进行搜索,是在本站资源列表中査询与查询消息包中所含的关键字相匹配的资源信息。本发明由于对参数n和TTL值进行了最优化的选取,所以搜索过程中目的性较强,查询包数较少。这就使得本发明拥有了较高的搜索成功率、较低的网络负载和较强的可扩展性。仿真结果表明,采用本发明在非结构化P2P网络中进行搜索,其搜索成功率在95%以上。图1是现有BFS的搜索过程示意图2是本发明的搜索流程图。具体实施例方式参照图2,本发明的搜索步骤如下(1)网络上的任意一个站点根据公式TTL=round(lognN)+2计算一组TTL值,并按降序排列,TTL为消息包存活时间,N为网络站点数,n为从所有邻接站点m中确定的要发送査询消息包的邻接站点数,n=l,2,3,...且0<n<20,所述的TTL公式通过对实验数据统计分析得到,即通过网络仿真软件对搜索过程进行仿真,得到不同网络规模下的n、TTL和搜索成功率。这些数据表明如果要保证95%以上的搜索成功率,则n和ITL满足TTL=round(logN)+2;(2)根据公式Load=111^计算出一组网络负载Load值,并按降序排序,n=l,2,3,...且0<n<20,所述的Load-n^L是根据图论中的网络全覆盖理论得到的,假设网络为全连接状态,并且每个站点的邻接站点数为n,则网络中的查询数据包以n的倍数向前洪泛TTL次的表达式为n1^,即为覆盖全网络的搜索带来的网络负载;(3)根据公式Priority-ain0^k"l)+a2n(P(k2+l)计算各组值的优先级,al为TTL的权重因子,a2为Load的权重因子,ld为TTL数组的数组下标,k2为Load数组的数组下标,所述的Priority-al*10*(1^+1)+&2*10*&2+1)是数学中计算优先级的通行方法;(4)从Priority的多组值中选出最大值,将该最大值对应的n和TTL值确定为最终要发送査询消息包的邻接站点数n和消息包存活时间TTL,例如,N=21(J,n=3,4,5,6,8,10时对应计算出的TTL值分别为8,7,6,6,5,5;Load值分别为6561,16384,15625,46656,32768,100000;假设我们认为ITL和网络负载Load同样重要,即al=0.5,a2=0.5;通过公式Priority-ain(^(ki+l)+a2n0、k2+l)计算得到的最大的Priority值对应的n=5,TTL=6。(5)网络中的任意一个站点根据査询关键字生成査询请求消息包,并将TTL值封装进消息包。(6)网络中的任意一个站点从邻居站点列表中的m个邻居站点中随机选择最终要发送的n个邻接站点,并将所述的消息包逐个发送给这些邻接站点,如果选择最终要发送的邻接站点数大于邻居站点列表中的所有邻接站点,即i^m,则向所有邻接站点发送消息包,发送方式可以采用UDP或者TCP方式。(7)收到査询请求消息包的第j个邻接站点先将査询消息包拆包,然后将TTL值减j,防止消息包在网络中无限转发;(8)收到消息的邻接站点先取出消息包中所包含的查询请求关键字,然后对本站资源进行搜索,确定是否有与査询请求关键字相匹配的信息;如果有与查询消息相匹配的信息,则返回查询成功消息包给上一站点;否则,将查询消息包发送给从邻居站点列表中选取的除发送站点外的n个邻居站点。(9)重复步骤7至步骤8直至TTL值为0或者搜索到与査询消息包中的关键字相匹配的资源。本发明的效果可以通过以下的仿真进一步的说明1.仿真条件选用PEERSIM仿真软件对本发明的搜索过程进行仿真。每次试验重复20次,实验结果为平均值。2.仿真结果,如表1和表2。表1各网络规模下计算得到的各项参数值<table>tableseeoriginaldocumentpage7</column></row><table>表1给出了基于本发明中的算法计算得出的平均搜索成功率、平均跳数和平均网络负载。从表1中可见,基于本发明的平均搜索成功率都在95%以上,同时平均跳数和平均网络负载都较低,这说明基于本发明的网络査询具有较高的搜索成功率、较低的网络负载和较高的可扩展性。表2站点规模为21()条件下测得的数据<table>tableseeoriginaldocumentpage8</column></row><table>表2给出了基于本发明中的算法计算得出的当规模N-2W、TTL权重因子和网络负载的权重因子均为0.5时,指定不同的n和TTL,分别测得对应的平均搜索成功率、平均跳数和平均网络负载。从表2中可见,当n和TTL值分别为基于本发明中的n和TTL的选取方法选出的值,即n=5,TTL=6时,平均搜索成功率为98.1%,平均跳数为5.001,平均网络负载为19386.893。综合考虑平均搜索成功率和平均网络负载,我们可以得到n=5,TTL-6为最优的一组参数值。以上仿真试验和数据表明,本发明具有较高的搜索成功率、较低的网络负载和较强的可扩展性,其搜索成功率可达95%以上。权利要求1.一种基于非结构化P2P网络的搜索方法,包括如下步骤A.参数确定步骤网络上的任意一个站点根据公式TTL=round(lognN)+2计算一组TTL值,并按降序排列,TTL为消息包存活时间,N为网络站点数,n为从所有邻接站点m中确定的要发送查询消息包的邻接站点数,n=1,2,3,...且0<n<20;根据公式Load=nTTL计算出一组网络负载值Load,并按降序排序,n=1,2,3,...且0<n<20;根据公式Priority=a1*10*(k1+1)+a2*10*(k2+1)计算各组值的优先级,a1为TTL的权重因子,a2为Load的权重因子,k1为TTL数组的数组下标,k2为Load数组的数组下标;从Priority的多组值中选出最大值,将该最大值对应的n和TTL值确定为最终要发送查询消息包的邻接站点数n和消息包存活时间TTL;B.查询消息步骤网络上的任意一个站点根据查询内容生成一个查询消息,并将该查询消息发送给步骤A所确定的最终要发送的n个邻接站点;收到该查询消息的第j个邻接站点将步骤A所确定的TTL值减j后,对其本站资源进行搜索,1≤j≤TTL,如果本站有与查询消息相匹配的资源信息,则生成一个查询应答消息,返回给发送该查询消息的站点,否则,将该查询消息转发给除发送该查询消息的站点以外的其它n个邻接站点;如此往复直至TTL值变为0或搜索到所要的资源后停止。2.根据权利要求1所述的搜索方法,其中所述的将该査询消息发送给步骤A所确定的最终要发送的n个邻接站点,是在与本站点直接相连的所有邻接站点m中随机选择出n个邻接站点发送査询消息,若m《",则向所有邻接站点m发送査询消息。3.根据权利要求1所述的搜索方法,其中所述的收到该査询消息的第k个邻接站点将步骤A所确定的TTL值减k后,对其本站资源进行搜索,是在本站资源列表中查询与査询消息包中所含的关键字相匹配的资源信息。全文摘要本发明公开了一种基于非结构化P2P网络的搜索方法,其搜索过程是网络上的任意一个站点首先根据公式TTL=round(log<sub>n</sub>N)+2、Load=n<sup>TTL</sup>分别计算一组TTL值和网络负载值Load,并计算各组值的优先级;将优先级的多组值中的最大值对应的邻接站点数n和消息包存活时间TTL值确定为最终参数;然后根据查询内容生成一个查询消息,发送给所确定的最终要发送的n个邻接站点;收到该查询消息的第j个邻接站点将TTL值减j后,搜索本站资源,如果本站有要查询的消息,则返回给发送站点,否则,将该查询消息转发给其它邻接站点;如此往复直至TTL值变为0或搜索到所要的资源后停止。本发明具有搜索成功率高和网络负载小的优点,可用于在非结构化网络中搜索文档、音乐、电影等资源信息。文档编号H04L12/58GK101364958SQ20081015083公开日2009年2月11日申请日期2008年9月5日优先权日2008年9月5日发明者星张,段振华,磊汪,磊王申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1