Download presentation
Presentation is loading. Please wait.
Published byCornelius Chapman Modified over 6 years ago
1
Decentralized peer discovery performance in swarm-protocols
Raul Jimenez KTH, Sweden KTH logo here tslab.ssvl.kth.se/raul
2
Overview BitTorrent Content Discovery Data Exchange Peer Discovery
Centralized Tracker Decentralized Tracker (DHT) Gossiping (PEX) DHT Issues Experiments
3
BitTorrent Content discovery Metadata (.torrent file)
Little tree Content discovery Metadata (.torrent file) Peer discovery List of peers Data exchange Content tree
4
Metadata (.torrent file)
supergadget3000.pdf blender_foundation_-_elephants_dream.torrent Product: SuperGadget 3000 Article #: 1234-ABC98 Specifications: ..... Updated list of shops: Name: info_hash: c70bcf4657cac1253d12acda95b04d1e4dcd23f4 Hash for every piece: Tracker (updated list of peers): Elephants Dream HD ..... Product Picture here (webhallen) hide product and spec
5
Peer Discovery Centralized Tracker Decentralized PEX (Peer Exchange)
DHT (Distributed Hash Table) Follow tree
6
Centralized Tracker 1 2 3 4 5 6 7 8 tracker.kth.se 1
Represent this better 8 Add comments
7
Centralized Tracker 1 2 3 tracker.kth.se 4 5 6 1 4 7 8
8
Centralized Tracker 1 2 3 tracker.kth.se 4 5 6 1 4 7 7 8
9
Peer Discovery Centralized Tracker Decentralized PEX (Peer Exchange)
DHT (Distributed Hash Table) Follow the tree
10
Peer Exchange (PEX) Gossiping protocol
Messages between peers in the same swarm Need external bootstrap Example, better description
11
Distributed Hash Table (DHT)
Simple demo 4-bits identifiers (24 = 16 identifiers) 1 node per bucket 10 nodes Properties iterative full tracker
12
DHT: Routing Table Short version for iniciated Routing table Level 0
MyNode 1001
13
DHT: Routing Table 1xxx 0xxx Routing table Level 0 0010 Level 1
MyNode 1001
14
DHT: Routing Table 11xx 00xx Routing table 10xx 01xx Level 0 0010
1111 Level 2 Level 3 MyNode 1001
15
DHT: Routing Table 111x 000x 110x 001x 101x 010x Routing table Level 0
0010 Level 1 1111 100x 011x Level 2 1011 Level 3 MyNode 1001
16
DHT: Routing Table 111x 000x 110x 001x 101x 010x Routing table Level 0
0010 Level 1 1111 1001 011x Level 2 1011 1000 Level 3 ------ MyNode 1001
18
DHT: Find Peers 1xxx 0xxx Level 0 0010 0101 torrentID Level 1 1111
1011 Level 3 MyNode 1001
19
DHT: Find Peers Level 0 1001 Level 1 0110 Level 2 0000 11xx 00xx
0011 10xx 01xx 0101 torrentID MyNode 1001
20
DHT: Find Peers 111x 000x 110x 001x 101x 010x 0101 torrentID 100x 011x
Level 0 1101 Level 1 0000 MyNode 1001 Level 2 0100 Level 3
21
DHT: Find Peers 111x 000x 110x 001x Level 0 1100 101x 010x Level 1
0011 Level 2 0110 Level 3 0101 0101 torrentID 100x 011x MyNode 1001
22
Distributed Hash Table (DHT)
Kademlia Iterative routing algorithm 160-bit identifiers 8 nodes per bucket 1 million nodes ?
23
DHT Issues NAT behaviour BitTorrent & NATs DHT & NATs
24
Network Address Translation (NAT)
NAT hole open partially open NAT hole closed after NAT timeout, or full table, or ... Syncro closed with square Red cross
25
BitTorrent & NATs 1 2 3 tracker.kth.se 4 5 6 1 7 8 Add more NATs
26
BitTorrent & NATs 1 2 3 tracker.kth.se 4 5 6 1 4 7 8
27
BitTorrent & NATs 1 2 3 tracker.kth.se 4 5 6 1 4 7 7 8
28
DHT & NATs Higher (apparent) churn Broken routes
29
Higher churn A new node joins Add to the routing table
Dead node (remove) 1 2 A new node joins ... Show routing table?
30
Broken routes Node 1 finds node 2 N1 adds N2 to routing table
N3 sends message to N1 N2 is the next hop N2 is unreachable from N3 3 Show routing tables?
31
What to do? Prevent my routing table from pollution
Check for global reachability before adding a node No pollute others' routing tables Tell others “don't add me to your routing table”
32
Prevent pollution Check candidate node's reachability
from the DHT (same IP, same port) opening a new connection (same IP, different port) from another host (different IP) Wait for a long time (>NAT timeout) Zero 0% Very cheap Exp data Expensive 100% ? ?
33
Prevent pollution Experiment results here
34
No pollute others Flag myself as “unreachable” new protocol message
a flag in messages select a special port range don't reply any message
35
Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.