GNUnet Distributed Data Storage

Similar documents
Peer-to-Peer Systems and Security

Kademlia: A P2P Informa2on System Based on the XOR Metric

08 Distributed Hash Tables

Saarland University Faculty of Natural Sciences and Technology I Department of Computer Science. Masters Thesis

Peer-to-peer systems and overlay networks

Overlay and P2P Networks. Structured Networks and DHTs. Prof. Sasu Tarkoma

R/Kademlia: Recursive and Topology-aware Overlay Routing

Lecture 6: Overlay Networks. CS 598: Advanced Internetworking Matthew Caesar February 15, 2011

Introduction to Peer-to-Peer Systems

Module SDS: Scalable Distributed Systems. Gabriel Antoniu, KERDATA & Davide Frey, ASAP INRIA

Content Overlays. Nick Feamster CS 7260 March 12, 2007

Peer-to-Peer Internet Applications: A Review

Peer-to-Peer Systems. Network Science: Introduction. P2P History: P2P History: 1999 today

S/Kademlia: A Practicable Approach Towards Secure Key Based Routing

Peer-to-Peer Systems and Distributed Hash Tables

Peer-To-Peer Techniques

Telematics Chapter 9: Peer-to-Peer Networks

Lesson 9 Applications of DHT: Bittorrent Mainline DHT, the KAD network

Unit 8 Peer-to-Peer Networking

internet technologies and standards

Routing in the Dark: Pitch Black. A Thesis Presented to the Faculty of Engineering and Computer Science University of Denver

Secure and Robust Overlay Content Distribution

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing

Overlay networks. To do. Overlay networks. P2P evolution DHTs in general, Chord and Kademlia. Turtles all the way down. q q q

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE

Architectures for Distributed Systems

Today. Why might P2P be a win? What is a Peer-to-Peer (P2P) system? Peer-to-Peer Systems and Distributed Hash Tables

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Distributed hash table - Wikipedia, the free encyclopedia

DMAP : Global Name Resolution Services Through Direct Mapping

Towards Benchmarking of P2P Technologies from a SCADA Systems Protection Perspective

Decentralized Evaluation of Regular Expressions for Capability Discovery in Peer-to-Peer Networks

(Im)possibility of Enumerating Zombies. Yongdae Kim (U of Minnesota - Twin Cities)

Chapter 10: Peer-to-Peer Systems

Kademlia: A peer-to peer information system based on XOR. based on XOR Metric,by P. Maymounkov and D. Mazieres

Efficient DHT attack mitigation through peers ID distribution

P2P Network Structured Networks: Distributed Hash Tables. Pedro García López Universitat Rovira I Virgili

Improving Lookup Performance over a Widely-Deployed DHT

P2PNS: A Secure Distributed Name Service for P2PSIP

Peer-to-Peer Systems. Chapter General Characteristics

Cooperation in Open Distributed Systems. Stefan Schmid

Overview Computer Networking Lecture 16: Delivering Content: Peer to Peer and CDNs Peter Steenkiste

CS4700/CS5700 Fundamentals of Computer Networks

Peer- Peer to -peer Systems

Overlay and P2P Networks. Introduction and unstructured networks. Prof. Sasu Tarkoma

A Scalable Content- Addressable Network

Searching for Shared Resources: DHT in General

Coordinate-based Routing:

Overlay and P2P Networks. Structured Networks and DHTs. Prof. Sasu Tarkoma

PeerfactSim.KOM: A Simulation Framework for Peer-to-Peer Systems

Distributed Hash Tables

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

Slides for Chapter 10: Peer-to-Peer Systems

Telecommunication Services Engineering Lab. Roch H. Glitho

Distributed Hash Tables

GIAN Course on Distributed Network Algorithms. Network Topologies and Interconnects

P2P: Distributed Hash Tables

Distributed Hash Tables: Chord

Scalable overlay Networks

Searching for Shared Resources: DHT in General

P2P Network Structured Networks (IV) Distributed Hash Tables. Pedro García López Universitat Rovira I Virgili

Distributed Hash Table

: Scalable Lookup

Security for Structured Peer-to-peer Overlay Networks. Acknowledgement. Outline. By Miguel Castro et al. OSDI 02 Presented by Shiping Chen in IT818

CSE 124 Finding objects in distributed systems: Distributed hash tables and consistent hashing. March 8, 2016 Prof. George Porter

PariMulo: Kad. Università degli studi di Padova Facoltà di Ingegneria. Corso di Laurea Magistrale in Ingegneria Informatica

Peer-to-Peer (P2P) Systems

Introduction to P2P Computing

CS514: Intermediate Course in Computer Systems

Purpose and security analysis of RASTER

L3S Research Center, University of Hannover

Scalability In Peer-to-Peer Systems. Presented by Stavros Nikolaou

Motivation for peer-to-peer

Content Search. Unstructured P2P. Jukka K. Nurminen

Peer-to-peer computing research a fad?

GIAN Course on Distributed Network Algorithms. Network Topologies and Local Routing

Distributed Information Processing

Information Leak in the Chord Lookup Protocol

Modern Technology of Internet

Symphony. Symphony. Acknowledgement. DHTs: : The Big Picture. Spectrum of DHT Protocols. Distributed Hashing in a Small World

Anonymity With Tor. The Onion Router. July 5, It s a series of tubes. Ted Stevens. Technische Universität München

Lecture 8: Application Layer P2P Applications and DHTs

Problems in Reputation based Methods in P2P Networks

Peer-to-Peer Systems and Security IN2194. Chapter 1 Peer-to-Peer Systems 1.3 Structured Networks

The Design and Implementation of a Next Generation Name Service for the Internet (CoDoNS) Presented By: Kamalakar Kambhatla

Winter CS454/ Assignment 2 Instructor: Bernard Wong Due date: March 12 15, 2012 Group size: 2

Peer to Peer Networks

Efficient and Secure Decentralized Network Size Estimation

Horizontal or vertical scalability? Horizontal scaling is challenging. Today. Scaling Out Key-Value Storage

Overlay networks. Today. l Overlays networks l P2P evolution l Pastry as a routing overlay example

Scaling Out Key-Value Storage

Practical Anonymity for the Masses with MorphMix

Peer to Peer Networks

P2P Network Structured Networks: Distributed Hash Tables. Pedro García López Universitat Rovira I Virgili

CSCI-1680 P2P Rodrigo Fonseca

Overlay Networks in ScaleNet

Distributed Systems Peer-to-Peer Systems

Distributed Systems. 17. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2016

ShadowWalker: Peer-to-peer Anonymous Communication Using Redundant Structured Topologies

c 2010 Prateek Mittal

Transcription:

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