Download presentation
Presentation is loading. Please wait.
Published byKatrina Burke Modified over 9 years ago
1
A Distributed and Oblivious Heap Christian Scheideler and Stefan Schmid Dept. of Computer Science University of Paderborn
2
Motivation P2P systems: significant amount of attention. Holy grail: P2P systems that are highly scalable and robust Internet
3
Motivation P2P systems face many threats: stop/fail attacks, join/leave attacks, Eclipse attacks, Sybil attacks, Denial-of-Service attacks, content pollution,… Internet
4
Sybil Attacks Goal: flood network with fake peers Effect: disconnect good peers, drop messages, drop or manipulate data,… Internet
5
Sybil Attacks Previous solutions: Douceur 02: Use trusted authority to limit generation of identities Bazzi et al. 05/06: Limit identities created at a particular location (e.g., within an ISP) of the Internet Danezis et al. 05, Yu et al. 06: Network based on social contacts Margolin & Levine 07: Game theory General approach: add constraints Our approach: working P2P network despite Sybil attacks
6
Our Approach Connect to the older peers!
7
Our Approach Similar to preferential attachment graphs. Hope: peers already in the system when Sybil attack starts are not affected by it. 28 23 21 26 18 17 20 19 16 9 10 3 Network Entry Point
8
How to connect to older peers? Naive solution: Connection to d older peers chosen uniformly at random: How to join and leave efficiently? Not a self-routing topology! Better: distributed heap based on de Bruijn graph 1 4 5 32
9
Dynamic de Bruijn Network Classical network theory: family of graphs Example: d-dim. de Bruijn graph G=(V,E) V = {0,1} d E = { {x,y} | x=(x 1,…,x d ), y=(b,x 1,…,x d-1 ), for some b {0,1} } We need: dynamic form of de Bruijn graph (nodes join and leave) 00 01 10 11
10
Dynamic de Bruijn Network Example: d-dim. de Bruijn graph G=(V,E) V = {0,1} d E = { {x,y} | x=(x 1,…,x d ), y=(b,x 1,…,x d-1 ), for some b {0,1} } Represent (x 1,…,x d ) as 0.x 1 x 2 …x d [0,1), e.g. 0.101 = 1 (1/2) + 0 (1/4) + 1 (1/8) Let d
11
Dynamic de Bruijn Network Example: d-dim. de Bruijn graph G=(V,E) V = {0,1} d E = { {x,y} | x=(x 1,…,x d ), y=(b,x 1,…,x d-1 ), for some b {0,1} } Result for d : V = [0,1) E = { {x,y} [0,1) 2 | y=x/2 or y=(1+x)/2 }
12
Dynamic de Bruijn Network Continuous de Bruijn graph: V = [0,1) E = { {x,y} [0,1) 2 | y=x/2 or y=(1+x)/2 } 01 For any two regions R, R´: {x,y} E: (x,y) RxR´ or (x,y) R´xR: each peer in R to all older peers in R´ cut [0,1) into regions of same size assign peers to random points in [0,1) RR´
13
Dynamic de Bruijn Network Continuous de Bruijn graph: V = [0,1) E = { {x,y} [0,1) 2 | y=x/2 or y=(1+x)/2 } 01 Dilemma: for any fixed region size EITHER : no neighbors OR : too many neighbors
14
SHELL SHELL: Hierarchy of de Bruijn networks
15
SHELL SHELL: distributed heap based on age
16
SHELL For every node v: v has forward edges to older peers in its home region and de Bruijn regions v has backward edges to all peers that have forward edges to it Level of v is the lowest s.t. v´s home region contains at least c log n v older nodes in this and higher levels (n v : total # nodes older than v) (How does v know?) Forward degree: O(log n), backward degree: O(log 2 n) (w.h.p., based on random positions of peers)
17
SHELL Routing between two peers v and w: 1.use deBruijn routing along forward edges till region of w reached 2.descend along backward edges till w reached v w 1. 2.
18
SHELL Routing between two nodes v and w: 1.use deBruijn routing along forward edges till region of w reached 2.descend along backward edges till w reached v 1. forward edge youngest peer
19
SHELL Routing between two nodes v and w: 1.use deBruijn routing along forward edges till region of w reached 2.descend along backward edges till w reached Nice properties: Only nodes visited that are at least as old as v and w When every node v sends packet to random w, congestion at most O(log 2 n) w.h.p.
20
SHELL Join(v): 1.find right region in right level prescribed by order n v and random point assigned to v O(log n) time w.h.p. (use routing) 2.integrate v into SHELL and adapt regions of neighbors (if needed) O(1) time, O(log 2 n) work w.h.p. (for general heap) v wExpected O(1) lifts per level O(log n) work per lift w.h.p. Join/leave verkehrt!!
21
SHELL Leave(v): Remove v from SHELL and adapt regions of neighbors (if needed) O(1) time, O(log 2 n) work w.h.p. v w Expected O(1) drops per level O(log n) work per drop w.h.p.
22
SHELL Problem: node v needs to estimate its order n v (i.e. # nodes older than v) Solution: B(j): number of nodes in home region of v in level j that are older than v v finds largest j so that j < B(j)/c – log B(j) Chosen level deviates by 1 from ideal level w.h.p.
23
Distributed Heaps Concurrent heaps: Shavit & Zemach 99: skip queue Shavit & Zemach 00: funnel tree not applicable in our context Distributed heaps: Bhargava et al. 04: PAGODA join/leave: O(log 2 n) time and work
24
Main Results Theorem: For any Sybil attack after step t 0, all peers that were in the SHELL system before t 0 can still perform reliable and efficient routing (and based on that, also data management). SHELL can also be applied as scalable, low- congestion network for peers with arbitrary bandwidths.
25
Conclusion SHELL: distributed heap with essentially optimal runtime for routing, joining and leaving Future tasks: Better congestion (O(log 2 n) down to O(log n)) Locality Realization?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.