Download presentation
Presentation is loading. Please wait.
1
Distributed Hash Tables
David Tam Patrick Pang
2
Presentation Outline What is DHT (Distributed Hash Table)? Why DHTs?
Applications How lookup works? Alternatives to DHTs Performance – Routing Performance – Load Balancing Security – Routing Attack Security – Inconsistent Behaviour Comparison to Other Facilities Current Research Projects Conclusion
3
Distributed application Distributed hash table
What is DHT? Distributed application put(key, data) get (key) data Distributed hash table node …. DHT provides the information look up service for P2P applications. Nodes uniformly distributed across key space Nodes form an overlay network Nodes maintain list of neighbours in routing table Decoupled from physical network topology Make it simple to write decentralized, distributed applications ….. (Figure adopted from Frans Kaashoek)
4
Why DHTs? Why Middleware?
Simplifies the development for large-scale distributed Apps Better security and robustness Simple API Why Do We Need DHTs? Simplifies the development for large-scale distributed Apps Better security and robustness Simple API Exploits P2P resources
5
Applications Anything that requires a hash table
Databases, FSes, storage, archival Web serving, caching Content distribution Query & indexing Naming systems Communication primitives Chat services Application-layer multi-casting Event notification services Publish/subscribe systems ?
6
How lookup works? start interval succ. 3 [3,4) 5 4 [4,6) 6 [6,10) 7 10
Example: Chord [Stoica et. al.] 1 15 Finger Table for Node 2 2 14 3 start interval succ. 3 [3,4) 5 4 [4,6) 6 [6,10) 7 10 [10,2) 13 4 12 5 11 10 6 7 9 8
7
How lookup works? start interval succ. 11 [11,12) 12 [12,14) 14 [14,2)
Example: Chord 1 15 Finger Table for Node 10 2 14 3 start interval succ. 11 [11,12) 12 [12,14) 14 [14,2) 2 [2,10) 13 4 12 5 11 10 6 7 9 8
8
How lookup works? start interval succ. 11 [11,12) 12 [12,14) 14 [14,2)
Example: Chord 1 15 Finger Table for Node 10 2 14 3 start interval succ. 11 [11,12) 12 [12,14) 14 [14,2) 2 [2,10) 13 4 12 5 11 10 6 7 9 8
9
How lookup works? start interval succ. 15 [15,0) [0,2) 1 2 [2,6) 6
Example: Chord 1 15 Finger Table for Node 14 2 14 3 start interval succ. 15 [15,0) [0,2) 1 2 [2,6) 6 [6,13) 7 13 4 12 5 11 10 6 7 9 8
10
How lookup works? start interval succ. 15 [15,0) [0,2) 1 2 [2,6) 6
Example: Chord 1 15 Finger Table for Node 14 2 14 3 start interval succ. 15 [15,0) [0,2) 1 2 [2,6) 6 [6,13) 7 13 4 12 5 11 10 6 7 9 8
11
How lookup works? Example: Chord 1 15 2 14 3
1 15 2 14 3 Now Node 2 can retrive information for key 0 from Node 1. 4 12 5 11 10 6 7 9 8
12
Alternatives to DHTs N4 N6 N9 N7 N8 N3 N2 N1 N10 N4 N6 N9 N7 N8 N3 N2
Target Start N6 N9 N7 N8 N3 N2 N1 N10 Distributed file system Centralized lookup P2P flooding queries Server Client Internet N4 Target Start N6 N9 N7 N8 N3 N2 N1 N10 DB (Figures adopted from Frans Kaashoek)
13
Performance -- Lookup Purpose -- to locate a target node
Each step, try to get closer to locating target node Ask a closer neighbour Performance & scalability tied directly to lookup algorithm 2 Aspects to Performance Path latency Lookup path length (# hops) 2 Aspects to Scalability size of routing table – O(log N) lookup path length – O(log N) 3 Techniques proximity lookup proximity neighbour selection geographic layout
14
Performance -- Load Balancing
Issues Hot-spots Content Lookup Heterogeneous nodes & paths System flux Solution Replication is the key Also good for fault-tolerance Cache lookup answers backwards along path
15
Security – Incorrect Lookup (1)
When asked for the “next hop”, give a wrong answer Finger Table for Node 2 1 15 start interval succ. 3 [3,4) 5 4 [4,6) 6 [6,10) 7 10 [10,2) 2 14 3 13 4 12 5 Node 2 to Node 10: Please tell me how to reach key 0 …. 11 10 6 7 9 8
16
Security – Incorrect Lookup (2)
When asked for the “next hop”, give a wrong answer Finger Table for Node 10 1 15 start interval succ. 11 [11,12) 12 [12,14) 14 [14,2) 2 [2,10) 2 14 3 13 4 12 5 Node 2 to Node 10: Please tell me how to reach key 0 …. Node 10 answers: ask Node 14 11 10 6 7 9 8
17
Security – Incorrect Lookup (3)
When asked for the “next hop”, give a wrong answer Finger Table for Node 14 1 15 start interval succ. 15 [15,0) [0,2) 1 2 [2,6) 6 [6,13) 7 2 14 3 13 4 12 5 Node 2 to Node 14: Please tell me how to reach key 0 …. Node 14 answers: ask Node 10 11 10 6 7 9 8
18
Security – Incorrect Lookup (4)
Solution [Sit and Morris]: “Define verifiable system invariant” “Allow the querier to observe lookup progress” Our idea how this can be implemented: Concretely, using an integral monotonically decreasing quantity to implement the idea of “progress”. The concept of “monotonically decreasing quantity” has been used in program construction guaranteeing total correctness. [Parnas]
19
Security – Inconsistent Behaviour
Inconsistent Behaviour, i.e., lie intelligibly Sybil attack [Kaashoek] Solution 1: public key solution
20
Security – Inconsistent Behaviour
Inconsistent Behaviour, i.e., lie intelligibly Sybil attack [Kaashoek] Solution 1: public key solution Solution 2: Byzantine Protocol Byzantine Generals Problem: How to find out the traitors among the Generals? [Lamport]
21
Security – Inconsistent Behaviour
Inconsistent Behaviour, i.e., lie intelligibly Sybil attack [Kaashoek] Solution 1: public key solution Solution 2: Byzantine Protocol Commander Lieutenant 1 Lieutenant 2 Byzantine Generals Problem: How to find out the traitors among the Generals? [Lamport] attack “he said ‘retreat’”
22
Security – Inconsistent Behaviour
Inconsistent Behaviour, i.e., lie intelligibly Sybil attack [Kaashoek] Solution 1: public key solution Solution 2: Byzantine Protocol Commander Lieutenant 1 Lieutenant 2 Byzantine Generals Problem: How to find out the traitors among the Generals? [Lamport] attack retreat “he said ‘retreat’”
23
Comparison to Other Facilities
Facility Abstraction Easy Use/Prg Scalability Load-Balance DHT high yes Centralized Lookup medium low no P2P flooding queries Distributed FS Facility Fault-Tolerance Self-Org Admin DHT high yes low Centralized Lookup no medium P2P flooding queries depends Distributed FS
24
Research Projects Iris – security & fault-tolerance – US Gov’t
Chord – circular key space Pastry – circular key space Tapestry – hypercube space CAN – n-dimensional key space Kelips – n-dimensional key space DDS -- middleware platform for internet service construction -- cluster-based -- incremental scalability
25
Summary Good middleware platform Exploits P2P networks
An exciting new research area
26
References Lamport, Leslie et. al. The Byzantine Generals Problem
Sit, Emil, Morris, Robert. Security Considerations for Peer-to-Peer Distributed Hash Tables Kaashoek, Frans. Distributed Hash Tables – Building large-sacle, robust distributed applications Stoica, Ion et. al. Chord: A scalable peer-to-peer lookup service for Internet applications Parnas, D. L. Connecting Theory to Practice: Software Engineering Programme
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.