Java教程

不可不知的P2P(Peer-To-Peer)

本文主要是介绍不可不知的P2P(Peer-To-Peer),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.1 Peer-To-Peer 介绍

目前,在学术界、工业界对于P2P没有一个统一的定义,下面列举几个常用的定义供参考:

定义:1、Peer-to-peer is a type of Internet network allowing a group of computer users with the same networking program to connect with each other for the purposes of directly accessing files from one another’s hard drives.

2、Peer-to-peer networking (P2P) is an application that runs on a personal computer and shares files with other users across the Internet. P2P networks work by connecting individual computers together to share files instead of having to go through a central server.

3、P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。

虽然上述定义稍有不同,但共同点都是P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。P2P与C/S模式的对比如下图所示:

Client/Server模式 Peer to Peer 模式

P2P技术的特点体现在以下几个方面。

  • 非中心化(Decentralization):网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势**。** 可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。 健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。P2P网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整。 负载均衡: P2P 网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。

与传统的分布式系统相比,P2P技术具有无可比拟的优势。同时,P2P技术具有广阔的应用前景。Internt上各种P2P应用软件层出不穷,用户数量急剧增加。2004年3月来自的数据显示,大量P2P软件的用户使用数量分布从几十万、几百万到上千万并且急剧增加,并给Internet带宽带来巨大冲击。P2P计算技术正不断应用到军事领域,商业领域,政府信息,通讯等领域。

根据具体应用不同,可以把P2P分为以下这些类型:

  • 提供文件和其它内容共享的P2P网络,例如、、eDonkey、emule、BitTorrent等; 挖掘P2P对等计算能力和存储共享能力,例如、Avaki、Popular Power等; 基于P2P方式的协同处理与服务共享平台,例如、Magi、Groove、.NET My Service等; 即时通讯交流,包括ICQ、OICQ、Yahoo Messenger等; 安全的P2P通讯与信息共享,例如、Crowds、Onion Routing等。
这篇关于不可不知的P2P(Peer-To-Peer)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!