250 likes | 401 Views
A Distributed and Oblivious Heap. Christian Scheideler and Stefan Schmid Dept . of Computer Science University of Paderborn. Motivation. P2P systems : significant amount of attention . Holy grail : P2P systems that are highly scalable and robust. Internet. Motivation.
E N D
A Distributed andOblivious Heap Christian Scheideler and Stefan Schmid Dept. of Computer Science University of Paderborn
Motivation P2P systems: significantamountofattention. Holy grail: P2P systemsthatarehighlyscalableandrobust Internet
Motivation P2P systemsfacemanythreats:stop/failattacks, join/leaveattacks, Eclipseattacks, Sybil attacks, Denial-of-Service attacks, contentpollution,… Internet
Sybil Attacks Goal:floodnetworkwithfakepeers Effect:disconnectgoodpeers, dropmessages, dropormanipulatedata,… Internet
Sybil Attacks Previoussolutions: • Douceur 02: Usetrustedauthoritytolimitgenerationofidentities • Bazzi et al. 05/06: Limit identitiescreatedat a particularlocation (e.g., withinan ISP) ofthe Internet • Danezis et al. 05, Yu et al. 06: Network based on socialcontacts • Margolin & Levine 07: Game theory General approach: addconstraints Ourapproach: working P2P networkdespiteSybil attacks
OurApproach Connect totheolderpeers!
Our Approach Similartopreferentialattachmentgraphs. Hope:peersalready in thesystemwhen Sybil attackstartsare not affectedby it. Network Entry Point 28 26 23 21 20 19 18 17 16 9 10 3
Howtoconnecttoolderpeers? Naive solution: Connection todolderpeerschosenuniformlyatrandom: • Howtojoinandleaveefficiently? • Not a self-routingtopology! Better: distributedheapbased on de Bruijngraph 3 2 1 5 4
01 00 11 10 Dynamic de Bruijn Network Classicalnetworktheory: familyofgraphs Example: d-dim. de BruijngraphG=(V,E) • V = {0,1}d • E = { {x,y} | x=(x1,…,xd), y=(b,x1,…,xd-1), forsome b{0,1} } Weneed: dynamic form ofde Bruijngraph (nodesjoinandleave)
Dynamic de Bruijn Network Example: d-dim. de BruijngraphG=(V,E) • V = {0,1}d • E = { {x,y} | x=(x1,…,xd), y=(b,x1,…,xd-1), forsome b{0,1} } • Represent(x1,…,xd) as0.x1 x2…xd [0,1), e.g. 0.101 = 1(1/2) + 0(1/4) + 1(1/8) • Letd
Dynamic de Bruijn Network Example: d-dim. de BruijngraphG=(V,E) • V = {0,1}d • E = { {x,y} | x=(x1,…,xd), y=(b,x1,…,xd-1), forsome b{0,1} } Resultford: • V = [0,1) • E = { {x,y}[0,1)2| y=x/2 ory=(1+x)/2 }
Dynamic de Bruijn Network Continuous de Bruijngraph: • V = [0,1) • E = { {x,y}[0,1)2 | y=x/2 or y=(1+x)/2 } R´ R 0 1 ForanytworegionsR, R´: {x,y}E: (x,y)RxR´or(x,y)R´xR: eachpeer in Rto all olderpeers in R´ • cut[0,1) intoregionsof same size • assignpeerstorandompoints in [0,1)
Dynamic de Bruijn Network Continuous de Bruijngraph: • V = [0,1) • E = { {x,y}[0,1)2 | y=x/2 or y=(1+x)/2 } 0 1 Dilemma:foranyfixedregionsize EITHER : noneighbors OR : toomanyneighbors
SHELL SHELL: Hierarchyof de Bruijnnetworks
SHELL SHELL: distributedheapbased on age
SHELL Foreverynodev: • vhasforwardedgestoolderpeers in itshomeregionand de Bruijnregions • vhasbackwardedgesto all peersthathaveforwardedgestoit • Level ofvisthelowest s.t. v´shomeregioncontainsat least c log nvoldernodes in thisandhigherlevels(nv: total # nodesolderthanv) (Howdoes v know?) Forward degree: O(log n), backwarddegree: O(log2 n) (w.h.p., based on randompositionsofpeers)
SHELL Routing betweentwopeers v and w: • usedeBruijnroutingalongforwardedgestillregionofw reached • descendalongbackwardedgestillwreached 1. v 2. w
SHELL Routing betweentwonodes v and w: • usedeBruijnroutingalongforwardedgestillregionofw reached • descendalongbackwardedgestillwreached 1. v forwardedge youngestpeer
SHELL Routing betweentwonodes v and w: • usedeBruijnroutingalongforwardedgestillregionofw reached • descendalongbackwardedgestillwreached Nice properties: • Onlynodesvisitedthatareat least asoldasvandw • Wheneverynodevsends packet torandomw, congestionatmostO(log2 n) w.h.p.
SHELL Join(v): • find rightregion in rightlevelprescribedby order nvandrandompointassignedtovO(log n) time w.h.p. (userouting) • integratevinto SHELL andadaptregionsofneighbors (ifneeded)O(1) time, O(log2 n)workw.h.p. (forgeneralheap) v Join/leave verkehrt!! w Expected O(1) lifts per level O(log n) work per liftw.h.p.
SHELL Leave(v): • Remove vfrom SHELL andadaptregionsofneighbors (ifneeded)O(1) time, O(log2 n)workw.h.p. v Expected O(1) drops per level w O(log n) work per dropw.h.p.
SHELL Problem: nodevneedstoestimateits order nv(i.e. # nodesolderthan v) Solution: • B(j): numberofnodes in homeregionofv in leveljthatareolderthanv • vfindslargestj so thatj < B(j)/c – log B(j) Chosen leveldeviatesby1from ideal levelw.h.p.
Distributed Heaps Concurrentheaps: • Shavit & Zemach 99: skipqueue • Shavit & Zemach 00: funneltree not applicable in ourcontext Distributed heaps: • Bhargava et al. 04: PAGODAjoin/leave: O(log2 n) time andwork
Main Results Theorem:Forany Sybil attack after stept0, all peersthatwere in the SHELL systembeforet0can still performreliableandefficientrouting (andbased on that, also datamanagement). SHELL can also beappliedasscalable, low-congestionnetworkforpeerswitharbitrarybandwidths.
Conclusion SHELL:distributedheapwithessentially optimal runtimeforrouting, joiningandleaving Future tasks: • Bettercongestion (O(log2 n) down toO(log n)) • Locality • Realization?