分布非结构化P2P网络资源定位研究
- 格式:pdf
- 大小:96.71 KB
- 文档页数:3
P2P 技术在互联网中的应用和分析随着信息技术的飞速发展,基于P2P 的分布式网络资源共享系统逐渐成为用户获取数据信息的重要手段,本文对P2P 技术的结构模式和特点进行描述,对P2P网络应用加以说明,并对未来P2P的发展进行了展望。
标签:P2P 技术网络应用探讨一、引言P2P(Peer-to-Peer)又称为对等网,是近几年非常流行的一种网络技术,和传统的客户机/ 服务器模式不同,P2P 技术依赖网络中所有参与者的处理能力和信息共享,它改变了人们部署网络硬件资源的方式,为网络的发展提供了一种新的思路。
P2P 技术具有良好的扩展性和健壮性,性价比较高,P2P 网络是建立的基础是IP 网络,网络中所有安装特定软件的客户端构成一个逻辑P2P 网络,网络中的资源和应用分布在所有客户端上,各用户之间的数据传输无需服务器的介入就能够直接通信,通过这样的方式,大量的客户资源能够充分得到利用,降低硬件成本和,简化了复杂性。
二、P2P的结构类型P2P 网络的结构主要有三种模式:中央式P2P 网络、无中心结构P2P 网络和混合式P2P网络。
1.中央式P2P中央式P2P 网络在硬件部署上有一个中心服务器,主要负责维护共享资源信息以及对客户端查询信息作出回应。
根据中心服务器提供的功能,又可分为以下三类:1.1服务器提供资源的发现,查询和存储。
这种模式与传统的C/S 模型中一样,所有资源都存放在服务器上,客户端从服务器上获取信息,但客户端之间并不具有信息交换能力。
1.2服务器提供发现和查询。
在这种结构中,客户端存储共享资源信息,服务器则提供索引信息,服务器与客户端、客户端与客户端都可以进行数据信息交互。
1.3服务器仅提供发现功能。
在这种方式下,服务器仅提供在客户端的列表信息,客户端彼此之间建立连接和通信。
如果某个用户需要获取某个资料文件,会根据服务器提供的列表清单,依次查询所有的客户端,直到找到所需的资源,如果没有找到,则返回错误信息。
非结构化P2P网络游戏服务器关键技术研究的开题报告
题目:非结构化P2P网络游戏服务器关键技术研究
一、研究目的:
随着互联网技术的不断发展,网络游戏成为了大众娱乐的主要方式之一。
而传统的游戏服务器架构无法满足日益增长的用户数量和游戏玩法的不断创新,因此,需要研究一种新的游戏服务器架构,以满足不同游戏对服务器性能和稳定性的要求。
本研究旨在探讨非结构化P2P网络游戏服务器的关键技术,以及研究其在实际游戏应用中的可行性和效果。
二、研究内容:
1.非结构化P2P网络游戏服务器的原理和特点
2.基于非结构化P2P网络的游戏服务器的设计和实现
3.非结构化P2P网络游戏服务器的性能测试和优化
4.非结构化P2P网络游戏服务器的可行性和应用效果分析
三、研究方法:
本研究将采用实验研究和案例分析相结合的方法,具体包括以下方面:
1.理论分析:对非结构化P2P网络游戏服务器架构进行分析,探讨其运行机制和特点,以及与传统游戏服务器架构的比较;
2.实验设计:设计非结构化P2P网络游戏服务器的实验环境,包括游戏引擎、网络环境、测试设备等;
3.性能测试和优化:对非结构化P2P网络游戏服务器进行性能测试,识别其运行瓶颈并进行优化;
4.案例分析:以具体的网络游戏为案例,实现非结构化P2P网络游戏服务器,从实际游戏应用中探讨其可行性和效果。
四、研究意义:
本研究将为游戏服务器架构的改进和优化提供新思路和技术支持,为网络游戏产业的可持续发展提供有力保障。
同时,本研究还将对其他分布式系统架构的研究提供借鉴和参考。
2007,43(6)ComputerEngineeringandApplications计算机工程与应用基金项目:国家重点基础研究发展规划(973)(theNationalGrandFundamentalResearch973ProgramofChinaunderGrantNo.2004CB318003)。
作者简介:李运娣,硕士研究生,研究方向:计算机网络与分布式系统;冯勇,研究员,博士生导师,研究方向:分布式计算与混合计算。
1引言P2P(Peer-to-Peer)即对等网技术,近年来随着许多P2P系统的成功应用引起了人们对P2P技术的研究的热潮。
P2P网络是没有任何集中控制的分布式系统,系统中每个结点既是客户机又是服务器,它们在功能上是等同的。
与传统的客户机/服务器模型不同,P2P系统中的文件不是存储在集中的服务器上而是存储在分散的终端结点上,文件直接在终端结点间进行传输。
由于文件是在终端节点间分布保存的,并且没有一个集中的索引目录,因此如何有效地对资源进行搜索定位成为P2P系统研究的核心问题。
2问题描述及目前研究目前P2P系统共有3类模型:非完全分布式的(以Napster为代表)、分布非结构化的(以Gnutella)为代表、基于DHT的分布结构化的(CAN、Chord等)。
由于分布非结构化系统设计简单,节点的频繁加入和离开对系统的影响比较小,同时支持目前流行的关键字搜索。
因此,将来对于P2P大规模的应用来说,改进分布非结构化系统的搜索算法,提高非结构化系统的可扩展性是一个比较好的选择。
分布非结构化网络的典型代表Gnutella设计思想简单,它采用洪泛式的搜索机制,也就是每个节点在查找的过程中将接收到的请求信息转发到所有的邻居节点。
这种搜索方法只能搜索到源节点周围的一个小范围,并且把请求转发到所有的邻居节点会产生大量的消息,从而吞噬大量的带宽而使得系统极不可扩展。
在文献[2]中提出了迭代深入的方法,它是一种逐步进行的宽度优先搜索。
如果能在比较小的深度中找到满意的结果,就可以减少网络中的消息传播量。
在文献[3]中给出了一种前向学习的方法,在这种方法中建议每个节点包含的元数据可以给出哪个节点可能含有应答信息的隐含信息,依据此隐含信息可以来选择节点转发请求信息。
在文献[5]中提出了Gnutella具有Power-law特性,依据这种特性提出了将请求转发到度数较高的节点,度数较高的节点指向更多的节点,包含了较多的信息。
在文献[6]运用本地索引方法,在这种方法中,每个节点不但可以处理本节点,而且可以处理周围一跳或几跳的节点的信息,减少了请求处理的次数。
根据对以上改进算法的学习,考虑P2P网络与神经网络的一些相似性,借鉴反馈神经网络的学习,给出了一种灵活的基于语义路由的前向学习算法。
此算法能动态适应网络变化,提高搜索的效率。
下面对算法进行详细的介绍。
3算法描述由于Gnutella的应答信息是沿请求路径反向传递的,运用其应答信息来建立路由信息表。
在路由信息表中保存着请求信息与应答节点的对应关系,路由表随着节点不停的转发请求信息和得到应答信息而更新。
根据路由表信息,在查找的过程中来动态调整网络的拓扑结构,使得源请求节点向目标节点靠拢。
也就是在查找的过程中,先依照关键字与应答节点的关系库进行查找,如果找到,就开辟相应的新的连接。
这样,整个网络就成为一个依据请求分布的、动态的、灵活的P2P网络。
随着网络的动态调整,使网络中的节点都向着最有利于发现请求分布非结构化P2P网络资源定位研究李运娣,冯勇LIYun-di,FENGYong中国科学院成都分院计算所自动推理实验室,成都610041ChengduInstituteofComputeApplicationAcademiaSinica,ChineseAcademyofSciences,Chengdu610041,ChinaE-mail:liyundi@mails.gucas.ac.cnLIYun-di,FENGYong.StudyofdatalocationinunstructuredP2Pnetworks.ComputerEngineeringandApplications,2007,43(6):156-158.Abstract:TheP2Psystemisadistributedsystem.SohowtolocatetheresourceisanimportantproblemintheP2Pnetworks.Inthispaper,westudytheunstructuredP2Psystems’searchingalgorithmandtherelativeresearch,andgiveasemanticalgorithm.Atlastthesimulationisgiven.Keywords:P2P;Gnutella;searchingmechanism;scalability摘要:P2P系统是一个分布式系统,其中的资源如何进行定位是一个重要的问题。
通过对分布非结构化P2P系统的搜索机制以及现有的改进方法的研究,给出了一种基于语义路由改进算法,并对此算法进行了模拟仿真。
关键词:P2P;Gnutella;搜索机制;可扩展性文章编号:1002-8331(2007)06-0156-03文献标识码:A中图分类号:TP3931562007,43(6)标记(mark)01…0节点信息Gn1IPGn2IP…GnkIP关键字keywords1…keywordskkeywords1…keywordsk………keywords1…keywordsk表1本地路由信息表结果的节点靠近。
因此,如果初次路由失败或没找到足够的结果,将按迭代深度优先的策略进行查找,以便能在较小的几跳中找到满意的结果。
3.1路由信息表的建立在算法中,每个节点维护着一个如表1所示的路由表,路由表中存储着请求关键字与节点的联系信息。
其中标记(mark)信息用来表示该节点最近有没有被访问过,或说该节点最近有没有对请求信息进行了应答,此标记信息是用来作为信息表更新的依据。
在节点信息中保存有节点ID(Gnk节点在Gnutella网络中的唯一标示符)和IP信息,此信息可用来开辟新的连接,以便动态的调整网络结构,使得请求节点向有利于目标的节点进行调整。
关键字存储着通过此节点以前访问的相应的请求信息。
在这里运用了前向学习的方法来建立本地的路由信息表,节点根据对以前转发的请求信息的应答情况来建立自己的路由表。
因为Gnutella中对每个请求,当在网络中的某个节点中找到适合的结果时,该节点就会对源请求节点发送应答信息,并且应答信息是逆着请求信息被转发的路径而反向传递的。
因此,依据这一特性,对每个应答信息,在它被向源请求信息进行转发的路径上的每个节点中记录下请求信息与应答节点的对应关系。
也就是,当一个查找成功时,源请求节点和请求信息成功被应答路径上的所有节点通过在路由信息表中增加请求信息与远程应答节点对应关系来建立路由表。
对于新节点的加入,采用最简单的办法,就是直接根据它加入网络后的邻居节点的信息来建立自己的本地路由信息表。
当一个节点要对某文件进行查找时,节点首先检查自己的路由信息表,在路由表中查找关键字最相接近的节点,然后直接与这些节点建立连接,之后把请求转发到这些节点。
接收到请求信息的节点以同样的方式来转发请求信息。
在路由表中寻找关键字最接近的节点来转发请求信息,这里的关键字最接近是依照匹配度来进行的,把请求转发到匹配度最高的节点。
例如,假定给定这样一个查询,要对关键字A、B和C进行查找,如果某个节点中只含有A或只含B或只含C则说该节点的匹配度为1,如果含有AB或AC或BC则说节点的匹配度为2,如果同时含有ABC则说节点的匹配度为3。
先对本地路由信息表中保存有的关键字进行查找,找到匹配度高的节点来进行查询。
在图1中给出了查找过程。
在查找的过程中,选择了直接开辟连接来进行,这样可以使请求信息根据以前的应答情况跳过一些不大有可能包含有用信息的节点,减少请求信息被转发处理的次数。
请求节点不断的与远程节点建立直接的连接会增加网络中的连接数,但是这些连接是基于过去一段时间内反映请求信息的分布而建立起来的。
这些动态的连接调整,使节点更倾向于向那些网络中比较稳定的和提供信息比较多的节点来建立连接。
这样的网络拓扑结构调整更有利于下一步查询,提高查找的效率。
这样,随着请求的转发,新的连接的建立,网络也会变成一个动态、灵活的P2P网络。
3.2负载平衡控制为了避免在请求过程中某些节点由于开辟连接过多而超载,采用文献[9]中的主动流控制(activeflowcontrol)方法来控制请求过程中新连接的开辟。
在此策略中,仅当被请求建立连接的节点根据自己的状态表示愿意从此请求节点接受请求信息时,新的连接才被建立。
为了更好地进行信息流控制,每个节点中都保有一定的流控制令牌(flow-controltokens),每个令牌表示节点愿意接受信息这一简单的信息,当一个节点向另一个节点请求建立新的连接时,被请求的节点首先检查自己的流控制令牌,如果仍然有流控制令牌,则允许此次连接的建立,同时令牌个数减1,如果流控制令牌个数为0,则拒绝此次连接的建立。
这样就可以避免节点由于接受了过多的连接而超负载的问题。
节点以它能处理消息的速率产生令牌,如果它收到信息的速率大于它传送信息的速率,过多的请求信息就开始排队等待被处理,如果等待队列过长,节点就会减少令牌的产生速率,从而避免节点由于接收过多的连接而引起负载超荷。
查找过程根据流控制策略也要作相应的修改。
当一个节点向另一个节点的请求被拒绝时,则在路由表中按匹配度依次寻找其它节点来建立连接。
3.3路由信息表的更新与维护在每个节点中保存一定大小的路由信息表,信息表是根据节点的前一段时间的学习来建立的,其更新算法如下:假定L为路由信息表,对于每个应答信息,在应答路径上的节点的信息表更新算法如下:ifL.used<L.length(索引表未满)response.messageinsertL;mark=1;endifelseifL.used==L.length(索引表已满)forifrom1toL.length(对插入位置进行查找)李运娣,冯勇:分布非结构化P2P网络资源定位研究1572007,43(6)ComputerEngineeringandApplications计算机工程与应用[2]SrisureshP,KuthanJ,RosenbergJ.Middleboxcommunicationarchi-tectureandframework,RFC3303[R].2002-08.[3]RosenbergJ,WeinbergerJ,HuitemaC.RFC3489SimpletraversalofUserDatagramProtocol(UDP)throughNetworkAddressTrans-lators(NATs)[S].2003-03.[4]RosenbergJ,MahyR,HuitemaC.TraversalUsingRelayNAT(TURN).Internet-Draft[S].2005-09-09.[5]谢希仁.计算机网络[M].4版.北京:电子工业出版社,2003.[6]TheWinPcapTeamhomepage[EB/OL].http://www.winpcap.org.(上接124页)ifmark==0removethisitemresponse.messageinsertL;mark=1;endifendforifi>L.lengthreset;(置所有的mark位为0)重新查找插入位置;endifendeend算法1路由表更新算法在算法1中,在路由信息表的更新过程中,用mark位的值来标志信息表中的某项是否被替换,此准则考虑了条目中保存的路由节点最近是否有过应答信息送回。