目前,P2P已经作为一种流行的网络技术被越来越多地应用于互联网的文件共享、分布式计算、资源搜索等领域。P2P技术将各个用户节点互相结合成一个网络,共享其中的带宽,共同处理其中的信息。P2P网络是去中心,自组织和从单纯意义上来说的动态的(网络),并且为传统的服务器-客户端计算模型提供另外一种选择,体现了自组织的组网思想。目前,在学术界、工业界对于P2P没有一个统一的定义,都分别从不同的应用角度描述出P2P的应用特点。P2P的共同点就是它打破了传统的Client/Server(C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。
P2P网络工作的三个基本步骤包括:找到网络人口,进人网络;找到需要进行交互的对等端,与对等端进行交互。其基本原理与P2P网络拓扑结构有着密切的关系。
P2P组网机制与移动自组网有许多相似之处,如全分布的体系结构、自组织及动态变化的拓扑结构等。
1.无结构化P2P网络
(1)集中式
以Napster为代表,其本质上并非纯粹的P2P系统。Napster通过一个中央索引服务器保存用户所共享的音乐文件索引和存放位置的信息。当用户需要某个音乐文件时,首先与中央索引服务器建立连接并进行相关检索,得到服务器返回的文件所有者信息后,与所有者建立连接进行文件传输。集中式的P2P网络维护简单、检索效率高。但由于整个系统依赖于中心索引服务器,存在单点失效问题。同时,该类系统的可扩展性较差,无法动态适应网络规模的变化,随着网络规模的扩大,对中央索引服务器进行维护和更新的成本也将急剧增加,因而集中式拓扑结构不适合于大型网络应用。
(2)全分布式
以其典型代表Gnutella来说明其原理,Gnutella是一个无中心的纯P2P网,每个结点都随机维护自己本地局部的拓扑连接关系,采用了基于完全随机图的“泛洪”发现和随机转发机制。当需要进行信息查找时,Gnutella系统将发送一个广播消息给周边的结点,询问是否有相关的内容。如果周边结点存在相关的内容,则向查询结点发回查找结果。尽管Gnutella系统的这种基于“洪泛”的查询技术支持语义查询,能有效定位复制率很高的内容,能够适应动态变化的P2P网络环境,但这种查询机制无法定位网络中稀缺的内容,随着查询数目和网络规模的增加,每个节点的负荷也快速增加,使得网络不具有可扩展性。
(3)层次化
层次化的拓扑充分考虑了节点能力的异构性,选择处理、存储、带宽等性能较高的节点作为超级节点,其他节点作为普通节点。每个超级节点管辖一定的普通节点,存储所辖范围内普通节点的文件索引。查询请求只在超级节点之间转发,超级节点负责将这些请求转发给适当的叶节点。混合式拓扑实际上是一个分层拓扑结构,超级节点之间构成一个高速的查询请求转发层,不仅减小了查询时延,又极为有效地减少了洪泛的查询请求流量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)