热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

P2P网络技术

第2章P2P网络技术Clarensis2.1.对等网络的定义P2P有两个层面的基本含义[4]:其一,对等网通信模式层面,

2 P2P网络技术


Clarensis


2.1.对等网络的定义

 P2P 有两个层面的基本含义[4]:其一,对等网通信模式层面,这种模式区别于传统的客户机/服务器或者主/从(Master/Slave)模式,每个通信方都具有相同的能力,并且每个通信方都可以发起一个通信过程。其二,对等网络层面,对等网络是运行在互联网上的动态变化的逻辑网络。这个网络是由一些运行同一个网络程序的客户端彼此互连而构成的,客户端彼此间可以直接访问存储在对方驱动器上的文件。


2.2.对等网络的特点

与传统的分布式网络不同点在于,P2P网络的目的是将频繁联接和离开P2P网络的主机整合起来。简单的说,P2P网络其实是在当前的实际网络之上通过路由机制实现的一种应用层上的覆盖网。对等网有其显著的特点。

(1)        分散化(Decentralization)

网络中的资源和服务分散在节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间服务器的介入,避免了可能的瓶颈。即使是在混合P2P中,虽然在查找资源、定位服务或安全检验等环节需要集中式服务器的参与,但主要的信息交换最终仍然在节点中间直接完成。这样就大大降低了对集中式服务器的资源和性能要求。分散化是P2P的基本特点,由此带来了其在可扩展性、健壮性等方面的优势

(2)        可扩展性(valuable externalities)

在传统的C/S架构中,系统能够容纳的用户数量和提供服务的能力主要受服务器的资源限制。为支持互联网上的大量用户,需要在服务器端使用大量高性能的计算机,铺设大带宽的网络。为此机群、cluster等技术纷纷上阵。在此结构下,集中式服务器之间的同步、协同等处理产生了大量的开销,限制了系统规模的扩展。而在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。即使在诸如Napster等混合型架构中,由于大部分处理直接在节点之间进行,大大减少了对服务器的依赖,因而能够方便地扩展到数百万个以上的用户。而对于纯P2P来说,整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。P2P可扩展性好这一优点已经在一些得到应用的实例中得以证明,如NapsterGnutellaFreenet

(3)        健壮性(robustness)

在互联网上随时可能出现异常情况,网络中断、网络拥塞、节点失效等各种异常事件都会给系统的稳定性和服务持续性带来影响。在传统的集中式服务模式中,集中式服务器成为整个系统的要害所在,一旦发生异常就会影响到所有用户的使用。而P2P架构则天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。而且P2P模型一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。事实上,P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。一些P2P模型还能够根据网络带宽、节点数、负载等变化不断地做自适应式的调整。

(4)        匿名性(anonymity)

随着互联网的普及和计算/存储能力飞速增长,收集隐私信息正在变得越来越容易。隐私的保护作为网络安全性的一个方面越来越被大家所关注。目前的Internet通用协议不支持隐藏通信端地址的功能。攻击者可以监控用户的流量特征,获得IP地址。甚至可以使用一些跟踪软件直接从IP地址追踪到个人用户。在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。

(5)        高性能(good performance)

性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。而在目前的互联网上,这些普通用户拥有的节点只是以客户机的方式连接到网络中,仅仅作为信息和服务的消费者,游离于互联网的边缘。对于这些边际节点的能力来说,存在极大的浪费。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。这与当前高性能计算机中普遍采用的分布式计算的思想是一致的。但通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。


2.3.对等网的体系结构

对等网络中的计算机(称为对等机)通过直接交换共享计算机资源和服务的网络,网络中所有的结点是对等的,具有相同的责任与能力并协同完成任务,对等机兼有客户机和服务器的功能。对等点之间通过直接互连实现信息、处理器、存储甚至高速缓存等资源的全面共享,无需依赖集中式服务器支持,消除了信息资源孤岛和C/S 模型中的服务瓶颈问题。随着像NapsterGnutellaFreenet, KaZaA 等对等计算信息共享应用系统的流行,代表了对等计算系统的体系结构也发生了由Napster 的集中查询到早期Gnutella 的自由连接,再到当前Gnutella等的偏向于强结点的自由连接的逐步演变。

在结构上对等网络分为三种类型:

(1)        非结构化P2P系统:

系统的特点是文件的发布和网络拓扑松散相关。该类方法包括NapsterKaZaAMorpheusGnutellaNapster是包含有中心索引服务器的最早的P2P文件共享系统,存在扩展性和单点失败问题。 GnutellaMorpheus是纯P2P文件共享系统,后者如今并入前者中;KaZaA是包含有超级节点的混合型P2P文件共享系统。KaZaAMorpheusGnutella等系统采用广播或者受限广播来进行资源定位,具有较好的自组织性和扩展性,适用于互联网个人信息共享。缺点是稀疏资源的召回率低。

(2)        结构化P2P系统:

系统特点是文件的发布和网络拓扑紧密相关。文件按照P2P拓扑中的逻辑地址精确的分布在网络中。这类系统包括CANTAPESTRYCHORDPASTRY,以及基于这些系统的一些其它文件共享和检索方面的研究实验系统。在这类系统中每个节点都具有虚拟的逻辑地址,并根据地址使所有节点构成一个相对稳定而紧致的拓扑结构。在此拓扑上构造一个存储文件的分布式哈希表DHT,文件根据自身的索引存储到哈希表中。每次检索也是根据文件的索引在DHT中搜索相应的文件。生成文件的索引的方法有三种:根据文件的信息生成的哈希值(HASH),如CFSOCEANSTOREPASTMnemosyne等;根据文件包含的关键字生成关键字索引;还有根据文件的内容向量索引,如Psearch

(3)        松散结构化P2P系统:

此类系统介乎结构化和非结构化之间。系统中的每个节点都有分配有虚拟的逻辑地址,但整个系统仍然是松散的网络结构。文件的分布根据文件的索引分配到相近地址的节点上。随着系统的使用,文件被多个检索路径上的节点加以缓存。类似的系统包括FreenetFreehaven等。相关系统非常强调共享服务的健壮性(安全性)。

从非结构化到结构化再到融合后的混合结构是当前P2P网络发展的趋势。


2.4.对等网络类型的发展

非结构化网络的典型代表如Gnutella 0.4Freenet 一类, 这类对等计算网络是通过广播机制或带有趋向性的广播机制进行对象的搜索, 这种对等计算网络的优点是简单易行, 每个peer 不用维护复杂的状态信息, 比较适合于构造面向信息共享的对等计算系统;但是,由于自由连接的随意性,使得数据查询必须依靠广播(flooding)或者随机走步的搜索来完成,耗费大量的网络开销,因此,系统的可扩展性受到严重限制。

Napster 是最早的实用化对等计算系统之一,也是非结构化网络的典型代表。它的结构模式为中心文件目录/分布式文件系统,数据交换是通过中央服务器进行目录管理,主要用来进行文件共享。这种集中性质为开放性的共享系统提供了强大的管理能力,服务器和结点之间的信息传输数据量很小,主要的数据传输在结点之间进行,避免了网络的拥塞。由于Napster 仍然是一个集中式的系统,不可避免地存在单点瓶颈问题。

2-4-1 主要对等网络系统发展历程


年份

名称

用户数量

覆盖网络类型

用途

1999

Napster

5000万注册用户

混合方式

音乐歌曲下载

1999

SETI@Home

300万用户参与

混和方式

寻找外星文明

2000

Gnutella

在线用户超过100

纯对等方式

文件共享

2000

FreeNet

未知

纯对等方式

文件匿名共享

2000

JXTA

未知

P2P系统平台

统一的P2P系统开发平台

2001

KaZaA

在线用户300

层次化对等方式

文件共享,使用了加密技术

2002

Bit Torrent

200万同时在线

集中服务器方式

文件共享


 

 

2-4-1 对等网络分类

 

 

GnutellaNaspter的体系结构进行了彻底的改变,不再使用中心目录服务器,转而使用全对等结构。为便于新结点的加入,Gnutella 协议利用网络中的一些中心服务器暂存对等点的连接信息,无集中管理,结点是完全对等的。由于早期Gnutella 网络中结点接近于绝对的自由,这样形成的对等计算网络很难进行诸如安全、流量等控制,系统的检索也由于泛洪式搜索影响了效率。改进后的Gnutella网络将系统中的节点划分成三类,利用系统中的强结点搭成系统的主干框架,而弱结点附属在临近的强结点上。弱结点只连接一个或几个强结点,并把自己的元数据(即共享文件的列表)发送给强结点,文件搜索只在强结点上进行。这样就形成一种双层结构的混合模式,系统因此可以获取更高的稳定性和检索效率。[2-4-1][2-4-1]分别描述了对等网络的分类和客户端软件的形成历史。


推荐阅读
  • 英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
    英特尔在数据创新峰会上发布了第三代至强可扩展处理器和第二代傲腾持久内存,全面增强AI能力和系统性能。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • 华硕笔记本无法开启热点的解决办法
    当您的华硕笔记本电脑无法开启热点时,可能是因为多种原因导致的。本文将详细介绍几种有效的解决方法,帮助您快速恢复热点功能。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • PHP函数的工作原理与性能分析
    在编程语言中,函数是最基本的组成单元。本文将探讨PHP函数的特点、调用机制以及性能表现,并通过实际测试给出优化建议。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
  • 本文详细介绍了Java中HashSet的工作原理及其源码分析。HashSet实现了Set接口,内部通过HashMap来存储数据,不保证元素的迭代顺序,且允许null值的存在。文章不仅涵盖了HashSet的基本概念,还深入探讨了其内部实现细节。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • 本文详细介绍了HashSet类,它是Set接口的一个实现,底层使用哈希表(实际上是HashMap实例)。HashSet不保证元素的迭代顺序,并且是非线程安全的。 ... [详细]
  • 首部|接口类型_OSI 7层模型 & TCP/IP协议首部封装格式解析
    首部|接口类型_OSI 7层模型 & TCP/IP协议首部封装格式解析 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
author-avatar
dyh81216462
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有