P2P 文件共享系统设计与实现——文献综述
xxx
(山东大学计算机学院 222222222)
摘 要: 对等网(P2P)主要指计算机之间以对等方式形成的网络连接, 弱化或
完全取消了服务器的作用。文章首先将对 P2P 网络的基本概念、技术实现、主
要应用进行介绍; 然后分析 P2P 技术与 C/ S 模式互联网的区别; 最后介绍了
JXTA 协议。
关键字:P2P; 文件共享; C/S 模式; JX-TA
1 引 言
随 着 像 Napster 、Gnutella 、Freenet 等 P2P 信 息 共 享 应 用 系 统 的 流 行 ,
P2P(Peer- to—Peer,即对等网络)这种完全不同于客户/ 服务器的新一代分布式
计算机模型正在受到越来越多的关注, 已被《 财富》 杂志誉为将改变互联网
未来的四大新技术之一。P2P 可以简单地定义为通过直接交换信息, 共享计算
机资源和服务,对等计算机兼有客户机和服务器的功能, 在这种网络中所有节
点是对等的, 这些对等节点具有共同的责任与能力并协同完成服务, 它们之
间通过直接互连实现信息资源、处理器资源以及存储资源的全面共享, 而不需
要依赖集中式服务器的支持, 消除了信息孤岛和资源孤岛现象。
2 P2P 网络技术的研究
2.1 P2P 网络的基本概念
P2P 技术主要指由硬件形成网络连接后的信息控制技术, 主要代表形式是
在应用层上基于 P2P 网络协议的客户端软件。IBM 为 P2P 下了如下定义: P2P
系统由若干互联协作的计算机构成, 且至少具有如下特征之一: 系统依存于
边缘化 ( 非中央式服务器) 设备的主动协作,每个成员直接从其他成员而不是
从服务器的参与中受益; 系统中成员同时扮演服务器与客户端的角色; 系统应用
的用户能够意识到彼此的存在, 构成一个虚拟或实际的群体。P2P 网络是互联
网整体架构的基础, 互联网最基本的 TCP/IP 协议并没有客户端和服务器的概
念, 在通讯过程中, 所有的设备都是平等的一端。P2P 技术改变了“ 内容”所
在的位置, 使
其正在从“ 中心”走向“ 边缘”, 也就是说内容不再存于主要的服务器上,
而是存在所有用户的 PC 机上。P2P 使得 PC 重新焕发活力、不再是被动的客户
端, 而成为具有服务器和客户端双重特征的设备。
2.2 P2P 网络的分类
关于对等网的分类, 目前尚不统一, 有很多争论, 安 P2P 的定义大致可
分为集中目录式对等网络、纯分布式对等网络、混合式对等网络。
2.2.1 集中目录式对等网络
图 1 集中目录式对等网络
各节点之间可以直接建立连接, 但网络的构建需要服务器, 通过集中认
证, 建立索引机制。然而这里的服务器仅用于辅助对等节点之间建立连接,
一旦连接成功, 服务器不再起作用, 对等节点之间直接进行通信。这不同于
C/S 模式中的服务器, 也可以认为是弱化了服务器的作用。这种 P2P 网络模型
和纯分布式 P2P 网络相比, 易于发现网络节点、易于管理且安全性较好, 但
也有类似 C/S 模式的缺陷,如容错性差等。目前 P2P 技术的应用大多为这种模
式, 较为典型的如: Napster 等。
2.2.2 纯分布式对等网络
图 2 纯分布式对等网络
网络中没有服务器, 链状的节点之间构成一个分散式网络。通过基于对等
网协议的客户端软件搜索网络中存在的对等节点, 节点之间不必通过服务器,
可直接建立连接。这种 P2P 网络模型优点在于允许用户设定自己的规则和建立
自己的网络环境; 为与 Internet 合作, 提供近似的即插即用特性; 不仅能够在
Internet 下有效地工作, 而且对于 LAN 和 Internet 也非常有用。存在的问题:
由于没有中心管理者, 网络节点难以发现; 不易管理且安全性较差。此种类型
的 P2P 网络如: Gnutella、FreeNet 等。
2.2.3 混合式对等网络
集中式 P2P 有利于网络资源的快速检索,并且只要服务器能力足够强大就
可以无限扩展, 但是其中心化的模式容易遭到直接的攻击; 分布式 P2P 解决了
抗攻击问题, 但是又缺乏快速搜索和可扩展性。混合式 P2P 结合了集中式和分
布式 P2P 的优点, 在设计思想和处理能力上都得到了进一步的优化。它在分布
式模式的基础上, 将用户节点按能力进行分类, 使某些节点担任特殊的任务。
这些节点共分为 3 种:
(1)用户节点: 普通节点, 它不具有任何特殊的功能。
(2)搜索节点: 处理搜索请求, 从它们的“ 孩子”节点中搜索文件列表,
这些节点必须有 128 kbit/s RAM 的网络连接速度, 建议使用高性能的处理器。
(3)索引节点: 连接速度快、内存充足的节点可以作为索引节点。索引节
点用于保存可以利用的搜索节点信息, 并搜集状态信息, 维护网络结构信息。
这种模式的关键之一是引入了索引节点,索引节点不会直接连接到有版权
的资料上, 它就像搜索引擎一样, 只是搜索和所需资料相关的地址, 至于用
户到底连接下载了什么内容则和它无关。这种模式的关键之二是引入搜索节点,
搜索节点管理着所属用户的文件列表。用户节点通过索引节点获得搜索节点信
息, 之后用户节点就与获得的搜索节点相连, 每一次查询都通过该搜索节点
进行。
2.3 P2P 网络与 C/S 模式网络的区别
P2P 技术与 C/S 模式互联网技术的根本区别在于两者的拓扑结构不同, 或
者说两个系统中节点的连接方式不同。分布式网络拓扑结构存在四种基本形式:
集中式拓扑、环型拓扑、树型拓扑和分散式拓扑。由这四种基本的拓扑结构相
互结合还可以形成各种混合式拓扑结构。部分 P2P 技术属于纯分散式拓扑, 其
余多属于带有服务器的混合式拓扑; C/S 模式为集中式拓扑。
当前互联网的主要技术模式是 C/S 模式,要求设置拥有强大处理能力和大
带宽的高性能计算机, 配合高档的服务器软件, 将大量的数据集中存放在服
务器上, 而且还要安装多样化的服务软件, 在集中处理数据的同时可以对互
联网上其他 PC 提供服务, 发送或接收数据,提供处理能力及其他应用。与服
务器联机并接受服务的客户端性能可以相对弱小。而 P2P 技术的特征之一就是
弱化服务器的作用, 甚至取消服务器, 任意两台 PC 互为服务器, 同时又是
客户端。
C/S 模式造成互联网上的信息资源和成本资源均向服务器集中, 这样的模
式安全性好、易于管理, 而且符合一对多、强对弱的社会关系形式, 所以
C/S 模式是符合市场需求的。P2P 方式将导致信息数量、成本资源都向互联网各
点均匀分布, 也就是所谓“ 边缘化”的趋势,而且交互性、即时性好, 符合
“ 一对一”的特点, 以及彼此相当的社会关系形式, 也符合市场的需求。所以
这两种方式将会共存, 有关 P2P 即将替代 C/S 模式的说法是不成立的。P2P 有
其独特的市场空间, 是现有互联网应用的补充。
3 JXTA 协议的研究
3.1 JXTA 的主要概念
JXTA 是 SUN 公司为了构建跨平台、跨操作系统和跨编程语言的 P2P 应用
而提出并实现的一个 P2P 标准, 其功能还在不断扩充和完善中。JXTA 技术提
供了基础性的机制解决当前分布计算应用中面临的问题, 实现新一代统一、安
全、互操作以及异构的应用。JXTA 通过 XML 格式的消息表达, 提供了强大
的功能使得垂直应用得以交互, 这对实现系统的互操作性有了很大的帮助。
3.2 JXTA 的层次结构
JXTA 由三层组成, 如图 4 所示。第一层是 JXTA 核心层, 它包含了服务
所需要的核心功能; 第二层是服务层, 它提供了访问 JXTA 协议的接口; 第三层
是应用层, 它使用服务来访问 JXTA 网络和 JXTA 提供的功能。这样的设计和
一个标准的操作系统比较相似, 标准的操作系统包括核心操作系统、服务和应
用程序。
图 3 JXTA 的层次结构
各层的说明如下所示:
核心层(JXTACore): 这一层封装了最根本的东西, 包括 Peer、对等组、
Peer 发现、Peer 通信、Peer 监视和相关的安全原语。
服务层(JXTA Services): 这一层包括对于 P2P 网络不是必需的、但很通用
的功能 ,如查找、共享、索引、代码缓存和内容缓存的机制。
应用层 J(XTAA ppilcaiton): 这一层包括了应用 JXTA 服务开发出来的完整
的 P2P 应用程序 ,例如 myJXTA ,JXTA-C AD 等应用程序。
3.3
JXTA 技术及其优势
JXTA 技术的目标就是为 P2P 计算提供一个简单、灵活的平台 ,它为上层
的 P2P 应用程序提供底层基础构架, 这个构架由一系列协议构成。JXTA 协议
不依赖任何编程语言 ,独立于操作系统平台 ,不受下层的网络传输协议限制。
JXTA 技术是为了克服现有 P2P 系统的缺陷而提出的, 那么 JXTA 技术发展的
目标同时也就是此技术的优势是:
1 互操作性 :JXTA 技术能无缝地通过不同的 P2P 系统使网络中的对等节
点方便地找到对方 ,相互通信 ,协同工作 ,向对方提供服务。
2 平台无关性 :JXTA 被 设计成独立于编程语言 ,如 c 或 JAVA, 独立
于系统平台 ,如 WINDOWS 和 UNIX ,独 立于 网 络 平台 ,如 TCP/
IP 和蓝牙。
3 通用性 :JXTA 被设计成能在住任何数字设备上实现 ,包括传感器、消
费电子产品、PDA 设备、网络路由器、桌面电脑、服务器和存储设备。
4 结束语
本文就对等网的基本概念 ,对等网的技术实现、主要应用作了简要介绍 ;
从易管理性、安全性等几个方面对 P2P 技术与 C/ S 模式互联网技术进行了比较。
介绍了 JXTA 技术这一种致力丁从所有 P2P 系统中分离出这些系统的通用需求 ,
从而解决 P2P 一系统中的核心问题技术 ,分析了 JXTA 技术的体系结构、核心
协议以及优势所在。利用 JXTA 技术则可以轻松开发了一个简单的并且具有可
扩展、互操作性强及高可用性的 P2P 文件共享系统。
[1] 石磊,吴海燕,李安宁. P2P 技术及对互联网的影响.电脑知识与技术. 2005.(8).
[2] 张晓刚. 基于 JXTA 技术的 P2P 应用系统的研究与开发.微型电脑应用.2006.
参考文献