基于Chord协议的混合P2P模型+
- 格式:pdf
- 大小:292.10 KB
- 文档页数:3
对等网络 (P2P一、概述(一定义对等网络 (P2P网络是分布式系统和计算机网络相结合的产物 ,在应用领域和学术界获得了广泛的重视和成功 ,被称为“改变 Internet 的新一代网络技术〞。
对等网络 (P2P:Peer to Peer。
peer指网络结点在 :1 行为上是自由的—任意参加、退出 ,不受其它结点限制 ,匿名 ;2 功能上是平等的—不管实际能力的差异 ;3 连接上是互联的—直接 /间接 ,任两结点可建立逻辑链接,对应物理网上的一条IP 路径。
(二 P2P网络的优势1、充分利用网络带宽P2P不通过效劳器进行信息交换 ,无效劳器瓶颈 ,无单点失效 ,充分利用网络带宽 , 如 BT 下载多个文件 ,可接近实际最大带宽 ,HTTP 及 FTP 很少有这样的效果2、提高网络工作效率结构化 P2P 有严格拓扑结构 ,基于 DHT, 将网络结点、数据对象高效均匀地映射到覆盖网中 ,路由效率高3、开发了每个网络结点的潜力结点资源是指计算能力及存储容量,个人计算机并非永久联网,是临时性的动态结点,称为“网络边缘结点〞。
P2P 使内容“位于中心〞转变为“位于边缘〞,计算模式由“效劳器集中计算〞转变为“分布式协同计算〞。
4、具有高可扩展性 (scalability当网络结点总数增加时 ,可进行可扩展性衡量。
P2P 网络中 ,结点间分摊通信开销 ,无需增加设备 ,路由跳数增量小。
5、良好的容错性主要表达在 :冗余方法、周期性检测、结点自适应状态维护。
二、第一代混合式P2P网络(一主要代表混合式 P2P 网络 ,它是 C/S 和 P2P 两种模式的混合 ;有两个主要代表 :1、Napster—— P2P网络的先驱2、BitTorrent——分片优化的新一代混合式P2P网络(二第一代 P2P网络的特点1、拓扑结构1 混合式 (C/S+P2P2 星型拓扑结构 ,以效劳器为核心2、查询与路由1 用户向效劳器发出查询请求,效劳器返回文件索引2用户根据索引与其它用户进行数据传输3路由跳数为 O(1,即常数跳3、容错性 :取决于效劳器的故障概率(实际网络中 ,由于本钱原因 ,可用性较低。
计算机三级网络技术P2P网络概述引导语:P2P是无中心效劳器、依靠用户群(peers)交换信息的互联网体系。
以下是分享给大家的P2P网络概述,欢送阅读!P2P网络可以简单地定义成通过直接交换来共享计算机资源和效劳。
在P2P网络中,成千上万台计算机都处于对等的地位,整个网络不依赖于专用的集中效劳器。
每一台计算机都能充当网络效劳的请求者,又能对其他计算机的请求作出响应,提供资源和效劳。
P2P是Peer to Peer(表示地位、能力上同等、同事或伙伴的意思)的简称。
P2P也可以理解为端对端的意思,或称为对等网。
P2P网络存在4种主要的结构类型。
(1)以Napster为代表的集中目录式效劳在这种形式中有一个中心效劳器来负责记录共享信息以及答复对这些信息的查询。
利用集中式拓扑结构的P2P系统被称为第一代P2P系统,其代表软件是Napster和Maze。
(2)以Gnutella为代表的分布式非结构化P2P网络结构这种结构采用随机图的组织方式形成一个松散的网络。
采用分布式非结构化拓扑结构的P2P即时通信软件的代表有Gnutella、Shareaza、Lime Wire和BearShare。
(3)以Pastry、Tapestry、Chord、CAM为代表的分布式结构化P2P网络结构这种结构基于分布式散列表(Distributed Hash Table,DHT)的分布式发现和路由算法。
这类结构的P2P网络重点研究的是如何有效地查找信息,最新的成果是基于分布式散列表(DHT)的分布式发现和路由算法。
采用这种结构的P2P网络系统有Pastry、Tapestry、Chord和CAN。
(4)以Skype、eDonkey、BitTorent、PPLive为代表的混合式P2P网络结构混合式P2P网络在分布式模式的根底上,结合了集中式和分布式拓扑结构的优点,将用户结点按能力进行分类,使某些结点担任特殊的任务。
目前采用此类结构的P2P网络系统有Slcype、 Kazaa、eDonkey、BitTorent和PPLive。
感谢sparkliang的精彩翻译与注解Chord:一个用于网络应用的可扩展的P2P查询服务Ion Stoica*, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT Laboratory for Computer Science chord@/chord/摘要P2P(peer-to-peer)系统面临的一个根本问题就是如何有效的定位到存储特定数据项的节点。
本文提出了Chord,一个分布式查询协议来解决这个问题。
Chord专为一种操作提供支持:给定一个key,它将key映射到对应的节点上。
基于Chord,通过把key和每个data item (数据项)关联起来,并把该key/data item对存储到key映射到的节点上,很容易就可以实现数据定位。
Chord可以有效的适应节点加入、离开系统,并且可以在系统持续变动的状态下应答查询。
理论分析、模拟和实验结果表明,Chord是一个可扩展的协议,并且通信代价和每个节点状态信息维护的代价都是系统中Chord节点个数的对数。
1 介绍P2P系统和应用都是没有中心控制节点或者层次化组织结构的分布式系统,系统中的节点在功能上都是相同的。
近来,许多P2P应用都具有冗余存储(redundant storage)、持久化(permanence)、临近服务器选择(selection of nearby servers)、匿名访问(anonymity)、搜索(search)、认证(authentication)和分级命名(hierarchical naming)等许多特征。
然而绝大部分P2P系统中,最核心的操作是高效的数据定位。
本文的贡献就在于提出了一个能为节点频繁加入、离开的动态P2P系统提供有效查询操作的可扩展协议。
【译注:数据定位(data location)、查询(query、lookup)都是一回事】实际上Chord协议仅支持一种操作:把一个给定的key映射到一个节点(node)上。
—112—36卷 第7期ol.36 No.7 2010年4月A 基于Chord 协议的混合P2P 模型曾晓云(广西财经学院计算机与信息管理系,南宁 530003)摘 要:在结构化点对点(P2P)模型中,节点异构性会引起系统的不稳定。
针对该问题,结合混合P2P 模型的优点,构造一个基于Chord 协议的混合P2P 模型,将节点按处理能力分为超节点和普通节点,多个超节点被组织到同一个群组中,由超节点管理普通节点以提高系统稳定性。
该模型采用基于拓扑感知的搜索算法,能较好地解决分布式哈希表(DHT)技术的路由绕路问题。
实验证明,该模型在一定程度上降低查询延时,可提高查询效率。
关键词:点对点;结构化P2P 模型;基于拓扑感知的搜索算法Hybrid P2P Model Based on Chord ProtocolZENG Xiao-yun(Department of Computer and Information Management, Guangxi University of Finance and Economics, Nanning 530003)【Abstract 】Aiming at the system instability of structured P2P model which is caused by the heterogeneity of nodes in model, this paper proposes a Hybrid Structure P2P network based on the Chord(HSChord). The model is combined with the advantages of hybrid P2P model. According to the nodes’ processing power, it divides nodes into super-nodes and ordinary-nodes. In this model, some super-nodes are organized into the same group, and manage the ordinary-nodes to improve system stability. The model proposes search algorithm which is based on topology-aware. The algorithm can solve the routing detour which is caused by DHT technical inquiries better. Experimental results show that the search algorithm can reduce the query delay and improve the efficiency of query.【Key words 】P2P; structured P2P model; search algorithm based on topology-aware计 算 机 工 程 Computer Engineering 第V pril 2010网络与通信· 文章编号:1000—3428(2010)07—0112—03文献标识码:A中图分类号:TP393·1 概述P2P 网络拓扑模型和搜索技术是网络应用研究的热点问题。
其中,基于分布式哈希表(DHT)技术的结构化网络具有无中心控制、可扩展性强及高效的查询等特性。
但是DHT 技术会破坏节点的物理拓扑位置信息,导致节点间产生“路由绕路”[1]问题。
其次,DHT 技术没有考虑节点的异构性,节点的频繁加入、退出会造成网络路由波动。
此外,性能较差的节点直接加入系统会成为潜在的瓶颈。
而混合结构的P2P 系统能较好地考虑节点的异构性,使不同性能的设备承担不同的任务。
本文在Chord 协议的基础上,结合混合P2P 模型的优点,构造基于Chord 协议的混合结构P2P 网络模型(Hybrid Structure P2P network based on the Chord, HSChord)并设计相应的搜索算法解决上述问题。
2 HSChord 的体系结构和基本原理2.1 HSChord 模型的体系结构在HSChord 模型中,每个节点都有唯一的ID 和IP 地址,多个节点组成一个群组,设G i 表示群组的ID ,S i_j 表示某个群组G i 的超节点。
HSChord 模型的体系结构分为上下2层。
Client 层位于模型的下层,以群组的形式组织,由物理距离较近的节点组成。
每个群组有一个或多个超节点;能力较弱的普通节点是超节点的叶子节点。
Group 层位于模型的上层,是基于Chord 协议组织的一个结构化P2P 网络覆盖层。
Chord 环上的每个节点是包含多个节点的群组(也称为虚拟节点),群组里的每个超节点都要保存并维护一个指针表FingerTable ,用于保存Chord 环上群组之间的路由关系。
在HSChord 模型中,FingerTable 中的SuccessorGroup 表示后继群组,其实就是管理这个后继群组的所有超节点的信息列表。
HSChord 模型的结构如图1所示,群组G 8的超节点S 8_1和S 8_2的FingerTable 的结构如图2所示。
图1 HSChord 模型结构作者简介:曾晓云(1980-),女,讲师、硕士研究生,主研方向:网络应用,计算机软件理论收稿日期:2009-11-20 E-mail :xxxxxx2003@图2群组G8的超节点S8_1和S8_2的FingerTable结构Group层的主要作用是利用Chord环的特点,使用DHT 的高效定位查询算法,完成全网范围内的节点的发现定位和路由。
2.2 拓扑感知的基本原理为进一步降低查询延时,本文根据PNS[2]原则,使用Vivaldi[3]来对FingerTable进行改进。
Vivaldi[3]是一个网络坐标系统,该坐标系统可以根据节点的坐标去预测节点之间的延迟。
本文对超节点的指针表FingerTable的改进如下:使用Vivaldi[3]计算群组n的某个超节点S与区间[n+2i, n+2i+1)中最开始的x个群组中各超节点的距离,找出与S延迟最小的群组;在FingerTable上加一列NearGroup,将选出的延迟最小的群组作为NearGroup的第i项。
改进后的FingerTable结构如图3所示(虚线箭头表示在区间[n+2i, n+2i+1)中与当前超节点延迟最小的群组)。
图3 改进的FingerTable结构2.3 HSChord模型的数据结构群组中的各超节点还要保存一个超节点列表(SPTable),记录所在群组的所有超节点的信息,以图3中群组G8的超节点为例,它们的SPTable表结构如表1所示。
为方便管理共享资源,超节点还保存一个资源索引表(ResourceTable),结构如表2所示。
每个超节点要用表PredecessorGroup来保存自己所在群组的直接前趋群组信息,结构如表3所示。
同一群组里的FingerTable, SPTable, ResourceTable和Predecessor Group要保持一致。
表1 群组G8的超节点列表(SPTable)SuperpeerID IP AbilityS8_1122.35.13.1 C8_1S8_2122.35.9.25 C8_2表2 共享资源索引表(ResourceTable)keyID ResourceIP0x3768 13.0.42.360x3760 13.0.73.13 表3 群组G8的直接前驱信息表(PredecessorGroup)SuperpeerID IPS1_1S1_1.IPS1_2S1_2.IPS1_3S1_3.IPS1_4S1_4.IP3 HSChord模型的维护3.1 HSChord模型的生成和节点的加入创建群组的节点被认为是群组的第一个超节点,称为群首节点,该群组的ID是对群首节点的IP地址进行哈希后得到的。
新节点请求加入时,首先判断其能力是否达到超节点的要求,如果是,则进一步判断该节点与其他群组的距离大小,从而决定新节点是作为超节点加入已有群组还是作为群首节点生成新的群组;如果请求加入的节点达不到成为超节点的要求,则作为普通节点加入某个已存在的群组。
设A是请求加入的节点,S是与A距离最近的超节点,d AS表示A与该超节点S的距离,由于同一个组群内的超节点彼此距离较近,因此可以近似地认为d AS是节点A与S所在群组的距离,d表示设定的距离阈值;C A表示节点A的能力,C表示设定的能力阈值;m G表示当前群组G的超节点数目,m表示设定的群组超节点数阈值。
下面将对新节点加入的3种情况分别进行详细描述:(1)新节点作为超节点加入已存在的群组如果A的处理能力大于设定的能力阈值C,且A与某个群组的距离较近(≤d),则A以超节点的身份加入与该群组。
加入过程的形式化描述如下:1)在离A较近的群组(两者的距离≤d)中选择一个与A距离最近的群组,转入2)。
2)A向该群组中的群首节点发送加入请求,如果当前群组的超节点数目m G未达到m,则转入3)。
否则转入5)。
3)允许A作为超节点加入,群首节点将A的信息加入自己的SPTable;然后将自己的FingerTable, PredeccessorGroup, ResourceTable和SPTable复制给A,并通知本群组的其他超节点修改各自的SPTable。
4)A通知直接后继群组的所有超节点,将A的信息添加入它们的PredeccessorGroup。
加入过程结束。
5)A重新选择下一个与之距离最近的群组(≤d),若该群组存在,则转入2)。
否则A就作为群首节点创建新的群组加入Chord环,加入过程结束。
(2)新节点加入并形成新的群组如果一个节点A作为群组首节点创建新的群组加入Chord环,则它需要借助任意一个已知的超节点S进行引导。
因为群组是Chord环上的虚拟节点,群首节点可以代表一个群组,而新加入的群组其实是一个节点,所以新节点A作为群组加入Chord环的过程类似于传统Chord环中的新节点加入。
—113—加入过程的形式化描述如下:1)A初始化自身FingerTable中start域。
2)向引导节点S发送定位消息,定位finger[1].start的后继群组,这个后继群组也同样是新加入节点A的后继群组。
3)A根据其直接后继群组的超节点的PredecessorGroup 更新自身的PredecessorGroup,然后用A的值更新直接后继群组中所有超节点的PredecessorGroup。