什么是p2p
共 1863字,需浏览 4分钟
·
2022-01-11 22:31
点对点即Peer-To-Peer,通常简写为P2P。所谓网络中的点对点,其实可以看成是一种对等的网络模型。P2P其实是实现网络上不同计算机之间,不经过中继设备直接交换数据或服务的一种技术。P2P由于允许网络中任一台计算机可以直接连接到网络中其他计算机,并与之进行数据交换,这样既消除了中间环节,也使得网络上的沟通变得更容易、更直接。
P2P作为一种网络的模型,它有别于传统的客户/服务器模型。客户/服务器模型一般都有预定义的客户机和服务器。而在P2P模型中并没有明确的客户端和服务器,但其实在P2P模型中,每一台计算机既可以看成是服务器,也可以看成是客户机。在网络中,传统上的客户机/服务器通讯模型中,发送服务请求或者发送数据的计算机,一般称为客户机;而接收、处理服务或接收数据的计算机称为服务器。而在P2P网络模型中,计算机不仅接收数据,还有发送数据,不仅提出服务请求,还有接收对方的服务请求。
程序中所谓“服务器”并不是硬件中的服务器,而是接收、处理服务或接收数据的计算机,即完成接收任务的就需要有Server端。
在网络利用通讯程序进行通讯的任一计算机,在通讯之前,都需要侦听端口号,接受其他机器的连接申请,并在连接建立后,就可以接收对方发送来的数据;同时也可以向其他机器提出连接申请,并在对方计算机允许建立连接请求后,发送数据到对方。可见在网络中进行P2P网络通讯的任一计算机既是客户机,同样也是服务器。
程序的关键步骤就是实现信息在网络中的发送和接收。程序在处理数据发送和接收时采用不同的端口号,网络点对点通讯程序并不像客户端/服务器端模型程序那样,分成客户端程序和服务器端程序。它是集客户端程序和服务器端程序于一身。
p2p的特点
在传统的C/S模式网络系统中,客户端之间的交互需要依赖中心化的服务器进行。当网络规模变得庞大时,这些中心服务器的负担就会越来越重,很容易成为网络瓶颈。而且一旦服务器崩溃,就会造成整个网络瘫痪(单点故障的风险)。而P2P网络由于没有中心服务器,不存在单点性能上的瓶颈,每个节点在充当客户端的同时,也可以作为服务端给其他相邻节点提供服务,极大地提高了资源的利用率。
总结来说,P2P网络的特点如下:
(1)可扩展性。在P2P网络中,用户可以随时加入、离开网络。而且随着用户节点的加入,系统整体的服务能力也在相应的提高。例如p2p下载中,加入的用户越多,则P2P网络中提供的资源就越多,下载速度就越来越快。
(2)健壮性。由于P2P不存在中心化服务器,天生就具备耐攻击和高容错的特点。即使网络中某个节点被攻击或下线,也不影响整个系统的正常运行。因为P2P网络中每个节点都可以充当服务端的角色。
(3)高性价比。采用P2P结构的网络,可以有效地利用互联网中大量分散的普通用户节点。充分利用这些普通节点中闲散的CPU、带宽、存储资源,从而达到高性能计算和海量存储的目的。例如:迅雷旗下的星域CDN产品,就是充分利用每一个普通用户机器的闲散网络资源,从而提供一个高性价比的服务。类似的还有360共享云、国外的sia网盘等。
(4)隐私保护。在P2P网络中,由于信息的传输分散在各个节点之间,而无需经过中心服务器。这样就减少用户隐私信息被窃听和泄露的风险。
(5)负载均衡。由于P2P网络中,资源分散存储在多个节点上,而每个节点又都可以充当服务器的角色。当某个节点需要获取资源时,只需要向相邻节点发送请求即可,很好地实现了整个网络的负载均衡。
p2p的主要功能
P2P网络的主要功能可以分为如下3种:
数据发布和传输 数据存储和检索 分布式数据处理 (1)数据发布和传输有3种方式,分别是一对一(如即时通讯)、一对多(如群组通信和消息广播)和多对多(如内容分发应用:BT、PPS等)
(2)数据存储和检索分为基于结构化的P2P网络方法和基于非结构化的P2P网络方法。结构化的P2P网络也就是基于分布式哈希表(DHT)的P2P网络,这个也是目前应用最广泛的,它的网络拓扑结构是确定的。而非结构化的P2P网络的资源存储通常与网络拓扑结构无关,例如Gnutella。
(3)目前,大多数分布式数据处理技术采用的是master/slave的架构。而基于P2P网络,也能够进行分布式的数据处理。