Title: An Introduction to Structured P2P Overlay Networks With Cakes
1An Introduction to Structured P2P Overlay
Networks (With Cakes)
- Rob Minson
- Rich Price
- Tien Tuan Anh Dinh
2Overview
- Peer-to-Peer overlay technology is mature and
widely deployed. - Largely unstructured, used in non-critical
(usually nefarious) environments - Since 2000 much research in to turning P2P
overlays in to powerful distributed computing
platforms.
3Unstructured Networks
- Example Application Network File System
- Strings (home/x) map to data
- All data located at globally known IP
4Unstructured Networks
- Unstructured P2P implementation
- Each node knows the IPs of a random subset of
others
5Unstructured Networks
- Searching an unstructured network
- Flooding each node forwards to all neighbours.
- Guaranteed to locate data if it exists
- Very inefficient for non-trivial networks
6Unstructured Networks
7Unstructured Networks
- Searching an unstructured network
- Constrained flooding each query only traverses a
distance from its origin equal to its
time-to-live value (TTL). - Reduces bandwidth forwarding overhead
- Only locates data with probabilistic guarantees
8Unstructured Networks
9Unstructured Networks
10Adding Structure
- Key Points for this section
- Super node network has very high degree
- High maintenance cost (join/leave)
- Low latency traversals
- Standard node network has very low degree
- Low maintenance cost
- High latency traversals
- This is essential trade-off
11Adding Structure
12Structured Networks
- Basic motivations
- Deterministic searches (flooding)
- Low bandwidth usage (constrained flooding)
- Low latency (high-degree)
- Low maintenance overhead (low-degree)
13Structured Networks
- Chord
- Globally known low-collision hash function
- IP addresses and data items both hashed using
same function in to a single address space
/home/rzm/mp3s
788
1000
0
1024
348
/home/ttd/donuts
147.188.43.53
14Structured Networks
- Chord
- Address space is arranged in to a ring
- Nodes are attached to their neighbours
0
1000
114
609
15Structured Networks
- Searching in Chord
- Each node stores the data between itself and its
predecessor in the ring.
0
1000
114
/home/ttd/donuts
348
788
/home/rzm/mp3s
609
16Structured Networks
- Searching in Chord
- Long-distance links (fingers) are added to each
node at logarithmically increasing distances
(allows a binary search)
target
peer
1000
114 1
609
114
114 2
609
114 4
609
114 8
609
114 16
609
114 32
609
114 64
609
114 128
609
114 256
609
114 512
1000
609
114 1024
self
17Structured Networks
- Searching in Chord
- Long-distance links (fingers) are added to each
node at logarithmically increasing distances
(allows a binary search)
target
peer
1000
114 1
296
114
114 2
296
114 4
296
114 8
296
114 16
296
114 32
296
114 64
296
296
114 128
296
114 256
609
114 512
1000
609
114 1024
self
18Structured Networks
- Searching in Chord
- Nodes forward queries to the finger pointer with
the highest address less than the target address
(eg. lookup(744))
1000
Q
114
296
775
744
609
498
19Structured Networks
- Searching in Chord
- Nodes forward queries to the finger pointer with
the highest address less than the target address
(eg. lookup(744))
1000
114
296
775
744
Q
609
498
20Structured Networks
- Searching in Chord
- Nodes forward queries to the finger pointer with
the highest address less than the target address
(eg. lookup(744)) - Unless the target is between you and your
successor!
1000
114
296
775
744
609
498
Q
21Structured Networks
- Several Structured Networks exist
- CAN (2000)
- N-Dimensional toroidal address space
- Pastry (2001)
- Hybrid tree/ring routing IP latency estimation
- Kademlia (2002)
- Widely deployed (eg. Azeurus, BitTorrent
Mainline) - All use essentially the same ideas
22Structured Networks
- Structured network essentials
- Deterministic
- Unique, deterministic responsibility for data
- Low Bandwidth
- No route-branching
- Low Latency
- O(logn)-hop routing
- Low Maintenance
- But significantly higher than unstructured
networks
23Nodes joining (1)
- Picks a bootstrapping node
- Initializes successor,
- predecessor and fingers
0
1000
114
/home/ttd/donuts
788
348
/home/rzm/mp3s
Search using 144 Successor key 4501 -gt Node
609 Predecessor successors predecessor -gt Node
114 Finger2 key 4502 -gt Node 609 Finger9
key 450256-gt Node 1000 Finger10 key 450512
-gt Node 1000
450
500
609
/home/rzm/makeup
24Nodes joining (2)
- Update other nodes
- Transfer keys from successor node
Node 114s changes Successor Node 609 -gt
450 Finger2 to Finger9 Node 609 -gt 450
0
Node 1000s changes Finger9 Node 609 -gt 450
1000
114
/home/ttd/donuts
788
348
/home/rzm/mp3s
450
500
609
/home/rzm/makeup
Node 609s changes Predecessor Node 114 -gt 450
25Nodes leaving
- Leaving in Chord (gracefully)
- Update other nodes
- Move keys to successor nodes
Node 114s changes Successor Node 609 -gt
450 Finger2 to Finger9 Node 609 -gt 450
0
1000
Node 1000s changes Predecessor Node 609 -gt
450 Finger10 Node 609 -gt 1000
114
/home/ttd/donuts
788
348
/home/rzm/mp3s
450
500
Node 450s changes Successor Node 609 -gt
1000 Finger2 to Finger8 Node 609 -gt 1000
609
/home/rzm/makeup
26Concurrent joins/leaves
- Frequent join/leave (high churn rate)
- Maintenance protocol
- Can overload the network
- Can jeopardise deterministic routing
- Longer routing path
- Query failure
A
B
C
27Open Research Topics
- Complex queries
- Load balancing
- Maintenance under churn
- Security
- Applications
- Application-Layer Multicast
- Distributed Storage
- P2P Gaming
- Streaming Media
- etc
28Overlay Research at cs.bham
- Simulation (rmp/ttd)
- Security (ttd)
- Advanced Search (rzm)
- Robustness (rmp)
- etc?
29Thanks!
- (cakes may have contained nuts)