P2P原理与实践

P2P概述

P2P概念

1.定义: P2P,即Peer-to-Peer的缩写,也称“点对点”或“端对端”,学术上常称为“对等计算”。P2P是一种以非集中化方式使用分布式资源来完成一些关键任务的系统和应用。P2P与目前网络中占据主导地位的客户/服务器体系架构相对应。它表示分布式计算中各进程之间是一种对等的关系。
2.P2P模式与C/S模式的区别:
P2P模式中,每一个结点都是信息的发布者和请求者,对等结点之间可以实现自治交互,无需使用服务器。
C/S模式中服务器和客户端是一对多的主从关系,系统的数据和信息都保存在服务器上,若要索取信息,必须先访问服务器,且客户端之间没有交互能力。
3.P2P的发展历程
第一阶段,1999年至2000年左右,P2P技术由应用开发向学术研究发展。 当时P2P技术刚重返历史舞台,涌现出许多著名的P2P应用系统,但由于P2P存在安全、标准和版权等缺陷,多数应用都被扼杀。P2P技术的完善迫在眉睫,越来越多的学者开始研究P2P技术,旨在更好地应用它。
第二阶段,2001年至2003年左右,随着P2P技术的发展,开始从学术研究走向商业应用,许多体系和标准也不断完善。
第三阶段,2004年至今,P2P技术由广泛的共识到更加全面的实用。P2P网络的主要问题已解决,核心机制、整体框架已形成,在重大问题上也形成了共识。对P2P的应用更加注重细节、高效性和实用性,并试图整合不同的P2P应用系统。
如今,随着云计算和大数据时代的到来,分布式计算得到更充分地应用,特别是以P2P为基础的分布式应用系统得到业界的热切关注。如P2P与Web Services(在第九章详述)结合,二者优势互补,使得Web服务的性能更加高效。
4.P2P的特点
非中心化
可扩展性
健壮性
高性价比
隐私保护
负载均衡
5.P2P的实践应用
文件共享和下载
多媒体传输
即时通信
协同工作
分布式数据存储
分布是对等计算
P2P搜索引擎

P2P网络的分类

P2P原理与实践
P2P网络的发展经历了不同的时代,一般可以分为四代,如图所示。在每一代P2P网络中都存在一些具体的P2P拓扑结构,它是此代P2P网络的标志。

  1. 中心化拓扑结构
    中心化拓扑结构指的是网络中资源和服务的索引都存储在中心服务器目录中,而资源和服务本身则存储在网络中的各结点中
    优点 :
    实现了资源的检索和传输的分离;
    中心服务器的压力得到缓解;
    节省了网络宽带;
    缩短了文件传输延时;
    资源和服务器的检索效率较高。
    缺点 :
    系统对中心服务器依赖过强使得可靠性和安全性较低;
    随着客户数量的增加,对中心服务器的维护和更新费用也将提高;
    易引发版权问题。
    P2P原理与实践
    中心化拓扑结构网络适合于小型网络,便于管理和控制,而并不适合于较大规模的网络。Napster是典型的P2P中心化拓扑结构系统。
  2. 全分布式非结构化拓扑结构
    重叠(覆盖)网络是在现有的网络体系架构上新加一层虚拟网络,并将虚拟网络中的每个结点与实际网络中的一些结点相连,从而实现与实际网络中各结点的联通。全分布式非结构化拓扑结构的P2P网络是一种重叠网络(Overlay Network)。
    全分布式非结构化拓扑的P2P网络是纯粹的没有中心服务器的网络,每个结点既是客户机又是服务器,是真正的对等关系。
    P2P原理与实践
    该结构的系统性能波动较大,但容错性好,支持复杂查询。典型的全分布式非结构化拓扑的P2P网络有Gnutella。
  3. 全分布式结构化拓扑结构
    全分布式结构化拓扑采用分布式散列表(Distributed Hash Table,简称DHT)来组织网络中的各结点,因此该拓扑结构的网络也称为DHT网络。 DHT网络是一个由广域范围大量结点共同维护的庞大散列表,散列表被分割成不连续的块,每个结点被分配一个属于自己的散列块,并成为这个散列块的管理者。

DHT网络的优点 :
能够自适应结点的动态加入或退出;
具有良好的可扩展性、鲁棒性、结点ID分配均匀性和自组织能力;
可以精确定位目标结点;
DHT网络的缺点 :
系统维护比较困难;
缺失复杂查询机制。
4. 半分布式拓扑结构
半分布式拓扑选择了性能较高的结点作为超级结点,在各个超级结点上存储其他部分结点的信息,检索算法仅在超级结点间转发,超级结点再将查询请求转发给适当的叶子结点。
P2P原理与实践
该拓扑结构的网络系统有较好的性能和扩展性、且支持复杂查询、易于管理维护。但对超级结点仍存在一定依赖。KaZaA就是一款典型的半分布式拓扑的P2P文件共享软件。
四种P2P网络拓扑比较:
P2P原理与实践

基于P2P范型的即时聊天系统
系统的功能:
点对点单人聊天;
多人同时在线聊天;
用户可以自由加入和退出系统;
具备用户在线状态监视