Title: Distributed Hash Tables
1Distributed Hash Tables
2Presentation 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
3What is DHT?
Distributed application
data
get (key)
put(key, data)
Distributed hash table
- 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
(Figure adopted from Frans Kaashoek)
4Why 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
5Applications
- 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 ?
6How lookup works?
0
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) 5
6 6,10) 7
10 10,2) 10
13
4
12
5
11
10
6
7
9
8
7How lookup works?
0
Example Chord
1
15
Finger Table for Node 10
2
14
3
start interval succ.
11 11,12) 12
12 12,14) 12
14 14,2) 14
2 2,10) 2
13
4
12
5
11
10
6
7
9
8
8How lookup works?
0
Example Chord
1
15
Finger Table for Node 10
2
14
3
start interval succ.
11 11,12) 12
12 12,14) 12
14 14,2) 14
2 2,10) 2
13
4
12
5
11
10
6
7
9
8
9How lookup works?
0
Example Chord
1
15
Finger Table for Node 14
2
14
3
start interval succ.
15 15,0) 15
0 0,2) 1
2 2,6) 2
6 6,13) 7
13
4
12
5
11
10
6
7
9
8
10How lookup works?
0
Example Chord
1
15
Finger Table for Node 14
2
14
3
start interval succ.
15 15,0) 15
0 0,2) 1
2 2,6) 2
6 6,13) 7
13
4
12
5
11
10
6
7
9
8
11How lookup works?
0
Example Chord
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
12Alternatives to DHTs
- Distributed file system
- Centralized lookup
- P2P flooding queries
(Figures adopted from Frans Kaashoek)
13Performance -- 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 Scalability
- size of routing table O(log N)
- lookup path length O(log N)
- 2 Aspects to Performance
- Path latency
- Lookup path length ( hops)
- 3 Techniques
- proximity lookup
- proximity neighbour selection
- geographic layout
14Performance -- 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
15Security Incorrect Lookup (1)
- When asked for the next hop, give a wrong
answer
0
Finger Table for Node 2
1
15
start interval succ.
3 3,4) 5
4 4,6) 5
6 6,10) 7
10 10,2) 10
2
14
3
13
4
12
5
11
Node 2 to Node 10 Please tell me how to reach
key 0 .
10
6
7
9
8
16Security Incorrect Lookup (2)
- When asked for the next hop, give a wrong
answer
0
Finger Table for Node 10
1
15
start interval succ.
11 11,12) 12
12 12,14) 12
14 14,2) 14
2 2,10) 2
2
14
3
13
4
12
5
11
Node 2 to Node 10 Please tell me how to reach
key 0 . Node 10 answers ask Node 14
10
6
7
9
8
17Security Incorrect Lookup (3)
- When asked for the next hop, give a wrong
answer
0
Finger Table for Node 14
1
15
start interval succ.
15 15,0) 15
0 0,2) 1
2 2,6) 2
6 6,13) 7
2
14
3
13
4
12
5
11
Node 2 to Node 14 Please tell me how to reach
key 0 . Node 14 answers ask Node 10
10
6
7
9
8
18Security 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
19Security Inconsistent Behaviour
- Inconsistent Behaviour, i.e., lie intelligibly
- Sybil attack Kaashoek
Solution 1 public key solution
20Security 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
21Security 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
22Security 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
23Comparison to Other Facilities
Facility Abstraction Easy Use/Prg Scalability Load-Balance
DHT high high high yes
Centralized Lookup medium medium low no
P2P flooding queries medium high low no
Distributed FS low medium medium no
Facility Fault-Tolerance Self-Org Admin
DHT high yes low
Centralized Lookup low no medium
P2P flooding queries depends yes low
Distributed FS medium no high
24Research Projects
Iris security fault-tolerance US
Govt 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
25Summary
- Good middleware platform
- Exploits P2P networks
- An exciting new research area
26References
- 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