分布式计算、云计算与大数据概论心得理解

第6章 P2P原理与实践

P2P概述

P2P概念

P2P,即Peer-to-Peer的缩写,也称“点对点”或“端对端”,学术上常称为“对等计算”。P2P是一种以非集中化方式使用分布式资源来完成一些关键任务的系统和应用。P2P与目前网络中占据主导地位的客户/服务器体系架构相对应。它表示分布式计算中各进程之间是一种对等的关系。

P2P模式与C/S模式的区别

1.P2P模式中,每一个结点都是信息的发布者和请求者,对等结点之间可以实现自治交互,无需使用服务器。

2.C/S模式中服务器和客户端是一对多的主从关系,系统的数据和信息都保存在服务器上,若要索取信息,必须先访问服务器,且客户端之间没有交互能力。

P2P网络分类

P2P的发展历程

第一阶段,1999年至2000年左右,P2P技术由应用开发向学术研究发展。 当时P2P技术刚重返历史舞台,涌现出许多著名的P2P应用系统,但由于P2P存在安全、标准和版权等缺陷,多数应用都被扼杀。P2P技术的完善迫在眉睫,越来越多的学者开始研究P2P技术,旨在更好地应用它。

第二阶段,2001年至2003年左右,随着P2P技术的发展,开始从学术研究走向商业应用,许多体系和标准也不断完善。

第三阶段,2004年至今,P2P技术由广泛的共识到更加全面的实用。P2P网络的主要问题已解决,核心机制、整体框架已形成,在重大问题上也形成了共识。对P2P的应用更加注重细节、高效性和实用性,并试图整合不同的P2P应用系统。

–如今,随着云计算和大数据时代的到来,分布式计算得到更充分地应用,特别是以P2P为基础的分布式应用系统得到业界的热切关注。----如P2P与Web Services(在第九章详述)结合,二者优势互补,使得Web服务的性能更加高效。

P2P的特点

1、非中心化
2、可扩展性
3、健壮性
4、高性价
5、比隐私保护
6、负载均衡

P2P的广泛应用

1、文件共享下载
2、P2P搜索引擎
3、分布式对等计算
4、分布式数据存储
5、协同工作
6、即时通信
7、多媒体传输
8、文件共享下载

P2P典型应用系统举例

P2P网络分类

分布式计算、云计算与大数据概论心得理解_第1张图片
P2P网络的发展经历了不同的时代,一般可以分为四代,如图所示。在每一代P2P网络中都存在一些具体的P2P拓扑结构,它是此代P2P网络的标志。

中心化拓扑结构

分布式计算、云计算与大数据概论心得理解_第2张图片
中心化拓扑结构指的是网络中资源和服务的索引都存储在中心服务器目录中,而资源和服务本身则存储在网络中的各结点中

全分布式非结构化拓扑

分布式计算、云计算与大数据概论心得理解_第3张图片
1.重叠(覆盖)网络是在现有的网络体系架构上新加一层虚拟网络,并将虚拟网络中的每个结点与实际网络中的一些结点相连,从而实现与实际网络中各结点的联通。全分布式非结构化拓扑结构的P2P网络是一种重叠网络(Overlay Network)。
2.全分布式非结构化拓扑的P2P网络是纯粹的没有中心服务器的网络,每个结点既是客户机又是服务器,是真正的对等关系。
该结构的系统性能波动较大,但容错性好,支持复杂查询。典型的全分布式非结构化拓扑的P2P网络有Gnutella。

全分布式结构化拓扑

分布式计算、云计算与大数据概论心得理解_第4张图片
全分布式结构化拓扑采用分布式散列表(Distributed Hash Table,简称DHT)来组织网络中的各结点,因此该拓扑结构的网络也称为DHT网络。 DHT网络是一个由广域范围大量结点共同维护的庞大散列表,散列表被分割成不连续的块,每个结点被分配一个属于自己的散列块,并成为这个散列块的管理者。

半分布式拓扑

1.半分布式拓扑选择了性能较高的结点作为超级结点,在各个超级结点上存储其他部分结点的信息,检索算法仅在超级结点间转发,超级结点再将查询请求转发给适当的叶子结点。
2.该拓扑结构的网络系统有较好的性能和扩展性、且支持复杂查询、易于管理维护。但对超级结点仍存在一定依赖。KaZaA就是一款典型的半分布式拓扑的P2P文件共享软件。
分布式计算、云计算与大数据概论心得理解_第5张图片

四种P2P网络拓扑比较

分布式计算、云计算与大数据概论心得理解_第6张图片

P2P编程实践

NAPSTER

分布式计算、云计算与大数据概论心得理解_第7张图片
Napster是一款著名的MP3共享软件,用户通过它不仅可以下载自己想要的音乐,还可以为其他用户提供下载服务。

Gnutella

分布式计算、云计算与大数据概论心得理解_第8张图片
Gnutella是一种全分布式非结构化的P2P网络文件共享技术,是遵守Gnutella协议和客户端软件的统称。所有基于Gnutella技术的客户端都被称为在Gnutella网络上,理论上可以通过连接与网络上的任何一台计算机进行通信。

P2P网络中,结点间通信就会牵扯到怎样在庞大的P2P网络中搜索到目标结点,这也是P2P应用的核心技术。早期的Gnutella采用的是基于完全随即图的Flooding(洪泛)搜索算法。Flooding算法会导致网络的可扩展性降低。
分布式计算、云计算与大数据概论心得理解_第9张图片

Chord

分布式计算、云计算与大数据概论心得理解_第10张图片
Chord算法中按结点ID大小排列成一个圆环,每个结点指针表中包含了部分结点的定位信息。当一个结点发出查询请求时,若结点ID小于请求资源ID,则将该结点的请求信息发送给下一个结点,依次传递,直到下一个结点拥有所需资源并返回为止。

KaZaA

KaZaA是一款优秀的基于半分布式P2P模式的文件共享软件,它可以用来进行简易搜索,获取音乐、影片、软件和游戏等。

基于P2P范型的即时聊天系统

系统的功能

1、点对点单人聊天
2、多人同时在线聊天
3、用户可以自由加入和退出系统
4、具备用户在线状态监视

P2P研究现状与发展前景

研究现状

国外

1、微软成立了Pastry项目组,主要负责P2P技术的研究工作,并开发了一些基于Pastry的应用。
Intel早在2000年就成立了P2P工作组,并研发了基于.NET框架的P2P Accelerator Kit和P2P安全API软件包,使得.NET开发人员可以迅速2、地建立安全的P2P应用。
3、IBM提出了Smart Networking(类似于半分布式拓扑的网络),及网格计算技术等。
4、Sun公司开展的JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可加入该项目。JXTA的核心业务是认证、资源发现和管理。

国内

1、POCO是一款领先的多媒体文件分享平台,它是基于无中心服务器的第三代P2P模式的,提供了断点续传、多点传输等技术,保障了网络通信的稳定性和高校性。
2、北京大学网络实验室开发的文件共享系统Maze,它结构上采用类似于Napster的中心化拓扑,而搜索算法上采用类似于Gnutella中的改良算法。
3、清华大学的P2P文件存储服务系统Granary。
4、中科院计算所研发的即时通讯和资源共享软件WonGoo。

发展前景

1.云计算为P2P带来了极光,它们相辅相成,通过把云分散到网络的大众主机中,避免了云过分集中的情况。
2.物联网技术将人们生活中一切可能的事物都加入到网络中。而P2P为物联网结点的组织、通信及信息服务的发现等提供了技术支持,是物联网发展不可或缺的技术。
3。P2P技术与IPv6的结合也是目前研究的热点。
-------此外,来势汹涌的大数据时代也扩展了P2P的应用范围。通过P2P技术对庞大的分布式数据进行检索、挖掘等,是许多学者研究的课题之一。
------在P2P技术发展的同时,也会遇到一些挑战。

你可能感兴趣的:(技术)