P2P软件的实现.doc

上传人:滴答 文档编号:4012704 上传时间:2019-09-10 格式:DOC 页数:90 大小:636.50KB
下载 相关 举报
P2P软件的实现.doc_第1页
第1页 / 共90页
P2P软件的实现.doc_第2页
第2页 / 共90页
P2P软件的实现.doc_第3页
第3页 / 共90页
P2P软件的实现.doc_第4页
第4页 / 共90页
P2P软件的实现.doc_第5页
第5页 / 共90页
点击查看更多>>
资源描述

1、 P2P 软件的实现 摘要Peer-to-Peer网络毫无疑问是当今的热点技术主题。Napster 和 Gnutella的广泛使用证明了 peer-to-peer应用的强大潜力。P2P(或者说 peer-to-peer)网络是一种基于操作上下文的网络模型,任何一个节点都同时作为客户机和服务器。JXTA 致力于为 P2P应用提供一个 P2P平台基础。其中包括一系列独立于语言,平台和网络技术之外的协议。这些协议解决了 P2P应用的基本需求。协议的设计目标是简单并且低成本。本论文设计探讨了 P2P网络的结构和 JXTA的基本知识,并利用 JXTA开发出一个组内聊天和共享文件的软件。关键词: P2P,

2、Peer,PeerGroup,Advertisment,XML,JXTA,CMSP2P 软件的实现 ABSTRACTPeer-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 o

3、peration, 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

4、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,CMSP

5、2P 软件的实现 目 录第一章 绪论-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(广告)-P2P 软件的实现 253

6、.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

7、对等组的成员资格-343.4.5 对等组的服务-353.5 广告( Advertisement)-373.5.1 广告的类型-37P2P 软件的实现 3.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附件-70P2P 软件

8、的实现 第 1 页 共 84 页第一章 绪论最近,P2P(Peer-to-Peer)又成为了因特网上的一个热点。P2P是因特网的一种应用模式,其意思是指网络上的任何设备(包括大型机、PC机、PDA、手机、机顶盒等等)都可以平等地直接进行连接并进行协作。相比当前因特网上主流的应用模式Client/Server或者Client/Service而言,P2P具有自己鲜明的特点和优势。P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者“、“同事“和“伙伴“等意义。这样一来,P2P也就可以理解为“伙伴对伙伴“的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交

9、换、分布计算等方面大有前途。简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、实现“非中心化“,并把权力交还给用户。1.1 P2P 发展简史P2P并不是一个新的概念,早在 1969年因特网的前身 ARPANET刚出现的时候,网络的应用模式就是 P2P,ARPANET 的最初目的是在全美国范围内共享计算机资源,其所面临的挑战是如何集成当时各种不同的网络,使之成为一

10、个通用的网络,并且使得各个主机成为网络上平等的成员。ARPANET 是以一种平等的计算 Peer的方式把这些计算机系统连接起来,而不是用 Master/Slave或者是Client/Server的方式连接。早期的因特网比现在的因特网更加开放和自由,例如在 20世纪 80年代之前,人们从未听说过防火墙的概念。就通常意义而言,当时的网络上任意两台计算机都可以给对方发送网络包,网络就是人们进行协同研究工作的场所,不需要提防任何东西。后来因特网上出现了 FTP和 Telnet这样的比较受欢迎的应用程序。虽然它们单个的应用程序都是 Client/Server方式的,但是整体上的使用模式却是对称的。网络上

11、的每台主机都可以 FTP或者 Telnet到其他主机上,P2P 软件的实现 第 2 页 共 84 页同时自己也可充当服务器。DNS是另一个仍在使用的 P2P的经典例子,DNS 的作用就是把因特网的域名和 IP地址进行映射,最早的时候这个映射是保存在一个大文件中的,并在因特网上进行复制。随着因特网规模的增大,必须采用一种方式来进行域名数据的共享。DNS 提供了一种实现文件共享的解决方案,采用了层次性的信息归属办法,即我们通常所说的域名层次。DNS 之间可以相互交换域名信息,这个时候,每个 DNS也可能是服务器(接收其他 DNS的请求) ,也可以是客户端(向其他DNS发出请求) 。从 1995年开

12、始,随着 PC机的广泛使用并接入因特网,成千上万的人挤到因特网上,他们使用因特网的方式是发送电子邮件、浏览网页并在网上购物,这些现象已经长远地影响到了网络架构的发展,也直接影响了 P2P应用程序的发展。这种变化改变了人们使用网络的方式,出现了许多新的情况,例如网上协作的崩溃、防火墙的大量使用,产生了许多非对称的网络连接方式,比如说ADSL和 Cable Modem。20世界 90年代末期,因特网发展的另一个趋势也对 P2P应用程序带来新的挑战,那就是非对称网络连接的发展。网络供应商为了得到更高的效率而决定提供非对称的带宽,往往是下行带宽非常大而上行带宽非常小,ADSL 和Cable Modem

13、的下行/上行带宽往往相差 38倍。这种用法的根源在于 Web是因特网的主要应用,绝大部分用户仅仅是 Web的客户机,而不是服务器。即使有部分用户想发布自己的网页也不会通过家庭宽带连接的方式来实现,而是通过第三方提供的专用服务器来发布。现在的问题在于 P2P应用程序正在改变原有的假设:网络用户仅仅想从因特网下载东西,而不会上载信息。Napster 和 Gnutella等文件共享应用程序颠倒了带宽的使用方式,使得计算机提供的文件比它下载的文件还要多,要求的上行带宽要比下行带宽大。但是现有的网络架构并不能很好地满足要求,而且更糟糕的是,由于 TCP协议对速度的控制,一旦上行通路被堵塞,下行通路也会受

14、影响,所以如果某台计算机正在通过慢速的上行通路给其它计算机提供文件服务的话,那它就不可能同时在快速的下行通路上下载文件。因此 P2P应用程序在非对称带宽的网络并不能够很好地运行,一旦 P2P程序广泛流传,网络P2P 软件的实现 第 3 页 共 84 页基础架构就应该变得易于处理这种新的网络流量模式。从 2000年开始,一个能够在网上进行音乐文件共享的名为 Napster的 P2P程序在网上广泛流行,吸引了广大网上乐迷的注意力,短时间内就吸引了成千上万的用户,原因在于用户可以下载 MP3音乐文件。Napster 应用模式与通过FTP下载文件不同,FTP 是把所有的文件都集中到服务器上,所有的拥护

15、都到该服务器上下载文件,其缺点是当用户连线众多时会造成服务器工作繁忙、带宽拥挤、下载速度变慢,而且所共享的文件仅仅限于服务器上的文件;而Napster上所有的共享 MP3文件都是由用户提供的,种类繁多,而且所有的文件都保存在用户的计算机上,Napster 提供了一个服务器来保存所有用户提供的 MP3文件的目录以及其计算机的地址,当某个用户需要下载 MP3文件时,他通过服务器查询到所需要的 MP3文件所在的计算机地址的列表,由于同一个MP3文件在许多不同的计算机上都有副本,该用户只需要从任意一台计算机上下载就可以了。这种用户之间通过 P2P的访问来进行文件共享的方式有许多优点,首先是不会有带宽问

16、题,因为大量的文件数据都是通过用户之间的计算机来进行交换的,不存在集中的服务器的带宽拥挤问题;其次是共享的文件内容是无穷无尽的,因为每个用户都可以在自己的计算机上共享个人 MP3音乐文件,非常方便,不需要把文件上载到 FTP服务器上;再次是不需要一个庞大的服务器,充分利用了资源。因为一般的 FTP服务器都需要有很大的硬盘来保存共享的文件,而 Napster利用的是用户计算机上闲散的存储资源。Napster 也有服务器,但是其巧妙之处在于服务器上只保存共享文件的地址信息,所占用的存储资源相对很少,而把占据大量存储资源的 MP3文件保存在用户的计算机上;另一个巧妙之处在于文件的交换是 P2P方式的

17、,不需要通过服务器尽心,解决了带宽拥挤的问题。但是,非常不幸的是,由于 Napster共享的是 MP3音乐文件,虽然其初衷是让音乐发烧友们交换合法的 MP3音乐文件,可是这种行为最终触及了音乐唱片公司的利益,世界各大音乐唱片公司联合把 Napster告上了法庭,而且由于 Napster提供的服务上共享了 MP3音乐文件的目录信息,此种情况作为重要论据使 Napster在法庭上处于不利地位,导致最后的败诉。终于,风靡一时的 Napster就此退出历史舞台,但是其巧妙的 P2P应用模式和短时间内急剧增长的用户数量还是给人们留下了深刻的印象,为后续的 P2P文件共享P2P 软件的实现 第 4 页 共

18、 84 页应用奠定了基础。与此同时,QICQ 和 QQ等国内外即时聊天应用也迅速在国内流行起来,个人拥有一个 QQ帐户就相当于拥有一个手机号码一样,只要用户在自己的计算机上安装了 QQ的客户端软件并进行登陆,就可以与因特网上任何一位安装有 QQ客户端软件的拥护进行文字聊天。实际上 QQ的实现机制与 Napster系统非常类似,用户通过客户端软件把自己的帐号和计算机地址登记到服务器上,并通过服务器查找其他在线的用户帐号和地址,然后直接进行聊天。可以说,即时聊天是一种非常典型的 P2P应用,而且在现实中也取得很大的成功,受到全世界许多用户的欢迎。由于文件共享和即时聊天等 P2P应用程序的成功,越来

19、越多的程序员在因特网上开发他们的 P2P程序,越来越多的用户在使用 P2P应用程序。1.2 P2P应用程序的用武之地现在,让我们来考虑一下今天的桌面计算机用户希望使用哪些不同类型的应用程序。除了 Web浏览和办公软件外,桌面计算机用户还希望计算机能提供如下功能: 管理和共享信息:这些信息包括用户希望与商业伙伴、朋友和同事共享的所有文件、文档、图片、音频、视频和电影等。通过信息收集和编排功能,更先进的共享机智机制能使一台计算机扮演通用任务管理器的角色比如,G就是分布式任务管理器系统的一个例子,而 Gnutella是个人 P2P文件共享系统的一个例子。 协作:PC 用户发现地址簿、日程安排、聊天和

20、 E-mail等软件工具提高了他们的工作效率。通过将桌面工具软件连接在一起使得协同工作的电子商务团体能形成灵活、强大而有效的工作小组,例如 JAVA开发人员使用OpenP协同工作。而在更大范围内,成千上万的用户使用实时通信工具,这可能是目前最为流行的 P2P应用程序了。 企业资源管理:企业内协同工作流程提高了由连接到网络上的桌面计算机系统所组成的企业网络环境的处理能力。例如,Groove 使得一个航空业制造商能将工作订单请求发送到伙伴公司,并将已经完成的请求从一个部门发送到另P2P 软件的实现 第 5 页 共 84 页一个部门。 分布式计算:通过分散化方法实现互联网健壮性理念的一个自然扩展是设

21、计 P2P系统,这个系统将计算任务转送到数以百万计的服务器上,而任何一台这样的服务器都可能是一台台式计算机。尽管 P2P还处在初始发展阶段,但已经出现了很多能满足用户所有上述功能需求的 P2P应用程序。随着人们对 P2P技术优越性认识的深入,将来可能会有更多的使用 P2P技术开发的应用程序。1.3 P2P技术的动力商业和技术方面的三个主要因素促使人们采用 P2P技术。分散化:越来越多的企业已经通过采用灵活的企业结构实现了更高的效率和效益。因此,最近几十年中,企业领导人一直致力于企业的分散化。我们已经经历了从大型主机模型到客户/服务器模型,再到互联网计算模型的变迁,直到今天的 P2P模型的变迁。

22、这个发展趋势不可否认地实现了离散化和分布化。费用和效率:软硬件的价格会越来越低,而处理能力却会越来越高。能提高生产效率或软硬件使用率的新系统将成为企业投资的首选。P2P 具备充分利用以前未被利用的资源的能力。普及应用的计算:我们可以想象,信息系统在现代社会中无所不在:衣服、工具、汽车和设备,任何你能想象的东西中都存在着计算机芯片。信息系统不仅无所不在,而且它们之间是互连的。网络连接设备的市场一直在持续增长,而 P2P系统正是被设计用于支持这个市场的。随着企业逐步推进其电子商务进程,他们会更加深入地认识到连接交易流和通信流的必要性。同样,他们也会认识到为完成常规任务和特定任务而为合作者和外部伙伴建立“电子村落”的必然趋势。电子商务的发展将会造成更多的商业合作需求。P2P 技术天生就顺应了建立分布式和特定目的网络的发展趋势。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 经济合同

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。