- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Java实现P2网络模用Java实现P2网络模型
用Java实现P2P网络模型
蔡雄 缪淮扣
(上海大学计算机工程与科学学院, 上海, 200072)
摘要:本文简单介绍了P2P技术以及在TCP/IP网络协议下的网络模型和通信协议。给出了用Java语言实现P2P网络模型的方法和技术。
关键词:计算机系统结构;TCP/IP;P2P;Java语言
The Implementation of P2P network Model Using Java
CAI Xiong MIAO Huaikou
(School of Computer Engineering and Science, Shanghai University, Shanghai, 200072)
Abstracts: P2P Technology, network model and the communication protocol under TCP/IP are introduced briefly in this paper. The method and technology of implementing P2P network model using Java are presented.
Keywords: computer architecture; TCP\IP; P2P; Java language
1. 引言
Peer-to-Peer(P2P)中的Peer是对等点。它既可以是性能强大的服务器,也可以是我们日常使用的普通个人电脑。它们组成了网络,它们既是网络服务的提供者,也是网络服务的请求者。正因为如此,网络的服务的提供者不再局限于服务器,它们的数量毕竟有限,它们的性能也不足以满足日益增长的需要,而整个网络作为一个服务者所带来的影响不言而喻。
目前还未见到使用Java来实现P2P网络模型的报道。Java是一种完全面向对象的开发语言,Java的可读性和设计的简易性都比其他语言要好。但是因为Java程序的运行速度不理想,尤其在要求速度的网络应用中,这样使得Java的应用更少。可是随着Java的不断发展,性能越来越高,Java的各种优势也得以体现。
2. P2P的网络模型
P2P的网络模型可以分成很多种,目前主要的网络模型是目录式动态配置模型。
在目录式模型中,一台或多台有特殊用途的服务器为对等点提供目录服务。虽然还没有彻底的离开服务器,但是服务器的作用已经大大降低。
对等点向目录服务注册关于自身的信息(其名称、地址、资源和元数据),并根据目录服务器中信息的查询,使用目录服务来定位其它对等点。Napster模型就是一种典型的使用动态配置模型(目录式)的网络模型[5]。
目录式动态配置模型如图1所示。
图 1目录式动态配置模型(红点表示ServerPeer)
服务器的作用降低,对等点(Peer)之间的联系也就更为紧密了。如图2所示,上传方所在的对等点必须肩负起原先服务器所承担的任务,也就是文件的传输工作。P2P技术最为关键的问题是如何更有效地提高文件传输的速度。必须有一套严格的、规范的通讯协议,来协调Peer的行动。
图2 文件传输模型
3. P2P的通讯协议
Peer之间的通讯必须规定一种协议(也可以说是一种相互可以理解,不会产生歧义的规范),它以特定的编码方式传输指令,这样可以在不同的操作系统间准确无误地传输指令。用户发出指令-编码-发送-接受指令-解码-执行,这是指令传输的整个过程。
如图3所示,P2P之间开始通讯,发送请求,如果请求被允许,可以开始下载数据,否则不能下载。
P2P文件传输的基础就是文件的分块。把一个文件分成等长的字节称为块(一般块的大小为2E16~2E18),每次都传输的字节大小为2E15。这样就把一个文件传输的任务分解成多个可以并发进行的较小的任务。在多线程进行多个任务的下载可以最大限度地利用网络,提高下载速度。
File表示下载指定文件的指令。File包含请求文件的相对路径,但上传方接收到请求后,必须转换为绝对路径。使用相对路径的目的是避免泄漏共享资源方的信息。防止其他的用户下载和了解共享用户方没有共享的资源。
State表示服务方接受到File指令后的响应状态。
Request表示下载文件指定位置的字节。Request包括请求的块号、块内开始位置、长度。包括块号、块内开始位置。
Block表示上传文件指定位置的字节。
图3通讯协议模型
4. 基于Java的软件开发
4.1 程序的主要功能模块
Java编程中,使用TCP协议的是类Socket,通过调用类Socket的方法,接受和发送数据包,如同读取本地文件流一样方便[4]。
上传模块:当接受到上传请求时,把文件的相对路径转化为本地的绝对路径,然后返回上传准备状态(成功或者失败)。如果上传准备成功,可
您可能关注的文档
- 现代企业经营决策模实验指书现代企业经营决策模实验指导书.doc
- 现代企业规范化管理体解决案_404现代企业规范化管理体解决方案_404.doc
- 现代全面企业管理讲内容简Microsoft Word 文档现代全面企业管理讲内容简介Microsoft Word 文档.doc
- 现代化商品蛋鸡饲养理及配技术研究现代化商品蛋鸡饲养理及配套技术研究.doc
- 现代分离尼玛吐血整草(完版)现代分离尼玛吐血整草(完整版).doc
- 现代化教学手段在语教学中应用现代化教学手段在语教学中的应用.doc
- 现代商贸物流园区信平台建的研究现代商贸物流园区信平台建设的研究.doc
- 现代农艺专业职业岗与工作务现代农艺专业职业岗与工作任务.doc
- 现代夏季奥运会开幕主题曲究现代夏季奥运会开幕主题曲研究.doc
- 现代教育学(扈中平)复习纲现代教育学(扈中平)复习提纲.doc
文档评论(0)