什么是P2P
P2P,是Peer-To-Peer 的简称,翻译成"对等网络"或者"点对点网络"。P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。
在介绍对等网络网络之前,我们先看看传统的Client/Server (C/S)模式是怎样的。
在传统的C/S模式下,我们想要下载一个20G的电影,我们需要找到一个提供该电影资源的网站,然后连接网站的服务器连续下载。也就是要从文件原始位置开始下载这20G的完整数据。
这种下载方式有什么缺点?
1、首先这种方式比较依赖服务器的可用性,也就是说,如果服务器挂了,那么就电影的下载不得不终止。
2、如果想要下载电影的人数增多,网站的带宽就会成为瓶颈,就会导致大家下载速度下降,甚至有人无法下载。
3、由于所有资源都通过服务器端输出,存在单点问题,别人想要攻击的话也相对方便,只要攻击服务器就可以了。
正是因为传统的C/S模式存在着这些问题,于是P2P就应运而生。
P2P打破了传统的C/S模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。
在P2P模式下,如果有多个人想要下载同一个电影的话,大家就可以不必分别从服务器下载完整的20G的电影。
由于采用了P2P模式,那么每一个用户就可以既充当客户端又可以充当服务器。
如果4个人同时下载20G电影,那么4个人分别各自下载了不一样的部分,然后在下载的同时进行相互传送。
这样大家一边从服务器下载得到数据,一边从别的下载的人那里得到数据,就比单一从服务器下载来得快。
女朋友内心OS:不是讲P2P吗,这货咋说到下载那去了,难道是要先从快播讲起么?真宅男!不管了,先附和一下吧。
P2P的优点
P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。
因此,当有节点加入且对系统请求增多,整个系统的容量也增大。这是具有一组固定服务器的CS结构不能实现的。
因此在P2P结构中,客户端的增加意味着所有用户更慢的数据传输。
除了速度的提升,P2P技术还有以下几个优点:
非中心化:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。
可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。
健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。P2P网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整。
高性价比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。
隐私保护: 在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。
负载均衡: P2P 网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。
但是,P2P技术也不是毫无缺点的。P2P技术相比于传统的C/S结构有以下两个缺点:
架构较为复杂,除了要有开发服务端,需要专用的客户端。
用在大规模的网路,资源分享紊乱,管理较难,安全性较低。