[email protected], [email protected]
(Peer-to-Peer, P2P) P2P ! "Gnutella# $%& ' ( ) P2P* + , - . /01Gnutella 2 3 4 - . 5 6789 : ; < = > ( ? @ A B C D E F G H I J KL M N O5 6P Q $5 6RST U VW X 5 6 L Y Z [ \ > ] ^_P2P ` ^a Y Z b c d e f g hi j k ,$l m no0pq r s t u v w x & g ,y z {
%ST | } ~ N O> ] ^_P2P -. } ~ ,- . 5 < = D @ 7Y K # j s y , j ; s y ? y z { s G o > ] ^_ - . }
1.
¡ ¢ £ ; ¤ L ¥ ¦ § ¨ © ª « O ¬ o G® ¯ ° s ± q ¬ o ² ² ³ _$%´ µ ¶ U · & ¸ a (Peer-to-Peer, P2P) ,] ^_P2P %´ ? ¹ º 1,p %» m n7 ¼ ½ ¾ G& ¿ & À Á Â p À Á Â Ã ( dÄ ¼ ½ Å & Æ Ç È ÉÊ Ë RÌ Í p¼ ½ & Î & ÏÐ m-bitÆ Ç
",p %» Ñm n¾ 9 v Ò 7Gm-bitÆ Ç
%Ó & Ô Æ Ç 7 ¼ ½ j Õ Ö ×
Ø Ù "p' ` ^Ú Û 1Ü Æ Ç i
(DHT, Distributed Hash Table)P2P [4]p¹ Ý
` ^ G& + Þ ` ^ß 8à
,á + Õ Ö â ã ä å æ7Y ç ¼ ½ è é 2
p` ^* + GChord[5]CAN[10]8êPastry[2]
E F ] ^_P2P J ë ì Ê Ù P í j ,® 8¦ î n[13] 1. ] ^_P2P1 ,f g - . /G ì i V0pï ð ñ ò ¹ Ý ó ô ", m nõ õ ö r ÷ ø /pù Y K? @ D @ s y 2. ] ^_P2P L ú û ü ý þ - . 8onî ] ^_P2P ,Ê Ù oG ì i VP è é > ] ^_P2P ] ^_P2P ,> ] ^_P2P
o» m n7 ¼ ½ Ï& ¿ & m-bitÆ Ç
7 » Ñm n7 ¼ ½ ¾ 7 m n v Ò ¼ ½ j Õ Ö × Ø Ù ,p` ^¦ Ï6¬ 7Y ç f g 0p ! f g - . /Ã ( Å ü ý þ - . 8 3 4 5 m n f g Z ç A B $ m n9 GY ç m n7Z ç f g G# × Y ç m nÏ# m n ! f g j ,p % " #Y ç m nï + å æ# Z f g P p& ß 9 < = ? @ A B C D $8¦ Û 1 flooding% : ; ÷ & G® ' ( ) * + 1 p' ~ 7< = A B C D è é ? , 2
TCP/IP %- . TTL(Time To Live) 6N /p
& î nP ,W ' N /~ ¦ í Gß Ï6å æ
7Y ç f g è é 2 p` ^* + G
Gnutella[12]Limewire[3]Kazaa[1]
",z 0 ü N OGnutella- . ~ H I
%ST U VYAPPERS[9]êPercolation Search[11]
1 G 5 6
YAPPERS,Ê Ù o ] ^_P2P
DHT2 3 P DHTL M %m n
ê4 f g > 4 Ì Í & Ñ& & Æ
Ç " d: Ñ %f g êm ns ¹ + 5 Ñ- Á 1 6 7 5 8 9 ) : ; < G= > ê? > ' - Á 0p, - /& ß 6 d pf g e m n@ A Æ Ç Ê Ë RB C 2 É 1 D æ,- . /G E i VêF A B C D VG YAPPERS%HÑm n,I I K Ä J ë f g /9 c pf g J = > f g e ? > f g pf g m nJ = > m nK7 f g Ú = > f g # y L v Ò M N7 f g J ? > f g #O ? > m nv Ò "01G f g êm n - 0p!& m n,- . /7Ä - . f g J = > f g #pf g P ç A B < 9 ,M Q = > m n%4 M N7Ä - . f g J ? > f g #pf g P ç A B < 9 ,M Q ? > m n%4 "1 D æoR - . ~
HÑm nï ð S $T & + U V ä m nW X Y & m nAZ A9 d$T m ns m n[IN(A)\ © m n[F(A)8ê] 5 m n[EN(A) ^ IN(A),Am nh hopä 7Gm n_ ` Am ny L ^ F(A)N(v)1m nva b 7Gm n# ^ EN(A)F(A)m n !AG& f g # , o /9 c c + pf g J d ' e > - Á Rdpf g j k ,
IN(A)%pf g J M e > & Ñm no",
- . /A9 c å K& Ñ,IN(A)%Ä - . f g
J M e > m n,p: ; 1m nBfBb
g æpf g P ç /9 c × y L Õ Ö ] N
RB dpf g P ç IN(B)hF(B)%Ä
-. f g J M e > m n
Percolation Search Ê Ù , GPower Law
W ¹ i Gnutella o$,N O- . Ù
618¦ j Ñâ ã
1. Content List ImplantationHÑm nÅ k
~l â 5 d 7 f g m
n j k ,k ~l â o %7 m n
o
2. Query Implantation& m n,Gf g Y ç
/9 c Å k ~l â 5 dÕ Ö p ½ j k ,k ~l â o %7 m n o 3. Bond Percolation- . /,â ã Ð %q G- . p ½ m n9 k ~3 4 - . 5 6dp- . p ½ r $m n3 4 sP , s$t m né 9 c u Ë & s~< G, s~? ß s v w /x 9 s¦ õ
,Power Law %8o5 6
Q y z ß 8à
1. ,oR â ã & /HÑf g { 9 4 & G
® | } § ] m n7¬ 0p 2. ,â ã Ð { 9 G& ÑG® | } § ] m n~ - . 0p,- . ] o Ä - . f g j , %p~ ß 8å æ{ & Ñq Gpf g m n Gnutella- . ~ F > ( ß A B C D
2.
z { [6]Kè é 8Gnutella* + 1 > ] ^_P2P o& Ñm n, - . /dTTL; 18K,A B s o %HÑ m n dpA B $l 8Ñm n,W ' ö Y ¦ å æ& Ñf g 7Y D @ 1 1.2GB pß K8flooding5 , - . / 7 s A B C D ( ) i 0py z H è , è é 8Gnutella* + 1 > ] ^_ P2P o, - . /7< = A B C D VG " è é ,N /p& o´ ( ) 61m n,- . é ï ð d 7 f g e ß ë f g m n j k ,$ m noP ,W ' 6¦ m nJ ë f g ÷ | e ,J ë @ f g /,d f g e ß ë f g m n j k ,$l m no/ 9 < = ? @ D @ "01p 6 1 D æ,f g - . / G ì i V0py z { 1pé â ã 7 < = D @ q , @ - . i V/0 N& 1 < = Gnutellae $l 5 6G ì - . y z { d Q 1¦ hj nY ç 1. V > ] ^_ ` ^L [ Ø 2. ,- . é m nL Y d 7 f g e ß ë f g m n j k ,$l m n o 3. ,- . /Å Ém n~ ß å æ7Y ç f g pnq ® ,-. /F & + o } : ; D @3.
!
!
!
!
"
"
"
"
#
#
#
#
$
$
$
$
—Index
è é Gnutella,- . ~ Ê Ù o 17 1 Gnutella ( ) m nAr $m nBCDEU Kf g P ç A B (query)BCDE9 ,b æpf g P ç A B R9 c Õ y L G¡ ûf g Ï#BCDE9 r $m n¢ pquery A B ,pquery s o %GÓ & m nG¡ ûqueryA B 7P ç f g ,p£ %1m nNN9 query × queryHitA"RA
B ¤ queryqueryHit pushN
Z ç s7Y ç f g fN æR 9 A 7Y f g A y z { : + H& m n¾ 9 I I j ¥ ¦ § ¨ © s pushA B "p j ¥ ¦ 7§ ¨ A B d 1NR~ ª $l m n- . /} 0py z { dp j ¥ ¦ Û 1index y z { 7; u N O- . ~ Ù 6 2(« b1)7¬ ~ pushm np£ % 1m nCêm nJ§ ¨ A§ f A (IP® A ) 8êAd¬ æf g 2 Index ( ) 0p 3(« b2)NRm nOG Né m nAGM Q f g P ç /, query $t m nJ/J9 c Õ pquery- . p ½ j , Index%01Jp/GA§ f A 0pJL 9 dpquery3 4 $t m n " a bdpqueryA B AA,Né G ¬ æp f g K¯ dpf g I I $l m n#O ß ¬ æpf g 3 Index ( )
4.
%
%
%
%
&
&
&
&
#
#
#
#
$
$
$
$
y z { d8Java° ± Gnutella* + > ] ^_P2P ¨ © ¬ - . ² ³ ~ ¬ 8, ß ´ U V ¦ / ",- . ~ 1 oy z { %d¬ HÑm n G8¦ µ ' - . ¶ 1. Gnutella* + %- . ¶ 2. YAPPERS~ %- . ¶ 3. Percolation Search- . ¶ 4. y z { Index~ - . ¶ ,P2P ó ô ; u o z { [7][11] KGnutella7r s ó ô GPower Law
W ¹ i 0py z { ,m n§ ] · od ¸ n",m n¹ W o ÏH I K P2P ¹ W 1 0py z { : + ¹ / W q ¡ ûPower LawW ,m nÉ@ 5 01g º ß C ¬ API» ¼y z { è é %< K100Ñm nP p100Ñm n§ ] É· ¡ ûPower Law ,f g É@ 8êW 5 1 f g W q ¡ ûPower Law· 0pt u %L M f g É1200Ñ %& ½ trial â ã 1 1. k ~¾ ¿ & m nU Kf g P ç 2. À f g P ç m n¤ µ ' L M - . ~ U K M f g P ç 3. ,H' - . ~ ] Á R Â L M - . ~ 7< = ü É & ½ 9 ,7Gpeer¬ æt u %7G R] Á 41 À â ã 4 ( ) R7Z Ã Ä É dG8¦ 5 Å 1. Coverage- . /7 m nÉ/Æ m n É 2. Query Hits- . R7å æß J ë 7Y ç peerÉ 3. Query Message- . /7< = D @ 4. Success Rate- . s ¶ ~ = s ¶ ½ É/Æ ½ É
5. Success Rate Coverage- . Ç È y É 1 =
H1%Coverageß 8I I Ê 1
Success Rate
6. Min. Response Time- . æË & Ñß J ë
peer7Y ´ Ì hopÉ
7. m n× Í ½ É
8. m n j ¥ ¦ v w @ YAPPERS%1
m ninsertæproxy nodef g É
Percolation%1m nk ,$l m n
content listIndex%1m n j index É
5.
%
%
%
%
&
&
&
&
'
'
'
'
(
(
(
(
,Percolation threshold10.3YAPPERS
-É13ö Y ¦ µ ' - . ~ ,A B D @ 5
1 561 ]
5 !!!! """" #### $$$$ %%%% &&&& ( ) 6 !!!! """" #### $$$$ %%%% '''' ( ) 6 Î 5%Ï C Ð & Ñn7Ñ K dGnutella ] Á R7< = A B Ò Ó @ Ô 1 100%Î $ j Ñ- . ~ A B Ò Ó @ ¦ i 1 7 ( ( ( (1 !!!! """" #### $$$$ (((( ( ) A B Ò Ó @ Gnutella 100% YAPPERS 145.3% Percolation 33.69 Index 2.55%
8o] ß KPercolationIndex~
,- . 7< = A B @ 5 GÕ ? N
/"YAPPERSD @ N789 Ö Gnutella
01ST dYAPPERSm n,× 7 f g
j k ,$ m no/7< = A B @ Ø o»¼
» ~ CoverageSuccess RateN¦ ü
Ù781 ] 7 Coverage#### $$$$ ( ) 8 Success Rate#### $$$$ ( ) 8o] ß KIndexÚ Y Z t u % 5%Û Ü m n, a ß D æ| D 98%- . s ¶ "» Ñ- . ~ H1%Coverage7I I
Success Rate ¦ 97 pß KIndexy
É 1 !| "YAPPERSPercolation,p5 q ]Ý Gnutella 9 SuccessRate/Coverage#### $$$$ ( )
Gnutella- . ~ 72 C Þ t u flooding- . 78- . Success Rate|
YAPPERSPercolation ß ß à P 1 y z {
Index~ á â | GnutellaãäQ
0 ,y z { Index5 6%HÑm n, G
& å index,TTL=0/index%G¡ û§
¨ j ,9 1 Gnutella & Ñm nKpm n ß J ë 4 Z ç & m nH& ½ s ¶ - . Í ß ¬ æ5 Ñ query hit¦ 101 ]
10 # of query hits found#### $$$$ %%%% &
& &
&( )
10ß æL æGnutella017
flooding- . 787¬ æquery hit ´
",y z { Index~ %m n,index
%U V¡ û§ ¨ L 9 ç ¦ ¼7¬ æ query hit ´ ,; u Index~ RST © J : ; Index ~ ß F è n(hop spot)VG Ú ? ù queryHitL 9 Ém n7× 111 ] 11ß KIndex~ ,F è nVG 5 GÕ ? N /F è nVG 7 i é ,t u %» Ñm nI I 1 Í L 9 s Ó X m n01ï ð v ê ? @ × "L ¯ f,P2P o 11 )))) **** ++++ ,,,, ---- .... //// 0000 1111 2222 3333 #### $$$$ ( )
,YAPPERSPercolation8êy z { Index
~ %1 D æ E - . » Ñm n7 K j ë @ v ê 121 ] 12 )))) **** 4444 5555 6666 7777 8888 9999 :::: ;;;; #### $$$$ ( ) ,12%YAPPERS2 9 ¬ - . 7 < = D @ ´ N /5 6 Í < 9 G17Ñm nê Proxy nodeì > P HÑì > 7Y í æv ê j ë @ n 1138ÑÛ Ü $ j ë @ ? î 1p138Ñn B ï o$ Í ? î ,y z { Né © J êST H& Ñ j n ? î , /79 s D @ : ; 13000$,- . D @ < = GnutellaZ 1145% $? î \ ? D @ < = q a ² ? ",PercolationIndex%HÑ j n
r ß <key, value>r $%key1
ð Û value1ß J ë p m nf A W Q & ñ f A YAPPERS Z > ( î "m nv ê 9 k ® ? î "[ _ 8 p PercolationIndexZ $v ê á > ( î
6.
)
)
)
)
*
*
*
*
,P2P ¨ © É ò á J ë ST , C ¬ o !? 8 | i P q è é ; ó ê: ; ¨ © s !? v ê ,è é U · oP2P ô > ] ^` ^Næq x æG] ^_P2P ` ^J ë ì - . ~ P g º $ ¹ Ý ` ^è é , o L ê ,y z { %ST z { L M ,N Oè é Gnutella* + > ] ^_P2P - . ~ S T õ ö s E YAPPERSPercolationq x æJ K & ÑN O- . ~ [Index, Rq y z { Index~ ô ,-. D @ 5 GnutellaG !o } N ONæ,CoverageSuccess Rate5
YAPPERSPercolationq ÷ L ø > y z { ,3.1m © J êù ú 7; u - . ~ ¡ û¦ R Y ç 1. V > ] ^_ ` ^L [ Ø 2. ,- . é m nL Y d 7 f g
e ß ë f g m n j k ,$l m no 3. ,- . /Å Ém n~ ß å æ7Y ç f g pnq ® ,- . / F & + o } : ; D @ ,y z { 5 6; u / ¬ 7; u 5 6¡ no R 12n, Rq oR Ë 3n "Å ] ß 8U VIndex~ û G8¦ j nI I 1. > ] ^_P2P %,f g - . /7 < = A B C D G& + o } F 2. Å m n~ ß å æ7Ä - . f g 3. ß F è n(hop spot)VG Ú ? ù queryHitL 9 Ém n7×
+
,
+
+
,
,
+
,
[1]. “How Peer-To-Peer (P2P) and Kazaa Media Desktop Work”, Kazaa Website:
http://www.kazaa.com/us/help/guide_aboutp2p. htm, 2003.
[2]. A. Rowstron and P. Druschel, “Pastry: Scalable, Distributed Object Location and Routing for Large-scale Peer-To-Peer Systems,” Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg, Vol. 2218, pp.329-350, 2001.
[3]. C. Rohrs, “LimeWire Design”, LimeWire documents:
http://www.limewire.org/techdocs/design.html, 2001.
[4]. H. Balakrishnan, M. F. Kaashoek, D. Karger, R. Morris, I. Stoica, “Looking Up Data in P2P Systems,” Communications of the ACM, Vol. 46, No. 2, pp.43-48, February 2003.
[5]. I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan, “Chord: A Scalable
Peer-To-Peer Lookup Service for Internet Applications,” Proceedings of the ACM SIGCOMM 2001 Technical Conference on San Diego, USA, August 2001.
[6]. J Ritter, “Why Gnutella Can't Scale. No, Really.”
http://www.darkridge.com/~jpr5/doc/gnutella.ht ml
[7]. M. Ripeanu, I. Foster, and A. Iamnitchi, “Mapping the Gnutella Network: Properties of Large-Scale Peer-To-Peer Systems and
Implications for System Design,” IEEE Internet Computing, Vol. 6, No. 1, pp.50-57,
January-February 2002.
[8]. N. Sarshar, P. O. Boykin, V. P. Roychowdhury, “Percolation Search in Power Law Networks: Making Unstructured Peer-To-Peer Networks Scalable,” Proceedings of the IEEE 2004 Peer-To-Peer Computing, pp.2-9, 25-27 Aug. 2004
[9]. P. Ganesan, Q. Sun, H. Garcia-Molina, “YAPPERS: A Peer-To-Peer Lookup Service Over Arbitrary Topology,” INFOCOM 2003. Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies. IEEE Vol. 2, pp.1250-1260, 30 March-3 April 2003.
[10]. S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Shenker, “A Scalable
Content-Addressable Network,”
SIGCOMM’01on San Diego, California, USA, pp.161-172, August 27-31, 2001.
[11]. S. Saroiu, P. K. Gummadi, S. D. Gribble, “A Measurement Study of Peer-To-Peer File Sharing Systems,” MMCN’02 on San Jose, California, USA., pp.161-172, August 27-31, 2001.
[12]. T. Klingberg and R. Manfredi, Rfc-gnutella, http://rfc-gnutella.sourceforge.net.
[13]. Y. Chawathe, S. Ratnasamy, L. Breslau, N. Lanham, and S. Shenker. “Making Gnutella-like P2P systems scalable,” Proceedings of
SIGCOMM 2003 on Karlsruhe, Germany, pp.407-418, 2003.