1、Peer-to-Peer(对等互联、点对点)
- 以非集中方式使用分布式资源来完成关键任务的一类系统和应用
- 资源包括计算能力、数据(存储和内容)、网络带宽和场景(计算机、人和其它资源)
- 关键任务可能是分布式计算、数据/内容共享,通信和协同、或平台服务
通过在系统之间直接交换来共享计算机资源和服务的一种应用模式
3个关键条件
- 具有服务器质量的可运行计算机
- 具有独立于DNS的寻址系统
- 具有与可变连接合作的能力
定义一:P2P是一种通信模型,其中每个参与者都有相同的能 力。在Internet上,P2P是一种网络类型,它允许相同网络 程序的计算机相互建立连接,直接访问对方的硬盘上的文件。
定义二:P2P(peer-to-peer)是一种对等网络计算技术,利 用客户端的处理能力,实现客户端的点到点通信。
2、P2P技术的特点
非中心化(Decentralization):网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进 行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。 P2P的非中心化基本特点,带来了其在可扩展性、健壮性等 方面的优势。
可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求 了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈,理论上扩展性几乎可以认为是无限的。
健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对 其它部分的影响很小。P2P网络还能够根据网络带宽、结点 数、负载等变化不断地做自适应式的调整。
隐私保护: 在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄 漏的可能性大大缩小。在P2P中,所有参与者都可以提供中 中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性
3、p2p的发展
第一代:中央控制网络体系结构
快速搜索/排队响应时间短
简单的协议
提供高性能和弹性
容易中断服务
第二代:分散分布网络体系结构
自组织(ad-hoc)行为,降低拥有者的成本提供可扩展性
搜索/排队响应时间长,造成大量网络流量
用户PC及其与网络连接决定网络弹性和性能
没有中央控制点,不会因为一点故障导致全部瘫痪
第三代:混合网络体系结构
改进搜索/排队响应时间,每次排队产生流量低于分布网络
超对接点和超级智能结点的布设提供高性能和弹性
没有中央控制点,不会因为一点故障导致全部瘫痪
第四代:(动态端口选择、双向下载)
4、P2P应用
计算密集型:把一个大的任务分解成许多可在大量独立对等端省并行执行的子任务。
- 基本思想是:利用连接在因特网上的诸多计算机的空闲周期来解那些需要大量计算的不同问题。
- 通常是那些使用不同参数的相同计算任务:密码破解,风险预测,市场和信誉评估,人口统计分析
构件化应用:还没有广泛认着为P2P应用
- 在许多对等端上运行不同的构件如Workflow , JavaBean, Web Services
集中应用
- 信息存储
- 信息查询(来自网络上各种Peers)
大众模式:内容交换
- 2001年:Napster和Gnutella让Peers搜速和下载文件
- 当前重点是提供可靠性:用户下载文件时的智能选择,重复DB
协同过虑和挖掘开始出现
5、模式与算法
集中目录模式
- 最流行,Napster使用
- 群组的Peers连接到发布其能提供共享内容的中心目录上,匹配请求与索引
- 文件直接交换在两个Peers间进行
- 需要一些可管理的设施(目录服务器:记载群组所有参加者的信息)
- 限制了规模的扩大:大量用户增加->大量请求->大服务器->存储器
- 然Napster经验表明,除开法律问题外,该模式还很有效和强大
洪泛请求模式
过程
- 每个Peer的请求直接广播到连接的Peers
- 各Peers又广播到各自的Peers
- 直到收到应答或 达到最大洪泛步数(典型5-9)
特点
- 无广告性共享资源
- Gnutella 使用该算法,限于公司内通信有效
- 大量请求占用网络带宽,可扩展性并不一定最好
改进
- Kazaa 设立Super-Peer客户软件,以集中大量请求
- BT 文件分块
Cache最近请求
文件路由模式
过程
- 每个网上Peer分配一个随机ID,并知道其他Peers的给定号码
- 当共享文件发布到系统上时,根据文件名字和内容Hash成为ID
- 每个Peer将根据该ID向该文件路由
- 该过程重复执行,直到最近的PeerID是现行Peer的ID
- 每个路由操作还保持文件副本在本地
- 当Peer请求某文件时,该请求将用该文件的ID到达Peer,过程重复直到发现文件副本,最终文件下载到请求源端
6、设计模式
单纯p2p架构:没有专用的服务器,各节点间直接交换数据(使用方便,但没有服务器的协调无法自动搜索扩展)
混合型p2p架构:是单纯型和专用服务器的结合,将p2p和c/s模式结合,中央服务器仅起到协调和扩展的功能(每台计算机的连接和断开都要通过服务器通知网络上有联系的计算机)