904953406P2P软件的实现系统设计 毕业论文.doc
-
资源ID:3931189
资源大小:594.50KB
全文页数:89页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
904953406P2P软件的实现系统设计 毕业论文.doc
摘要Peer-to-Peer网络毫无疑问是当今的热点技术主题。Napster和Gnutella的广泛使用证明了peer-to-peer应用的强大潜力。P2P(或者说peer-to-peer)网络是一种基于操作上下文的网络模型,任何一个节点都同时作为客户机和服务器。JXTA致力于为P2P应用提供一个P2P平台基础。其中包括一系列独立于语言,平台和网络技术之外的协议。这些协议解决了P2P应用的基本需求。协议的设计目标是简单并且低成本。本论文设计探讨了P2P网络的结构和JXTA的基本知识,并利用JXTA开发出一个组内聊天和共享文件的软件。关键词: P2P,Peer,PeerGroup,Advertisment,XML,JXTA,CMSABSTRACTPeer-to-Peer (P2P) network is a hot topic in technology in recent years. The wide use of Napster and Gnutella demonstrated the powerful potential in application of P2P. The P2P network is a model of network which based on the environment of operation, and each node can work as client and serve at the same time. JXTA offers a basic platform for the application of P2P. And it includes a series of treaties which independence from languages, platform and technique of network. These treaties can meet the basic requirement of the application of P2P。The aim of these treaties is compact and the cost must be low. This article has discussed the structure of P2P network and the basic knowledge of JXTA, and developed a software for chat and share documents in a group from JXTA technique.Key words: P2P,Peer,PeerGroup,Advertisment,XML,JXTA,CMS目 录第一章 绪论-11.1 P2P发展简史-11.2 P2P应用程序的用武之地 -41.3 P2P技术的动力 -5第二章 P2P体系结构-62.1 P2P网络-72.2 P2P如何形成动态网络-92.3 节点自制-142.4 支持混合模型-15第三章 JXTA技术-203.1 JXTA是什么-203.2 JXTA的概念-223.2.1 Peer(对等机)-223.2.2 Peer Group(对等组)-233.2.3 Endpoint(端点)-233.2.4 Pipe(管道)-243.2.5 Advertisement(广告)-253.2.6 Message(消息)-263.2.7 Rendezvous Peer(集合点)-263.2.8 Router Peer(路由Peer)-283.29 Gateway Peer(网关Peer)-283.3 用于通信的Peer-293.3.1 防火墙-293.3.2 NAT(网络地址转换)-293.3.3 代理服务器-303.3.4 DHCP(动态IP分配)-303.3.5 网络的不稳定-313.3.6 网关问题-313.4 Peer和对等组-323.4.1 Peer和用户的关系-323.4.2 对等组的必要性-323.4.3 JXTA应用程序与对等组-343.4.4 对等组的成员资格-343.4.5 对等组的服务-353.5 广告(Advertisement)-373.5.1 广告的类型-373.5.2 模块(Module)广告-413.5.3 管道广告-513.5.4 端点路由消息-523.5.5 消息(Message)-533.6 JXTA Content Manage Service(CMS)- -543.6.1 CMS概述-543.6.2 CMS简单搜索-55第四章 P2P软件设计-564.1 需求分析-564.2 类设计-564.3 程序运行效果-65第五章 结论-67参考文献-68致谢-69附件-70第一章 绪论最近,P2P(Peer-to-Peer)又成为了因特网上的一个热点。P2P是因特网的一种应用模式,其意思是指网络上的任何设备(包括大型机、PC机、PDA、手机、机顶盒等等)都可以平等地直接进行连接并进行协作。相比当前因特网上主流的应用模式Client/Server或者Client/Service而言,P2P具有自己鲜明的特点和优势。P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、实现"非中心化",并把权力交还给用户。1.1 P2P发展简史P2P并不是一个新的概念,早在1969年因特网的前身ARPANET刚出现的时候,网络的应用模式就是P2P,ARPANET的最初目的是在全美国范围内共享计算机资源,其所面临的挑战是如何集成当时各种不同的网络,使之成为一个通用的网络,并且使得各个主机成为网络上平等的成员。ARPANET是以一种平等的计算Peer的方式把这些计算机系统连接起来,而不是用Master/Slave或者是Client/Server的方式连接。早期的因特网比现在的因特网更加开放和自由,例如在20世纪80年代之前,人们从未听说过防火墙的概念。就通常意义而言,当时的网络上任意两台计算机都可以给对方发送网络包,网络就是人们进行协同研究工作的场所,不需要提防任何东西。后来因特网上出现了FTP和Telnet这样的比较受欢迎的应用程序。虽然它们单个的应用程序都是Client/Server方式的,但是整体上的使用模式却是对称的。网络上的每台主机都可以FTP或者Telnet到其他主机上,同时自己也可充当服务器。DNS是另一个仍在使用的P2P的经典例子,DNS的作用就是把因特网的域名和IP地址进行映射,最早的时候这个映射是保存在一个大文件中的,并在因特网上进行复制。随着因特网规模的增大,必须采用一种方式来进行域名数据的共享。DNS提供了一种实现文件共享的解决方案,采用了层次性的信息归属办法,即我们通常所说的域名层次。DNS之间可以相互交换域名信息,这个时候,每个DNS也可能是服务器(接收其他DNS的请求),也可以是客户端(向其他DNS发出请求)。从1995年开始,随着PC机的广泛使用并接入因特网,成千上万的人挤到因特网上,他们使用因特网的方式是发送电子邮件、浏览网页并在网上购物,这些现象已经长远地影响到了网络架构的发展,也直接影响了P2P应用程序的发展。这种变化改变了人们使用网络的方式,出现了许多新的情况,例如网上协作的崩溃、防火墙的大量使用,产生了许多非对称的网络连接方式,比如说ADSL和Cable Modem。20世界90年代末期,因特网发展的另一个趋势也对P2P应用程序带来新的挑战,那就是非对称网络连接的发展。网络供应商为了得到更高的效率而决定提供非对称的带宽,往往是下行带宽非常大而上行带宽非常小,ADSL和Cable Modem的下行/上行带宽往往相差38倍。这种用法的根源在于Web是因特网的主要应用,绝大部分用户仅仅是Web的客户机,而不是服务器。即使有部分用户想发布自己的网页也不会通过家庭宽带连接的方式来实现,而是通过第三方提供的专用服务器来发布。现在的问题在于P2P应用程序正在改变原有的假设:网络用户仅仅想从因特网下载东西,而不会上载信息。Napster和Gnutella等文件共享应用程序颠倒了带宽的使用方式,使得计算机提供的文件比它下载的文件还要多,要求的上行带宽要比下行带宽大。但是现有的网络架构并不能很好地满足要求,而且更糟糕的是,由于TCP协议对速度的控制,一旦上行通路被堵塞,下行通路也会受影响,所以如果某台计算机正在通过慢速的上行通路给其它计算机提供文件服务的话,那它就不可能同时在快速的下行通路上下载文件。因此P2P应用程序在非对称带宽的网络并不能够很好地运行,一旦P2P程序广泛流传,网络基础架构就应该变得易于处理这种新的网络流量模式。从2000年开始,一个能够在网上进行音乐文件共享的名为Napster的P2P程序在网上广泛流行,吸引了广大网上乐迷的注意力,短时间内就吸引了成千上万的用户,原因在于用户可以下载MP3音乐文件。Napster应用模式与通过FTP下载文件不同,FTP是把所有的文件都集中到服务器上,所有的拥护都到该服务器上下载文件,其缺点是当用户连线众多时会造成服务器工作繁忙、带宽拥挤、下载速度变慢,而且所共享的文件仅仅限于服务器上的文件;而Napster上所有的共享MP3文件都是由用户提供的,种类繁多,而且所有的文件都保存在用户的计算机上,Napster提供了一个服务器来保存所有用户提供的MP3文件的目录以及其计算机的地址,当某个用户需要下载MP3文件时,他通过服务器查询到所需要的MP3文件所在的计算机地址的列表,由于同一个MP3文件在许多不同的计算机上都有副本,该用户只需要从任意一台计算机上下载就可以了。这种用户之间通过P2P的访问来进行文件共享的方式有许多优点,首先是不会有带宽问题,因为大量的文件数据都是通过用户之间的计算机来进行交换的,不存在集中的服务器的带宽拥挤问题;其次是共享的文件内容是无穷无尽的,因为每个用户都可以在自己的计算机上共享个人MP3音乐文件,非常方便,不需要把文件上载到FTP服务器上;再次是不需要一个庞大的服务器,充分利用了资源。因为一般的FTP服务器都需要有很大的硬盘来保存共享的文件,而Napster利用的是用户计算机上闲散的存储资源。Napster也有服务器,但是其巧妙之处在于服务器上只保存共享文件的地址信息,所占用的存储资源相对很少,而把占据大量存储资源的MP3文件保存在用户的计算机上;另一个巧妙之处在于文件的交换是P2P方式的,不需要通过服务器尽心,解决了带宽拥挤的问题。但是,非常不幸的是,由于Napster共享的是MP3音乐文件,虽然其初衷是让音乐发烧友们交换合法的MP3音乐文件,可是这种行为最终触及了音乐唱片公司的利益,世界各大音乐唱片公司联合把Napster告上了法庭,而且由于Napster提供的服务上共享了MP3音乐文件的目录信息,此种情况作为重要论据使Napster在法庭上处于不利地位,导致最后的败诉。终于,风靡一时的Napster就此退出历史舞台,但是其巧妙的P2P应用模式和短时间内急剧增长的用户数量还是给人们留下了深刻的印象,为后续的P2P文件共享应用奠定了基础。与此同时,QICQ和QQ等国内外即时聊天应用也迅速在国内流行起来,个人拥有一个QQ帐户就相当于拥有一个手机号码一样,只要用户在自己的计算机上安装了QQ的客户端软件并进行登陆,就可以与因特网上任何一位安装有QQ客户端软件的拥护进行文字聊天。实际上QQ的实现机制与Napster系统非常类似,用户通过客户端软件把自己的帐号和计算机地址登记到服务器上,并通过服务器查找其他在线的用户帐号和地址,然后直接进行聊天。可以说,即时聊天是一种非常典型的P2P应用,而且在现实中也取得很大的成功,受到全世界许多用户的欢迎。由于文件共享和即时聊天等P2P应用程序的成功,越来越多的程序员在因特网上开发他们的P2P程序,越来越多的用户在使用P2P应用程序。1.2 P2P应用程序的用武之地现在,让我们来考虑一下今天的桌面计算机用户希望使用哪些不同类型的应用程序。除了Web浏览和办公软件外,桌面计算机用户还希望计算机能提供如下功能: 管理和共享信息:这些信息包括用户希望与商业伙伴、朋友和同事共享的所有文件、文档、图片、音频、视频和电影等。通过信息收集和编排功能,更先进的共享机智机制能使一台计算机扮演通用任务管理器的角色比如,G就是分布式任务管理器系统的一个例子,而Gnutella是个人P2P文件共享系统的一个例子。 协作:PC用户发现地址簿、日程安排、聊天和E-mail等软件工具提高了他们的工作效率。通过将桌面工具软件连接在一起使得协同工作的电子商务团体能形成灵活、强大而有效的工作小组,例如JAVA开发人员使用OpenP协同工作。而在更大范围内,成千上万的用户使用实时通信工具,这可能是目前最为流行的P2P应用程序了。 企业资源管理:企业内协同工作流程提高了由连接到网络上的桌面计算机系统所组成的企业网络环境的处理能力。例如,Groove使得一个航空业制造商能将工作订单请求发送到伙伴公司,并将已经完成的请求从一个部门发送到另一个部门。 分布式计算:通过分散化方法实现互联网健壮性理念的一个自然扩展是设计P2P系统,这个系统将计算任务转送到数以百万计的服务器上,而任何一台这样的服务器都可能是一台台式计算机。尽管P2P还处在初始发展阶段,但已经出现了很多能满足用户所有上述功能需求的P2P应用程序。随着人们对P2P技术优越性认识的深入,将来可能会有更多的使用P2P技术开发的应用程序。1.3 P2P技术的动力商业和技术方面的三个主要因素促使人们采用P2P技术。分散化:越来越多的企业已经通过采用灵活的企业结构实现了更高的效率和效益。因此,最近几十年中,企业领导人一直致力于企业的分散化。我们已经经历了从大型主机模型到客户/服务器模型,再到互联网计算模型的变迁,直到今天的P2P模型的变迁。这个发展趋势不可否认地实现了离散化和分布化。费用和效率:软硬件的价格会越来越低,而处理能力却会越来越高。能提高生产效率或软硬件使用率的新系统将成为企业投资的首选。P2P具备充分利用以前未被利用的资源的能力。普及应用的计算:我们可以想象,信息系统在现代社会中无所不在:衣服、工具、汽车和设备,任何你能想象的东西中都存在着计算机芯片。信息系统不仅无所不在,而且它们之间是互连的。网络连接设备的市场一直在持续增长,而P2P系统正是被设计用于支持这个市场的。随着企业逐步推进其电子商务进程,他们会更加深入地认识到连接交易流和通信流的必要性。同样,他们也会认识到为完成常规任务和特定任务而为合作者和外部伙伴建立“电子村落”的必然趋势。电子商务的发展将会造成更多的商业合作需求。P2P技术天生就顺应了建立分布式和特定目的网络的发展趋势。第二章 P2P体系结构使Gnutella和其他P2P应用程序变得有趣的原因是它们能非常容易地将由协同工作的节点组成的大型网络聚集在一起,并且这些节点遍布整个网络。这些节点是普通的PC,它们动态地聚集在一起形成分布式的文件系统。这样形成的网络瞬息万变很多节点位于防火墙和单向NAT(Network Address Translation,网络地址转换)路由器之后;在非工作时间内,这些计算机可能处于关闭状态,并且这些计算机能随意地进入和离开网络。这种性质和网络组织结构是相互矛盾的,它更像我们在企业网上看到的典型的文件系统。在客户/服务器模型中,由服务器控制和管理着客户端与其他资源,比如数据库、文件。网络和其他客户端的关系。在客户/服务器模式的网络中,服务器扮演着“高等公民”的角色。为了管理其“下属”,服务器被赋予了特定的权限和功能。对等节点的概念对我们设计和实现系统的方式产生了巨大的影响。在传统层次化系统中已经解决的问题又被重新 提起,在P2P的世界中,我们开始重新讨论和评价这些问题。如何识别实体和确定实体的位置?谁来控制对资源的访问?尽管在任何环境中,这些问题都难以回答,但至少我们能很容易地理解这些问题。而在P2P系统中,情况并非如此。这是计算技术的新课题。规则未定,我们仍然有机会投身于P2P前沿领域的设计和开发中。P2P技术可能是继Web浏览器之后传递互联网信息的第一次革命。有趣的是单词“peer”的动词形式的意思是“凝视,仔细或困难地看”。当不再才用层次结构关系时,“peer”的这个意思正好可用于描述P2P节点所需的行为。对等节点如何搜索自己的同伴并形成协同工作实体?P2P的第一代应用程度就为解决隐含在这个问题中的困难而费尽周折。结果是这些应用程序暴露出了早期P2P系统的优势和不足。通过研究P2P的早期系统,比如Napster、Gnutella和Freenet,读者可以学到很多东西。这些应用程序显示了P2P系统的共同特征。P2P系统包含了一个动态元件,这个元件能帮助这些应用程序形成和发展组和域。早期的P2P系统使用这个元件的主要目的是检索文件和解决P2P系统中的共同问题。P2P系统需要虚拟域名空间来增强当今的寻址技术。虚拟域名空间提供了一种永久识别节点(或服务)的方法,如果没有这种方法,那么P2P系统是不可能实现节点(或服务)寻址的。以读者的Email地址为例,不管读者使用何种计算机访问E-mail,这个地址都唯一地识别了你的E-mail信箱。就功能性而言,P2P系统中的对等节点被认为是平等的。平等性意味着在网络中不再需要通信中间设备来帮助和参与节点间的通信。如果读者的计算机是连接到互联网上的,那么你的计算机就可以直接连接到P2P系统。对等节点可以出现在网络上的任何地方。对等节点可以是普通PC,也可以是你口袋中的掌上导航助手。如果将之连接到网络上,你就可使之成为对等节点。对等节点不是稳定不变的,它们可以在网络上随意出现或消失。在很多P2P系统中,时断时续的连接是正常状态而不是非正常状态。早期的P2P系统是由拨号用户组成的。这些用户通过拨号方式建立连接,加入网络;然后断开连接并离开网络。对于这样的系统成员,P2P系统中都有一个相应的帐号。对等节点是很广泛的数组处理(计算)能力、带宽资源和存储能力。尽管P2P系统中的节点是对等的,但某些节点在性能上比其他节点更为强大。一台膝上型电脑可通过拨号方式连接到互联网并成为一个对等节点。而一台带光纤通道的Sun Enterprise 10000计算机也可是同一网络中的一个对等节点。从功能上说,这两台计算机是对等的,但它们之间的性能差别却非常之大。P2P系统正在改变我们设计能力充分利用整个网络资源的系统的方式。P2P的这一特性将使我们受益非浅。2.1 P2P网络PeertoPeer网络是一种与传统的Clien/Server或多层服务器网络完全不同的网络体系结构。P2P网络是由Peer组成的,根据JXTA的定义,任何一台能上网的机器都可以是一个Peer,甚至计算机上的一个程序都可以成为Peer。P2P网络中的Peer是彼此直接通信的。这种通信无需依赖集中式服务器或资源就可完成。在P2P网络中,通过Peer之间的交互操作就可以完成工作,共享信息。通过创建有潜力展示非常高的可用性和容错能力的计算资源网络,P2P体系结构使真正的分布式计算成为可能。P2P网络的一个非常重要的特点就是各个Peer彼此之间可以直接通信,至少是可以访问到的。在第一章中我们已经介绍,由于防火墙、NAT和动态IP等原因,在现实的网络中有许多计算机是不能访问的,而在P2P网络中就必须解决这个问题。P2P网络不是推翻现有的网络结构,而是在现有的网络上构建一个符合P2P特点的网络,但是又不限于现有的网络协议。如图2.1所示,中间黑线下面是现有的网络,网络中有许多计算机通过现有的TCP IP协议或者是HTTP协议进行通信;而黑线上面是一个虚拟的JXTA P2P网络,通过把黑线下面现有的网络映射成为 P2P网络。另外,既然是在现有的网络上构建一个P2P网络,就必须考虑到现有网络上存在的多平台、多语言的情况。虽然JXTA的第一个参考实现是基于Java语言的,但是从JXTA自身的设计来看,JXTA程既不特定于Java编程语言,也不特定于 Java平台。换句话说,任何人都可以在任何硬件平台上,用任何操作系统、任何编程语言实现基于JXTA的网络。正因为JXTA的这种平台无关性,它甚至不依赖于 TCPIP(也就不会依赖现有的因特网架构,从而为P2P网络的构造打开方便之门),从而为我们提供了构建P2P体系结构的基础。从图2.l可以看到JXTA并没有依赖于某一种具体的网络和协议,之所以目前的实现采用TCP/IP和HTTP,是为了与目前因特网架构兼容以及能与大多数防火墙协同工作。P2P网络应该具有下列特性。 互操作性:P2P系统应该能够使内部连接很容易地找到彼此,彼此间进行交流,加入基于团体的活动,提供无缝跨越不同P2P系统和不同团体的服务。许多现存的P2P系统仅能提供简单类型的服务,例如:Napster提供音乐文件共享,Gnutella提供通用文件共享,AIM提供即时消息,由于这些服务的不同特性和通用的下层P2P结构的缺乏,每一个软件的零售商提供了互不兼容的系统,它们之间彼此不能相互操作。这意味者每一个零售商都创建了自己的P2P用户团体,更为重要的是,一个Peer如果要加人由不同P2P实现的多种团体,必须支持不同的P2P系统和团体的多种实现。 平台无关性:P2P系统应该设计成独立于编程语言如 C、Java等,独立于系统平台如 Windows和 UNIX,独立于网络平台如 TCP IP和 BLUETOOTH。现在许多P2P系统通过在一定的系统平台上和一定的网络平台上发布一组API来提供特性和服务。例如,一个系统提供运行在Windows系统上、遵循TCPIP协议的一组CAPI,而另一个系统提供了运行在 UNIX系统上、遵循TCPIP协议和HTTP协议的一组C和Java组合的API。P2P的开发者必须选择用哪组API来编程,目标是哪组P2P客户,由于两个系统之间没有互操作的可能性,如果开发者想要提供给两个团体相同的服务,他们必须为不同的P2P平台开发两次相同的服务或者在两个系统间架一座桥,考虑到已经存在的几十套P2P系统,两种方法都是效率低下和不切实际的。 广泛性:P2P系统应该设计成可以运行在任何有数字处理功能的设备上,包括传感器、消费电子设备、个人数字助理、网络路由器、桌面计算机、中心服务器和存储系统。许多P2P系统,尤其是新兴公司提供的,倾向于选择微软公司的操作系统作为它们的目标部署平台,这种做法的原因是因为可以符合最广泛的安装基础以及获得最快的利润。这样不可避免的结果是对系统平台的依赖,这是在紧张的时间和有限的资源下工程的实现而不是技术设计的结果。由于P2P并不定位在PC2 PC上,上述做法是没有眼光的。虽然最早的P2P系统演示在计算机系统的中心一WINTEL机器上,但P2P技术大规模的应用最可能发生在两个极端上企业的大型系统和用户的小型系统。事实上,基于任何特殊硬件和软件系统之上的应用都经不起未来的考验。因此,要构建一个P2P网络,必须考虑如下问题: Peer如何找到其他Peer?也就是Peer的发现机制是什么? Peer之间如何传递信息?Peer的通信协议是什么? P2P网络与现有网络的关系?是完全推翻?还是可以利用现有网络来搭建P2P网络?2.2 P2P如何形成动态网络动态网络是P2P系统存在的基石。互联网是带有某些静态特性的动态网络。例如,连接到互联网的任何计算机都被分配一个唯一的IP地址。当今占统治地位的IPv4协议使用32位的IP地址。这种IP地址的表示方法是用点好隔开的十进制数字,例如172.16.1.2。这种地址模型限制了我们最终能使用的IP地址的数量。需要使用IP地址的计算机和设备的增长已远远超出了IPv4协议设计者们的预想。我们很快就会用完IPv4能提供的所有IP地址了。现在,人们已经提出了IPv6协议。这个协议不仅大大增加了可用IP地址的数量,并且还能后向兼容IPv4协议。IPv6使用128位的IP地址。IPv6的IP地址的表示方法是用冒号隔开的十六进制数字。例如:FEDC:B978:7654:3210:F93A:8764:54C3:6543.IPv6能支持1012台计算机和109个独立网络。但是,目前还不知道什么时候IPv6才能得到广泛使用。因为我们更容易记住名字而不是数字,所以互联网提供了一种使用名字来识别计算机的机制。DNS(Domain Name Service,域名服务)提供了帮助用户识别计算机或将计算机名映射为IP地址的方法。因此,我们可使用而不是http:/72.5.124.55来访问Sun公司的主页。尽管我们使用IP地址和DNS来识别和寻址网络上的某台计算机,但P2P系统依然面临巨大挑战。使用IPv4能提供的有限的IP地址导致了寻址计算机的新机制。NAT使我们能将一组保留IP地址分配给某个局域网上的计算机。当连接到互联网时,这些计算机共享一个“公共”IP地址。因为保留IP地址组是为私有网络上的计算机预留的,所以这些预留IP地址不会出现在互联网上(即成为公共IP地址)。因此,这些IP地址可重用。尽管这些机制实现了IP地址的神奇转换,但也使得寻址实际的计算机地址变得更加困难,尤其在动态环境中更是如此。使用IPv6的新一代互联网的设计目的就是为了解决这一问题。但遗憾的是,这可能是未来几年之后才能实现的事。除NAT之外,互联网上IP地址的动态分配也非常普遍。这种分配IP地址的方式本身就为寻址计算机带来了问题。P2P系统如何识别其标志不断变化的对等节点?P2P网络必须能唯一地标志该网络上的多有对等节点和可用资源。因此,P2P系统必须定义自己的独立与IP地址和DNS的命名规则。为了使P2P系统上的用户拥有自己的永久标志,P2P系统必须创建虚拟名字空间。不同于DNS等寻址方法中采用的预定义或预配制方式,P2P系统网络中的对等节点通过使用IP地址或DNS作为导航助手来相互寻址,从而形成动态或虚拟网络。形成动态网络是P2P系统的典型特征。一、寻址P2P系统中的对等节点和资源关于在P2P系统中如何寻址节点和资源的问题,已经见诸于大量的出版物并引起了广泛的讨论。时至今日,这个问题的解决已成为成功的P2P系统的重要标志。读者可从两个层次来思考寻址问题。首先,寻址过程和发现一个对等节点相关。这里所谓的对等节点是指可能理解节点间交换的协议信息的信息处理实体。这个信息处理实体和其他实体使用同一种语言,并且该实体能理解这种语言的语义。对等节点的寻址目的是需要找到某项服务或帮助,并克服很多与信息处理相关的问题。如果对等节点