GNUnet Distributed Data Storage DHT and Distance Vector Transport Nathan S. Evans 1 1 Technische Universität München Department of Computer Science Network Architectures and Services July, 24 2010
Overview Overview Distributed Hash Tables Usage Background Kademlia Restricted Route Networks GNUnet DHT Motivation Design Implementation Issues Distance Vector Transport Purpose Design Benefits Summary and Conclusion N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 2 / 102
Distributed Hash Tables Basics DHT Basics Shared data storage for P2P networks Reliably store files, data Pool bandwidth, storage space Data remains when publisher disappears Decentralization N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 3 / 102
Distributed Hash Tables Basics DHT Basics Data identified by keys Peers store data based on key Distributed Key/Value mapping Load balancing Simple PUT /GET abstraction Scalable N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 4 / 102
Distributed Hash Tables DHT Example - Pool of Nodes Basics N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 5 / 102
Distributed Hash Tables Basics DHT Example - Data XYZ Stored in Network XYZ XYZ XYZ XYZ N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 6 / 102
Distributed Hash Tables Basics DHT Example - Data Available when Nodes Lost XYZ XYZ XYZ XYZ N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 7 / 102
Distributed Hash Tables Basics DHT Routing Routing is the essential internal function of DHT s Enables storage, lookup DHT s have distance metric D a,b where a, b are keys or node identifiers Common DHT s route requests to next closest node w.r.t key Provided closest node is found, a PUT and subsequent GET request for a key will reach the same node, and data will be stored/found properly. N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 8 / 102
Distributed Hash Tables Basics DHT Routing Example - Base Topology 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 9 / 102
Distributed Hash Tables Basics DHT Routing Example - Peer (1, 1, 2, 2) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 10 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 1 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 11 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 2 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 12 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 3 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 13 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 4 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 14 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 5 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 15 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 6 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 16 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 7 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 17 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 8 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 18 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 9 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 19 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 10 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 20 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 12 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 21 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 13 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 22 / 102
Distributed Hash Tables Basics DHT Routing Example - Data Search 14 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 23 / 102
Distributed Hash Tables Basics DHT Limitations Not secure Eclipse attacks Block access to data DoS Not scalable/decentralized Routing tables and maintenance Require trusted authority Require well connected graph N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 24 / 102
Distributed Hash Tables Basics DHT Attack Example - Base Topology 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 25 / 102
Distributed Hash Tables Basics DHT Attack Example - Put Data Normal 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 26 / 102
Distributed Hash Tables Basics DHT Attack Example - Get Data Normal 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 27 / 102
Distributed Hash Tables Basics DHT Attack Example - Random Mallory 1 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 28 / 102
Distributed Hash Tables Basics DHT Attack Example - Random Mallory 2 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 29 / 102
Distributed Hash Tables Basics DHT Attack Example - Random Mallory 3 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 30 / 102
Distributed Hash Tables Basics DHT Attack Example - Sybil and Mallory 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 31 / 102
Distributed Hash Tables Basics DHT Attack Example - Sybil and Mallory 2 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 32 / 102
Distributed Hash Tables Basics DHT Attack Example - Sybil and Mallory 3 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 33 / 102
Distributed Hash Tables Basics DHT Attack Example - Mallory Surround 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 34 / 102
Distributed Hash Tables Basics DHT Attack Example - Mallory Surround 2 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 35 / 102
Distributed Hash Tables Basics DHT Attack Example - Mallory Surround 3 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 36 / 102
Distributed Hash Tables Kademlia Kademlia Routing Routes to peer with most matching bits Assume sufficiently full routing tables Number of possible nodes is halved at each step Results in O(log n) steps Same method used to search a binary tree Metric is simple, other DHT s require multiple routing tables to achieve same performance N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 37 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Routing Table 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 38 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Routing Table 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 39 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Routing Table 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 40 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Routing Table 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 41 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Searching for 010 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 42 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Searching for 010 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 43 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Searching for 010 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 44 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Searching for 010 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 45 / 102
Distributed Hash Tables Kademlia Kademlia Peer 101 Searching for 010 0 1 0 1 0 1 0 1 0 1 0 1 0 1 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 46 / 102
Distributed Hash Tables Kademlia Kademlia Today Kademlia most widely used DHT Kad network used by edonkey, emule, amule DHT used for searching for and storing links Millions(!) of users Problems Highly deterministic routing DoS attacks possible Eclipse, content blocking possible NAT d users need buddy to participate Requires fully connected topology N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 47 / 102
Restricted Route Networks Restricted Route Network Topologies Assumption that any two peers with an IP address can communicate doesn t always hold NAT Firewalls Mobile Networks Ad-hoc Networks Sensor Networks DHT s commonly assume/require universal connectivity We would like our DHT to function in all the above networks Build in support for upnp, NAT punching, etc. Goal: provide more connectivity to sparsely connected graphs (DV) N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 48 / 102
GNUnet DHT Motivation Motivation Efficient Decentralized Scalable Secure Reliable Fault-tolerant Provides availability Operates in diverse topologies Build off previous DHT designs N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 49 / 102
Kademlia Comparison GNUnet DHT Motivation Kademlia similarities Use distance metric Routing table made up of k-buckets Bucket k i holds peers with matching prefix length i Efficient, binary search like routing (O(log n)) Departure from Kademlia Randomized, recursive routing Forward requests to multiple peers Closest local peers to key store data Designed to work in diverse networks, even those without universal connectivity Routing works with sparse set of connections N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 50 / 102
GNUnet DHT GNUnet DHT - Base Example GNUnet DHT Examples 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 51 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 1 (Normal) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 52 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 2 (Randomized) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 53 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 3 (Randomized) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 54 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 4 (Randomized) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 55 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 5 (Randomized) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 56 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 6 (Failure) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 57 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 7 (Split) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 58 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Insert Example 8 (Randomized and split) 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 59 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - Base 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 60 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - 1 Malicious 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 61 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - Split-route 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 62 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - Out-route 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 63 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - 3 Malicious 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 64 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Get Example - Route around 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 65 / 102
GNUnet DHT GNUnet DHT - Surround Data GNUnet DHT Examples 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 66 / 102
GNUnet DHT GNUnet DHT - Insert Redundancy GNUnet DHT Examples 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 67 / 102
GNUnet DHT GNUnet DHT Examples GNUnet DHT - Mallory and Sybil fail 5 4 3 2 1 0 0 1 2 3 4 5 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 68 / 102
GNUnet DHT Implementation Implementation DHT implemented in both 0.8 and 0.9 versions of GNUnet Kademlia style routing table, randomized recursive routing Routing table from connected peers Testing and evaluation framework Start GNUnet peers Connect in certain topology Insert/retrieve data, log high and low level results N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 69 / 102
GNUnet DHT Issues Remaining Issues Determining topology (and therefore network size) is difficult Need to know for appropriate routing More testing with malicious peers and churn needed Routes through network are found, not always efficiently Simulate large number of well connected peers More complete routing tables better routing: can we improve our tables? N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 70 / 102
Distance Vector Transport Purpose Fisheye Bounded Distance Vector Efficient routes betwen nodes can be determined using distance vector protocol Every node publishes complete routing information Data disseminated to all nodes; so best routes are found Distance vector requires lots of communication and state Limit routing information shared by hops to target Gives each node a complete Fisheye view of their local neighborhood Using FBDV in GNUnet provides more peers than available by only direct connections Restricted route networks can become better connected! N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 71 / 102
Distance Vector Transport Design Design Distance vector implemented as transport plugin When peers connect, they gossip their known neighbors Gossiped peers can be communicated with via gossiper Assume a network of three peers, A, B and C A connects to B, then B connects to C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 72 / 102
Distance Vector Transport Example Example - Peers A, B, C connected in line A B C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 73 / 102
Distance Vector Transport Example Example - Peer B gossips C to A, A to C A C:B:1 B A:B:1 C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 74 / 102
Distance Vector Transport Example Example - Peers A and C connected via B A B C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 75 / 102
Distance Vector Transport Example Example - Peer D joins, connects to C A B C D N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 76 / 102
Distance Vector Transport Example Example - Peer C gossips B, A to D A B C D D:B:2 D:C:1 B:C:1 A:C:2 N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 77 / 102
Distance Vector Transport Example Example - D connected to B, A via C A B C D N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 78 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: Services for peers A, B, C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 79 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE A receives message for C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 80 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE A hands to TRANSPORT A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 81 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT A hands to DV A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 82 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: DV A hands to CORE A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 83 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE A hands to TRANSPORT A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 84 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT A hands to TCP A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 85 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: Message sent via TCP to Peer B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 86 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TCP B hands to TRANSPORT B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 87 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT B hands to CORE B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 88 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE B hands to DV B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 89 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: DV B hands to CORE B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 90 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE B hands to TRANSPORT B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 91 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT B hands to TCP B N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 92 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: Message is sent via TCP to peer C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 93 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TCP C hands to TRANSPORT C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 94 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT C hands to CORE C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 95 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE C hands to DV C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 96 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: DV C hands to TRANSPORT C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 97 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: TRANSPORT C hands to CORE C N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 98 / 102
Under the Hood Distance Vector Transport Detailed Example CORE A CORE B CORE C TRANSPORT A TRANSPORT B TRANSPORT C DV A DV B DV C TCP A TCP B TCP C Figure: CORE C delivers message from A N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 99 / 102
Distance Vector Transport Benefits Benefits of FBDV Provide more available peers to DHT Local routing very efficient, transport selection further optimizes Sparse topologies have better chance for routing Allows DHT routing algorithm to remain more general Shifts connection overhead from file handles to memory/cpu DV messages essentially onion encrypted/routed DV may be used in the future for long lived Tor style circuits to provide anonymity! N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 100 / 102
The End Summary and Conclusion GNUnet should have a DHT Distributing storage Replication Reliability, scalability DHT should be efficient, secure Must compromise Decide which goals most important Build on existing designs Randomized routing DHT should work in diverse topologies Requires flexible routing Use DV to help secluded peers N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 101 / 102
Questions? Summary and Conclusion N. Evans (TUM) GNUnet Distributed Data Storage July, 24 2010 102 / 102