用Smallworld设计无组织P2P系统的路由算法
非结构化P2P系统的路由算法
第34卷第1期电子科技大学学报V ol.34 No.1 2005年2月Journal of UEST of China Feb. 2005非结构化P2P系统的路由算法侯孟书,卢显良,周旭,詹川(电子科技大学计算机科学与工程学院成都 610054)【摘要】针对非结构化对等网络中洪泛搜索机制的路由盲目性问题,提出了一种利用节点积累的经验指导节点传播查询的路由算法。
在该路由算法中,节点记录自己关注的主题和满足主题的邻居节点,建立主题与邻居节点的对应关系表,当节点收到查询后节点就利用该表来指导节点选择查询路由,以便更快地找到查询结果。
仿真试验和性能分析表明该算法有效地减少了查询带来的网络流量,提高了查找成功率。
关键词对等网络; 洪泛; 查询; 文件共享中图分类号TP393 文献标识码 ANew Route Algorithms of Unstructured P2P SystemsHOU Meng-shu,LU Xian-liang,ZHOU Xu,ZHAN Chuan(School of Computer Science and Engineering, UEST of China Chengdu 610054)Abstract The problem of the unstructured peer-to-peer system is the scalability of the system due to network traffic cost. This paper presents a new route algorithm of unstructured peer-to-peer system with routing indices. In the algorithm, a peer records the subject which it query about in the past and who can answer the subject. When peers receive a new query, it can forward the query to a selected peer which can answer the subject in the past. In this way the peer reduces the blind search. In the end, we test our design through simulations and the result shows that our design routes the query effectively, and reduces the network traffic greatly, improve the searching success ratio.Key words peer-to-peer network; flooding; query; file sharing在P2P (Peer-to-Peer)系统中,所有节点在功能上是对等的,既可以是客户机又可以是服务器,称为对等机(SERVer-cliENT, servent)。
P2P网络节点自组织聚类算法
熊馨,陈锬:P2P 网络节点自组织聚类算法2010,31(15)33790引言从层次结构上看,P2P 网络覆盖网是建立在底层物理网络之上的虚拟网络结构,节点间通过建立逻辑连接进行数据转发。
覆盖网中的每条逻辑链路都是若干底层物理网络链路的集合,节点间的所有数据传输需要依靠现有的IP 路由基础设施来实现。
因此,覆盖网络拓扑结构是否与底层物理网络拓扑结构相匹配,是影响覆盖网络性能的一个主要因素。
在P2P 网络研究之初,大多采取随机的方式来构造覆盖网络结构,追求的目标是覆盖网层面上可靠的、高效的路由和内容分发方面的负载平衡。
在非结构化P2P 网络中,节点随机选择系统中已知的其它节点建立邻居关系,从而形成一个具有随机性的覆盖网络;在结构化P2P 网络中,节点根据标号(ID )顺序构建路由表以优化路由跳数,但标号通常是散列函数生成的随机数,因此节点间的邻居关系也是随机的。
这种随机选择的方式能满足系统健壮性和负载均衡的需求,但忽略其覆盖网拓扑与底层网络拓扑之间的关系,路由效率没有得到真正优化。
数据在覆盖网络中传输,需要经过底层网络的多次转发,如果两个网络拓扑结构不匹配(Mismatching ),那么逻辑上相邻的节点可能实际物理网络距离相隔很远,虽然数据最终能够抵达目的节点,但这种低效的传输会增大端到端路由的延迟,与覆盖网路由算法追求的结果相去甚远。
同时,以这种非优化的方式转发数据也会导致在底层网络中产生大量不必要的流量,造成对带宽资源的浪费。
为了缓解上述不匹配问题,研究人员提出研究高效的网络感知技术,对覆盖网络结构进行优化,达到提升路由效率同时减少带宽消耗的目的。
近年来,研究人员提出了包括基于网络坐标[1-4]的网络距离预测系统、覆盖网节点聚类算法[5]和基于直接网络距离测量最邻近节点查找算法[6-7]的多种网络感知技术。
其中,对在覆盖网中周围邻近节点信息的获取和对网络距离较近的节点进行聚类是实现网络感知技术的一种有效方法。
P2P搜索算法
点 , 为 sce o( 。如 图 1中关键 字 “ ei e存 记 ucs r s ) L tb” t
放在 scesr5 ) 即节 点 Ns。如 果 是关 键 字 ucs ( 4 , o 6
功则 通 知站 点 a, 如果 不 成 功 则 直接 忽 略 该搜 索 请
求 , 索终 止 。 搜
达到搜索最优。所 以, 如何找到一种能 自动适应不 同 网络 拓扑 结构 的快 速搜 索算 法便 成 了 目前工程 中
迫切需 要解 决 的问题 。
结构 的快 速 搜 索 算 法 F i d Sac 。Fi d— r n er e h rn e S ac 算 法 在 P P网络 中 以 C od环 ¨ 为 基 础 构 erh 2 hr 4
YANG i— o g,LIXu ,Z Ja h n e HOU i—a ,Z Jn c i HANG u Jn
( eat n f l t n D pr me t e r i o E c o c& If mao n ier g u a oma Unvr t, hn sa4 0 8 , hn ) no t nE gnei ,H nnN r l i s y C agh 10 1 C i r i n ei a
chordalgorithm1引言2?论依据资源搜索是目前p2p网络应用的基本问题已著名的社会学心?学家stanleymilgram试验有的研究?1主要从?同的角度来解决互联网资源发现3j通过普及六人次的传递就可以把社会中任搜索带宽消耗高搜索模式简单和搜索结果质??意两个人联系起来这种现象称为smallworld现高等问题
1 引 言
资 源搜 索是 目前 P P网 络应 用 的基 本 问题 , 2 已
2 理 论 依 据
基于语义的p2p路由算法研究综述
Micr ocomputer Applica tions V ol.27,No.7,2011研究与设计微型电脑应用2011年第27卷第7期3文章编号:1007-757X(2011)07-0038-03基于语义的p2p 路由算法研究综述张增杰,刘鑫,李晓城,钱松荣摘要:路由算法在P2P 网路中占有重要的地位,资源的定位、查找均依赖于高效的路由算法。
传统的P2P 网络采用分布式哈希表来进行路由,是与资源的自然语义内容无关的算法,或者说分布式哈希表破坏了自然语言的语义内容。
最近10年以来,语义路由算法在P2P 网络中逐渐兴起。
随着语义网的提出,本体成为自然语言研究方面的热点。
语义覆盖网正是基于本体的知识体系构建的。
而随着社交网路的兴起,又提出了语义小世界的概念。
LSI 、LSH 、VSM 以及各中聚类算法均在P2P 网络的语义路由中得到了广泛的应用。
关键词:语义覆盖网,语义小世界,LSI ,LSH ,空间向量模型中图分类号:TP311文献标志码:A0引言对等网(peer to peer ,P2P)的研究越来越受到科研人员的重视,财富杂志将P2P 技术列为影响Internet 未来的4项科技之一。
与传统的Client/Server 模式不同,P2P 网络中的每个节点的地位都是对等的,既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。
P2P 网络拥有广泛的应用,主要集中在文件信息共享、协同计算和分布式存储等领域。
P2P 网络需要考虑的技术要点主要有路由算法、网络拓扑、网络动态管理、分布式存储算法与查询机制。
传统的P2P 路由算法主要基于分布式哈希表(Distributed Hash Table ,DHT ),近来随着语义网(semantic web )[1]研究的兴起,研究人员将语义引入了P2P网络。
从对传统P2P 网络的改进,到语义覆盖网(semanticoverlay network,SON )、语义小世界(semantic small world)[3]等概念的提出,P2P 网络的语义路由算法已经有了阶段性的进展。
一种改进的无结构P2P网络搜索策略
u u l a s O sr u o s a y l d i sc mmu ia o O t r b e . n t i p p r wep e e t n i r v d s ac rtg r mt cu e l e t eo n c t n C S p o lm I s a e . r sn i h a mp o e r h s ae yf r t rd e t o u u p e — O p e e o k . i smeh d c mbn si tr s d c n c a i i u e r t — e rn t r s Th t o o i e n e et e l e me h s n r mo ra n d t e c aa t r t f w i n m rs e d g a h r cei c o p i n h s i
0 引言
分 布式非结构化 P P网络应用十分广 泛 ,在 It n t 2 ne e r
以需要查 询 每个 节 点是否 有与查 询条 件匹配 的文件 。最
常用的信息资源发现机制是在节点间或超级节点间,把
信息 资源 查询请 求泛 洪到 网络上 。这种结 构的优 点是 网
上 , 非 结 构 化 PP系 统 是 最 常 见 的 , 比 如 G u l 络 具 有 很 强 的动 态 性 ,节 点可 以随 时 离开 和 加 入 网 络 , 2 ntl , ea K ZA aa 等 。在这种系统 中文件 的位 置和覆盖 网完全没有 缺 点是查 找到理 想 的文 件需 要进行 大范 围的搜 索 ,带来
传播中谣言传播机制,结合节点吸弓因子 ( 1 在真实系统中,新增节点不仅与网络中已有的度数较高的节点连
接 ,而且与吸 引因子较大 的节 点连接 ) 的特性 ,提出一种无结构PP 2资源 搜索策 略。本 文采 用MA L B T A 为仿 真工具 ,仿真结果表 明,提 出的搜 索策 略可以有效地减少无结构PP 2 网络中资 源搜索的通信开销 ,并且搜索
基于无结构P2P网络拓扑平衡的Small World模型探讨
An Ex o a i n o m a lW o l o lf r To l g c Ba a c n pl r to fS l r d M de o po o i l n e i Un t u t r d P2 Ne wo k sr cu e P t r s
Ab t a t Ce t i i h s a i g n d s i n t u t r d P2 e wo k r u n r b e t o n e o g s i n sr c : r an h g h rn o e n u s r c u e P n t r s a e v l e a l o c u t rc n e to a d b tl n c s W e p o o e a s l wo l o e c o d n o t e u e s s a i g r s u c n e wo k t — n o te e k . r p s ma l rd m d l c r i g t h s r h rn e o r e a d n t r o a p l g n u s r c u e 2 e wo k Ex e i n ss o t a tc n p e e tt e f r t n o t rs b e n o o y i n t u t r d P P n t r . p rme t h w h ti a r v n h o ma i fs a u n ti o P P n t r a d c n e h b t s m e b l n e f r a lu e s b s i n n h s r s r e c o d n o t er 2 e wo k, n a x i i o aa c o l s r y a sg i g t e u e e v r a c r i g t h i
计算机网络P2P ppt课件
ppt课件
31
优势一
有效消除纯分布式P2P结构 中使用泛洪算法带来的网
络拥塞、搜索迟缓
优势二
确保些恶意的攻击行为在 网络中得到局部控制,一 定程度提供网络负载平衡
劣势一
对超级结点依赖性大,易 于受到集中攻击,容错性
也受到影响
ppt课件
32
BitTorrent
BT俗称变态下载,是一个多点下载的源码公开的点 对点软件,可以让用户快速地上传和下载有庞大数 据量的各类文件。
结构,而是一个随机生成、松散组织的普通图, 但总是符合某种模型的一种结构。 a.小世界模型: 指任一两个网络节点间的距离很 短,并且对每个节点而言,其邻居节点相识 (互相连接)的频率很高,所以节点集群现象 明显。 b.幂律模型: 网络中拥有连接数L的结点占网络 结点总数的份额正比于L-a ,a是取决于网络本身 的常数因子,因此网络中大多数结点连接数很 少,少数结点连接数很多。
ppt课件
34
BT下载的部署
BitTorrent
要完成一个BT下载过程,至少需要一个静态的“元信息”文件(由发 布者建立),一个跟踪(tracker)服务器和终端下载者。这里,终端 下载者指的就是用户的PC,也就是BT的下载客户端。
ppt课件
35
BitTorrent
BT工作原理
BT的工作是从解析元信息文件(.torrent文件)开始的,从.torrent文件里得到 Tracker信息,然后与Tracker交互得到Peer信息,在Peer间进行交互实现下载。
Bram Cohen BT下载创始人
ppt课件
33
传统下载方法与BT下载比较
BitTorrent
HTTP、FTP下载原理
一种基于Small World的P2P覆盖网络的研究
基 于 S l Wol P P覆盖 网络模 型(WP )并在 S P中定义 了一 套 D T协议 , ma r l d的 2 S P, WP H 以该协议为基础 , 出了S P的路 由算法 提 WP 及路 由容错 算法, 分析 了路 由长度及路 由优化方法 , 最后通过数值 实验分析 了S P性 能。 WP 关键词 . 、 ; ,世界 节点 ; ;2 覆盖 网络 J 组 P P;
p s d, n n S P a s to o e a d i W P, e f DHT p o o os a e d f e f rh r r b s d o h s r tc l ,o t g ag r h a d r u i g tl r r t c l r e n d, t e mo e, a e n t e e p oo o s r u i l o t m n o t oe — i u n i n ain ro l oi m r e eo e a d a ls , e a t o n y e r u i g e gh n o t l o t g meh d, n n lz s h t e rr a g rt o h a e d v lp d, n t a t t u h r a a z s o t ln t a d p i r u i to a d a ay e t e h l n ma n c p b l y o W P y e p rme t. a a i t f S i P b xe i ns
定资源搜索性能的一个 重要 因素 。 在许多文献中指出了 P P网 2
l 符 号 与词 汇说 明
假定 , 由数字或者“ 所组成的字符 串。在 , Y是 ’ Y上定
义以下操作 : 字符串 的长度。 字符 串 的第 i 个字符( , , I一 o 0 1 …, l1 x s m th xY i: t ac (, ,)判断 字符 串 和 字符 串 Y在第 i r 位是否
P2P文件共享系统的设计与优化
P2P文件共享系统的设计与优化随着互联网技术的不断发展,P2P(Peer-to-Peer)文件共享系统已经成为人们在互联网上分享和交换文件的主要手段之一。
其实现方式是通过将文件分为多个小块,并将这些小块分别上传到各个用户的计算机中,这样就可以利用所有用户的计算能力和硬盘空间来完成文件的共享。
在这篇文章中,我们将探讨P2P文件共享系统的设计和优化。
一、P2P文件共享系统的基本原理P2P文件共享系统的基本原理是通过将文件划分为多个相等的小块,在不同的计算机之间进行分发和共享。
用户只需要从系统中下载一个文件的某个块,就可以从其他用户的计算机上下载其他块,以此来实现文件的下载。
同时,P2P文件共享系统通过利用分布式算法来协调用户之间的通信和数据传输。
通过这种方式,可以在不需要中央服务器的情况下,实现高效的文件共享和数据传输。
二、P2P文件共享系统的优点1.高效性:P2P文件共享系统可以利用所有参与共享的用户的计算能力和硬盘空间来进行文件下载和上传。
这样,在大量用户同时进行文件共享时,文件下载的速度会更快。
相对于传统的文件下载方式,P2P文件共享系统可以显著提高文件传输的速度和效率。
2.可扩展性:P2P文件共享系统可以通过添加新的用户来扩展自身的能力。
这意味着,P2P文件共享系统可以在不需要增加中央服务器的情况下,实现无限的扩展。
3.便携性:P2P文件共享系统可以在不受时间和地域限制的情况下进行文件共享。
这意味着,用户可以从任何地方使用P2P文件共享系统来下载所需的文件。
三、P2P文件共享系统的设计P2P文件共享系统的设计包括两个方面:文件的分块和节点的选取。
1.文件分块文件的分块是P2P文件共享系统设计的重要一环。
文件分块越细,可以提供更多的下载并行度,加快文件的共享速度。
同时,为了避免小块的过多交互,因此选择适当大小的块非常重要。
同时,为了保证下载效率,需要考虑到下面几个问题:(1)块大小应该在合理的范围内。
一种新的P2P流媒体负载均衡路由算法
一种新的 P2 P 流媒体负载均衡路由算法 A New Load2Balancing Ro uting
Algo rit hm fo r P2 P St reaming
3
胡迎松1 , 陈良彬1 ,2 , 余胜生1 HU Ying2song1 ,CHEN Liang2bin1 ,2 ,Y U Sheng2sheng1 ( 1. 华中科技大学计算机科学与技术学院 , 湖北 武汉 430074 ;2. 空军第一航空学院 , 河南 信阳 464000) ( 1. School of Computer Science and Technology , Huazhong University of Science and Technology , Wuhan 430074 ; 2. First Aeronautical Institute of Air Force , Xinyang 464000 ,China) 摘 要 : 构建和维持一个高带宽路由结构是 P2 P 流媒体中的一个重要问题 。针对节点频繁地加入和退出覆盖会话的 现状 ,本文设计了基于链路可用带宽的负载均衡路由算法 LBR ,利用已知的物理拓扑知识 ,在多条路由路径中选择一条对 网络可用带宽影响最小的路由路径 ,得到轻负载的覆盖边 。该算法能够动态维护高带宽的多播树 ,平衡覆盖会话中节点间 的负载和链路间的流量 。仿真实验表明 ,在动态环境下算法能够缓解路由上的拥塞问题 ,达到负载均衡的效果 。 Abstract :An important p roblem in P2 P st reaming is building and maintaining a high2bandwidt h routing st ruct ure. To acco mmodate t he current sit uation t hat nodes can f requently join and leave t he overlay sessio n , t his paper p resenta a load balancing algorit hm based o n t he link available bandwidt h. This algo rit hm utilizes t he known knowledge of t he p hysical to2 pological st ruct ure , choo ses t he routing pat h t hat has t he least effect on t he available bandwidt h among multiple routing pat hs , so as to obtain a lightly2loaded overlay edge. The algo rit hm can dynamically maintain high2bandwidt h multicast t rees , balance t he load of nodes and t raffic o n t he links in t he overlay session. The result s of t he simulatio n demo nst rate t hat t he algo rit hm can mitigate routing co ngestio n , and achieve a load balancing effect in t he dynamic environment . 关键词 : P2 P 流媒体 ;MPL S ; 覆盖边 ; 负载均衡 Key words :P2 P st reaming ;MPL S ;overlay edge ;load balance doi :10. 3969/ j. issn. 10072130X. 2010. 02. 009 中图分类号 : TP393. 03 文献标识码 :A 个节点来发送数据的方法 ,常用的一种是基于树的发送方 法 ,数据的发送沿着定义好的路由来发送 ,路由路径在覆盖 网络中作为一棵覆盖生成树来表示 ,在一次覆盖会话中有 一个发送者和多个接收者 ,多播路由的问题是求最小覆盖 生成树 。
P2P网络搜索算法介绍(1)
P2P网络搜索算法介绍信息0801 罗一雄指导老师:张昊摘要随着信息技术的进步与互联网的飞速发展,网络上的信息资源与日俱增,如何在庞大的互联网上获得有价值的信息已成为人们日益关注的问题。
对等网络(Peer-to-Peer)作为一种新兴的网络计算模式,打破了传统的C/S模式,具有自组织、容错能力强、可扩展性好等优点。
本文介绍了P2P网络的定义,他与传统C/S网络的区别。
并且更进一步分析了P2P网络的结构,P2P搜索算法,同时列举了一些经典的P2P搜索实例。
关键词:P2P 搜索算法度数拓扑结构ABSTRACTWith the advancement of information technology and the development of Internet, there is more and more information resource online, so how to obtain valuable information has become an increasingly concerned issue. As a new network computing mode, P2P breaks the traditional C/S structure; it is self-organized with good fault-tolerance ability and expansibility. This paper introduces the definition of P2P, the differences between P2P mode and C/S mode. Furthermore, this paper analyzes P2P network structure and search algorithms and presents its typical applications.Keywords: Peer-to-peer; Search Algorithm; Degree; Topology Architecture,前言:随着NAPSTER的迅速崛起,基于P2P网络的搜索技术开始进入人们的视线。
P2P网络中的路由算法研究
P2P网络中的路由算法研究近年来,随着P2P网络的广泛应用和快速发展,对于P2P网络中路由算法的研究也逐渐受到了广泛关注。
P2P网络是指与中央服务器无关联,通过互联网将分布在不同计算机中的资源组织起来,使计算机之间可以自由地互相通信、分享和交换数据的一种网络结构。
路由算法则是指在P2P网络中,为了实现资源共享和数据交换,传输数据的路径选择方式,为保证高效的数据传输,必须采用科学的路由算法。
P2P网络的路由算法主要有基于中心节点的路由算法和去中心化的路由算法。
基于中心节点的路由算法是指在网络中设立一个中央节点,该节点起到通信的转接、管理以及路由控制等作用,P2P参与者之间都与该中心节点进行数据交互,通过这样的方式实现数据的交换和共享。
但是这种方式存在单点故障和网络拓扑结构不稳定等缺点,同时也存在安全性问题。
因此,去中心化的路由算法应运而生。
去中心化的路由算法是指在网络中不存在中心节点,每个节点都是平等的,都拥有相同的节点属性和职责。
这种算法可以更好地应对网络中的各种问题,并能够保证网络的高效性和安全性。
其核心思想是将整个网络分成多个小的网络跨区域进行数据进行传输,在保证数据安全性和传输效率的前提下,实现节点之间的资源共享和数据传输。
在去中心化的路由算法中,DHT(Distributed Hash Table)算法是应用最广泛的一种技术。
DHT算法是一种基于分布式类哈希表的算法,可以通过哈希函数分配节点的位置,保证节点之间的通信最少,实现了节点间信息的快速检索。
其基本原理是将所有的节点分布在哈希环中,以节点的ID作为哈希函数的输入,通过哈希函数的映射,将节点ID和节点内容存储节点一一对应,提供查询、插入和删除等基本操作。
此外,DHT算法还可以分成Chord、Kademlia、Pastry等不同的协议,实现节点路由。
Chord算法是DHT算法中的一种经典协议,其核心思想是将n(2的k次方)个节点分布在一个哈希环上,每个节点负责维护自己在此哈希环上的位置,并处理自己和其他节点之间的查询和路由请求,同时,通过哈希环的结构来解决具体的数据存储以及查找等问题。
p2p系统方案
P2P系统方案概述P2P系统(Peer-to-Peer)是一种分布式计算架构,其中所有参与者都具有相同的权限和功能,彼此直接通信并共享资源。
在P2P系统中,不存在中心化的服务器,而是将计算和存储的能力分布到所有参与者中。
本文将介绍P2P系统的基本架构、工作原理以及一些常见的应用案例。
同时,我们还将探讨这种系统的优缺点和可能的改进方向。
基本架构P2P系统的基本架构可以分为两个主要组件:P2P客户端和P2P网络。
P2P客户端是运行在每个参与者计算机上的软件应用程序。
该客户端既充当服务的消费者,也充当服务的提供者。
客户端之间通过直接通信来交换信息和资源。
P2P网络由所有P2P客户端组成,并负责连接和管理这些客户端之间的通信。
P2P网络采用分布式的方式,不依赖任何中心化的服务器。
当一个客户端加入网络时,它将与其他客户端建立连接并分享自己的资源。
工作原理P2P系统的工作原理可以概括为以下几个步骤:1.客户端加入网络:当一个新的客户端加入P2P网络时,它需要建立与其他客户端的连接。
这可以通过网络发现协议(如基于UDP的DHT协议)或通过预定义的节点列表来实现。
2.资源发现:一旦客户端加入网络,它就可以通过向其他客户端发送请求来发现并获取所需的资源。
这些资源可以是文件、计算能力或其他服务。
3.资源分享:P2P系统的一个重要特点是客户端既可以是资源的消费者,也可以是资源的提供者。
当一个客户端拥有某个资源时,它可以将其分享给其他客户端。
4.路由和转发:P2P网络中的每个客户端都充当了路由节点的角色。
当一个客户端发送请求时,它的请求可能需要通过多个路由节点转发才能到达目标客户端。
5.安全和信任:由于P2P网络中的每个参与者都具有相同的权限,因此需要采取一些安全措施来确保系统的安全性。
例如,可以使用加密技术保护数据的传输和存储,以及使用身份验证机制来验证客户端的身份。
应用案例P2P系统可以应用于许多不同的领域。
以下是一些常见的应用案例:1.文件共享:P2P系统最常见的用途之一是文件共享。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Small-world设计无组织P2P系统的路由算法*周晋+, 李衍达(清华大学自动化系网络信息实验室,北京100084)Using Small-world to Devise Routing Algorithm of Unstructured Peer-to-peer System*ZHOU Jin+, LI Yan-Da(Web Information Laboratory, Department of Automation, Tsinghua University, Beijing 100084, China)+ Corresponding author: Phn 86-10-6277-8137, Fax 86-10-6278-1816, E-mail: zhoujin00@/~zhoujinReceived 2003-3-25; Accepted 2003-10-8Zhou J, Li YD. Using Small-world to Devise Routing Algorithm of Unstructured Peer-to-peer System. Journal of Software, 2003,Abstract: Peer-to-peer systems have shown a great potential on file sharing in recent years and efficient search techniques has become a crucial research problem. Most unstructured peer-to-peer systems lacking cache scheme, with existing distributed routing algorithms, can only run blind search, but not global search. To address the problem, we purpose a novel key clustering algorithm, which divides routing space into two layers, AUT layer and HUB layer. Such an algorithm can does a well-ordered search from a global view. In order to improve scalability, we utilize theoretical results from small-world. In improved algorithm, a few shortcuts with distant peers will be inserted into routing tables with some probabilities, and average path length will be reduced. Through preliminary simulation, we demonstrate that key clustering algorithm with shortcuts is efficient and scalable.Key words: P2P routing; clustering; small-world; unstructured peer-to-peer system摘要: 由于Peer-to-peer系统在文件共享方面有着巨大的应用前景,Peer-to-peer搜索问题已成为目前学术界的重点研究问题之一.对于缺乏缓存机制的无组织P2P系统,已有的分布式路由算法缺乏全局导航能力,属于无序搜索.为此,本文提出一种Key clustering算法,将路由空间分HUB和AUT两层,从全局角度进行有序搜索.为提高Key clustering算法的可扩展性,我们借鉴Small-world领域的研究成果,在路由表中以一定概率插入连接远距离节点的快捷连接,以缩短平均路径长度.初步仿真试验表明,引入快捷连接的Key clustering算法具有良好的搜索能力和扩展性.关键词: P2P路由; 聚类; 小世界; 无组织Peer-to-peer系统中图法分类号: TP393文献标识码: A*Supported by the National Natural Science Foundation of China under Grant Nos. (国家自然科学基金)周晋(1977-),男, 河北唐山人,博士生, 主要研究领域为P2P搜索算法,信息检索.李衍达(1936-),男, 广东南海人,教授,博士导师,主要研究领域为生物信息学,智能信息处理,信号处理.1 简介近来,Peer-to-peer系统(简称P2P系统)在文件共享和信息搜索等方面得到了越来越多的应用. P2P系统是由一组地位相等的节点构成,节点间可以直接通讯,无需第三方参与.与集中式结构相比,P2P结构在可扩展性、实时性、可靠性和负载平衡等方面具有天生优势.搜索算法是决定P2P系统性能的首要因素.Napster[1]采用了Web搜索引擎的集中式搜索,而不是真正的分布式搜索,但集中式搜索面临着信息量过载、拒绝服务攻击(Denial of Service)等一些难以解决的问题.纯粹的分布式搜索算法在索引结构上可以分为两类:严格结构索引和自由结构索引[2].属于严格结构索引的典型算法有Tapestry[3]、Pastry[4]、CAN[5]和Chord[6],它们通过严格控制网络拓扑和文件存放位置,能有效地检索到结果,同时保证搜索步数在O(logN)的范围内(N为节点总数),实现了可扩展性搜索,但搜索算法对节点的限制条件过多,需要严格控制网络拓扑和文件存储位置,所以,它们更适合运行于企业内网.自由结构索引给予节点充分的自主性,仅根据搜索历史对索引记录进行适应性调整,因此应用前景广泛.该类方法的典型代表有Gnutella[7]、Freenet[8],其基本搜索原理分别为宽度优先(BFS)和深度优先(DFS),这两种算法鲁棒性虽强,但运行效率很低,扩散式的宽度优先搜索导致消息数量呈指数增加,回溯式的深度优先搜索导致耗时过长.本地索引(Local Index)算法[9]统计了邻居节点的信息,根据邻域信息选择合适方向进行搜索,以求减少消息量.但是它毕竟只利用了局部信息进行启发式搜索,缺乏全局视角,搜索性能改善程度仍然很有限.为了提高搜索性能,本文设计了一种键聚类(Key Clustering)算法,通过逐步调整将节点索引记录按照一定中心进行聚类,在物理网络层上建立具有全局视角的路由层.为了减少平均路径长度,我们利用小世界(small-world)的研究成果,将确定式聚类改为带有随机性的概率式聚类,在导航表中引入指向远距离节点的快捷连接(shortcut).在理论上,改进算法的平均路径长度的期望为O(log2N).本文结构安排如下:第2节给出了搜索问题的描述;第3节详细介绍了Key Clustering算法及改进算法;在第4节中,通过仿真试验检验算法的性能;最后,在第5节给出结论与未来工作.2 问题描述本文讨论的P2P搜索算法将限定在无组织系统的范畴内,“无组织”的含义是指:1) 网络拓扑结构自由;2) 系统对节点无缓存要求,节点只需存储本地数据,不必为系统分担存储任务.2.1 分布式搜索在分布式搜索算法中,搜索命令(query)是沿节点连接进行传递.根据一定策略选择消息的发送对象,邻居收到消息后,首先检索本地数据是否匹配,将匹配成功的消息沿原路径回传至初始节点;同时,选择合适的邻居继续扩散消息.搜索深度由TTL(Time-to-live)计数器控制,消息每前送(forward)一次,TTL减1,当TTL减至0时,消息停止前送.一次P2P搜索的最终结果为所有的搜索分支的结果总和.2.2 评价指标综合前人的研究[9, 10],我们用以下标准评价搜索算法的性能:⏹搜索成功率(Success Rate)⏹平均路径长度(Average Path Length)平均路径长度是指搜索路径长度的平均值,平均路径长度是决定等待时间(latency)的直接因素.⏹消息数量(Number of Message)消息数量会影响网络负载和节点的计算资源,在保证搜索成功率的前提下,减少消息数量是改善搜索性能的有效手段.3 Key clustering算法和Small-world的应用3.1 Key Clustering算法1) 索引构成Table 1Routing Table of KC Algorithm表1KC算法的路由表Key Clustering算法(简称KC算法)的索引采用了分布式哈希表(Distributed Hashing Tables,简称DHT) [11],利用哈希函数将文件的属性(如文件名或描述性关键词)映射为键(key).将key按照升序排列,并首尾相接,形成环状空间,key空间是位于物理节点层之上的上层结构(overlay),具有可搜索性.搜索时,query也映射为key.定义key之间的距离为它们在环状key空间上的最短距离,即(){}b-a-M,b-aD=,其中M为空间中的keya,bMin的总数.每个节点拥有一个由中央服务器分配的聚类中心(center),节点根据搜索表现更新路由表内容,使内容向着center进行聚类.各个节点的center在key空间中均匀分布.为了保证系统能够及时追踪时刻变化的查询热点,中央服务器会根据近期query的分布为节点分配center,以保证整个系统的索引均衡性.节点在本地需要维护一张长度为K的路由表(见表1).路由表分成导航表(HUB)和主题表(AUT)两部分,长度分别为K H和K A(K H+K A=K).AUT表记录节点ID和代表其文件特征的key,HUB表记录节点ID及其center.从功能上看,AUT层面从全局角度按key的数值顺序重新编排文件记录,HUB层面则按节点center的数值顺序排列节点,形成有序的路由层.系统运行时,二者分别按照一定聚类策略进行更新.2) 搜索过程搜索时,首先检索本地文件,若与query匹配,则沿原路回送结果,同时更新路径上的节点路由表;否则,在AUT表中查找query,若匹配,则前送消息至合适的节点;若AUT表不存在匹配节点,再从HUB表中寻找最接近query的节点(即center与query接近),并发送query至该节点.3) 路由表更新策略设搜索路径的长度为L,搜索命令为q,从起始节点到目标节点依次是:n1,n2,…,n L.由于路径上的节点参与了对q的搜索,故可以认为它们与q的相关性较大,因此,在搜索成功后,KC算法会对这些节点的路由表进行更新操作.⏹HUB表更新策略对于n x (x=1,2,……,L-2),进行HUB表的更新:①令等待加入的新记录key Ins=center(n L-1),center(n L-1)即为n L-1的聚类中心,相应的记录为<key Ins,n L-1>.之所以选择n L-1为学习目标,是因为n L-1作为路径上最后一个消息传递者,为搜索成功做出了最重要的贡献;②若HUB表未满,则加入新记录<key Ins,n L-1>,更新结束;若HUB表已满,则执行③;③待删除的旧记录key Del为n x的HUB表中距离center(n x)最大的记录key Del=Max {D(key x, center(n x))}, key x是n x的HUB表中的任意一条记录;④如果D(key Ins, center(n x)) < D(key Del, center(n x)),则用新记录取代旧记录;否则,不做任何改动.⏹AUT表更新策略对于n x (x=1,2,……,L-1),进行AUT表的更新:文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. ①因为在n L 处搜索到q,所以n L 的文件中必包含q,路径上的节点将记录该信息.令等待加入的新记录key Ins =q,相应的记录为<key Ins , n L >,; ②若AUT 表未满,则加入新记录<key Ins ,n L-1>,更新结束;若AUT 表已满,则执行③; ③待删除的旧记录key Del 为n x 的AUT 表中距离center(n x )最大的key,即:key Del =Max { D(key x , center(n x )) }, key x 是n x 的AUT 表中的任意一条记录; ④ 如果D(key Ins , center(n x )) < D(key Del , center(n x )),则用新记录取代旧记录;否则,不做任何改动. 我们希望经过足够多次的更新后,HUB 和AUT 中的key 可以有效地聚类于center.4) 算法原理解释直观来讲,Key Clustering 想法就是让各个节点在整个key 空间上各司其职,分工合作.各司其职通过AUT 来实现,AUT 负责管理key 空间内一段区域的key(非强制性),区域中点即为center.AUT 表的聚类可以在原来节点层面之上重建全局有序的管理层;HUB 记录节点的center,center 代表了节点的职能,通过HUB,节点能够了解彼此的职能,聚类后的HUB 的可以在AUT 层面上建立有序的路由层.Fig.1 Content Mapping between Layers of KC Algorithm图1 KC 算法层次间的映射关系在图1中,纵向代表节点的不同层面,横向代表不同的节点.KC 算法在原有节点层上建立了AUT 层和HUB 层,节点按照key 的数值顺序排列.节点层指向AUT 层的箭头表示原有节点的描述本地文件的key 信息在AUT 层如何进行重置,AUT 层指向HUB 层的箭头表示AUT 层的描述节点职能的center 信息在HUB 层如何进行重排.在节点层,key 的分布无任何规律可循,在该层面无法实现有效的搜索;AUT 层对key 的分布进行了重新安排,key 分别向所属节点聚类,即每个节点的AUT 分管center 左右一定范围内的key;在AUT 层之上,HUB 层又建立了路由层,负责建立节点间的联系,即每个节点的HUB 分管本节点center 左右一定范围的其他节点center,这样,每个节点都可以了解到左右邻居的情况(center 相邻或相近),从而保证搜索得以有效进行.具体地,在key 空间上,搜索按key 递增或递减方向前进.AUT 记录了其他节点的文件的key,若query 与AUT 的某条记录匹配,说明距离目标节点仅一步之遥;HUB 确保了搜索沿着正确方向前进,而不必走重复路.我们可以形象地认为AUT 存储了文件(事实上距文件尚有一步),HUB 存储了导航信息.KC 算法的路由表十分类似于WWW 上的情形,许多网页既含有信息文件(如:文本、图片),又含有指向主题相近网站的链接,也就是说,网页都有权威性(Authority)和中心性(Hub)两种特性,将路由表分拆成AUT 和HUB 的想法也正源于此.HUB 与AUT 拥有相同的聚类中心的原因是:维护导航方向和搜索目标的一致,否则导航失去意义.HUB 与AUT 的关系是相互协作,缺一不可,HUB 将各个节点串连起来,建立可搜索结构,而最终命中目标要通过AUT 来实现.3.2 应用small-world 改进KC 算法1) small-world 及其应用著名的Stanley Milgram 实验发现,通过平均6人次的熟人传递就可以把社会中任意两个人联系起来,这种现象称为small-world 现象.Milgram 实验揭示了两个发现:1) 短链效应普遍存在;2) 人们可以找到短链.第二个发现说明:当网络呈现某种拓扑结构时,仅利用局部信息就可以有效地找到短链.这个发现为分布式信息搜索提供了契机.Watt 和Strogatz 提出的模型(简称WS 模型) [12]是一种常用的small-world 模型:N 个节点分布在一个圆环上,初始状态时,每个节点有k 个连接,分别连向最近的k 个点.然后,依次调整各节点的连接,以概率p 随机地改变连接的终端,但避免连向节点本身.记D(i,j)为节点i 和j 之间的最短距离,平均路径距离L 的计算公式如下:当0 p 时,2kn ~L ,此时网络拓扑呈规则状态;当0.01p 0.001<<时,lnklnn ~L ,此时节点不仅与相邻节点存在连接外,还与远距离节点建立了少数的shortcut,正是这些shortcut 有效缩短了L,使整个网络呈现出small-world 特征.KC 算法中,节点按center 的数值顺序依次放置在环状key 空间上,搜索消息沿圆环依次传递,平均路径长度为O(N).这导致平均路径长度随着节点总数的增长,成比例增长,搜索成功率随之下降,这严重影响了KC 算法的实用性.为了解决该问题,我们借鉴Kleinberg 的研究成果[13],改进KC 算法.Kleinberg 模型是一个k 维的格网络(lattice network),对于节点u 发出连接,以正比于[d(u,v)]-r 的概率与v 建立连接(其中v 为任意非u 节点;d(u, v)表示u 、v 的网格距离;r 是常数,叫做聚类指数,用以控制节点的聚类程度).简单来说,一个节点与近邻节点建立连接的可能性较大,与远方节点建立连接的可能性较小.由Kleinberg 证明知,对于k 维格网络,当且仅当r=k 时,存在一种分布式搜索算法,使得平均路径长度是logN 的多项式规模.特别地,对于1维格网络,当r=1时,L 是logN 的多项式规模.KC 链表属于1维的格网络,当以d(u,v)-1的概率建立连接时,平均路径长度的期望值为O(log 2N).2) Enhanced Key Clustering 算法基于Kleinberg 的研究成果,我们对KC 算法的HUB 表更新策略进行了改进,提出EKC(Enhanced Key Clustering)算法,而AUT 表更新策略仍与KC 算法相同.EKC 算法的HUB 表更新策略如下:对n x (x=1,2,……,L-2),进行HUB 表的更新:①令等待加入的新记录key Ins =center(n L -1),center(n L -1)即为n L -1的聚类中心,相应的记录为<key Ins ,n L-1>; ②若HUB 表未满,则加入新记录<key Ins ,n L-1>,更新结束;若HUB 表已满,则执行③; ③ 计算HUB 表中每条记录的删除概率,记u=center(n x ),则key v 的删除概率为∑--=w11w)D(u,v)D(u,P(v), 其中w 为HUB 表中的任意key.根据删除概率随机选择一个key 为待删除记录,记为key Del ;④ 重新计算key Del 和key Ins 的删除概率,根据删除概率随机确定删除对象,对HUB 表做出相应调整.EKC 算法按照概率更新HUB 表,可以为HUB 表随机引入少数的shortcut.4 仿真试验4.1 试验设置在仿真试验中,假设各个节点有相同数量的邻居,信息资源在系统中均匀分布.在仿真中,系统由N 个节点构成.每个节点从一个容量为10,000的key 库中随机选择KPN 个key 来代表本地文件特征.每个节点随机选择NPN 个节点作为邻居.每次试验进行多次仿真,每次仿真进行多次搜索.每次搜索时,随机选定query 发起节点,随机选定query.在搜索成功后更新搜索路径节点的路由表.其他参数说明见表2.4.2 三种算法的比较为了考察KC 和EKC 算法的搜索性能,我们选择Local Index 为比较对象.三者的路由表总容量均为100,KC 、EKC 的HUB 和AUT 容量分别为25和75.Table3 Performance of three algorithms表3比较了三种算法的搜索性能,数据为20次仿真试验的平均值,每次试验搜索次数为100,000次,其他参数取值见表 2.可以看出,在分层和聚类的作用下,路由表性能得到了明显提高.KC 和EKC 的成功率比Local Index 提高了一倍多,而在平均消息数量和平均路径长度上,二者明显少于Local Index.和KC 相比,EKC 在性能上有进一步的提高.由于EKC 的HUB 存在少量的shortcut,加快了搜索进程,使之平均消息数量和平均路径长度比KC 分别减少了29.0%和37.1%,从而为成功率带来了13.2%的提升.图2比较了KC 和EKC 的在不同节点数量下的平均路径长度变化,除节点总数和TTL 外,试验参数设定同表2,TTL 取为从图中可以更清楚的看出,随着节点数量的增加,KC 曲线的抬升速度大大快于EKC 曲线,与理论上的指数趋势相符.由于受节点数量增长的影响小,EKC 比KC 具有更好的推广性.在未来工作中,将对节点数量与平均路径长度给出更精确的定性分析.Fig.2 Average path length to different node number 图2 不同节点数量下的平均路径长度a) Local Index b) AUT table of KCc) HUB table of KC d) HUB table of EKCFig.3 Distribution of keys under different policies图3 不同路由表的key分布a)图中横轴代表key的与平均值的距离,b)、c)、d)横轴代表key的与center的距离。