180 likes | 404 Views
Peer-to-Peer Protocol (P2PP). Salman Baset, Henning Schulzrinne Columbia University. Agenda. Motivation Practical issues in peer-to-peer systems Peer-to-peer systems file sharing VoIP streaming Peer-to-Peer Protocol (P2PP) P2PP design issues Related work Implementation. Motivation.
E N D
Peer-to-Peer Protocol (P2PP) Salman Baset, Henning Schulzrinne Columbia University
Agenda • Motivation • Practical issues in peer-to-peer systems • Peer-to-peer systems • file sharing • VoIP • streaming • Peer-to-Peer Protocol (P2PP) • P2PP design issues • Related work • Implementation
Motivation • Build a peer-to-peer application • Where to start? • Too many p2p protocols • is there a best one? • Too many design choices
Practical issues in peer-to-peer systems • Bootstrap / service discovery • NAT and firewall traversal • TCP or UDP? • Routing-table management • Operation during churn • Availability and replication • Identity and trust management
Peer-to-peer systems Service discovery High Data size NAT Data size Replication NAT Performance impact / requirement Medium Replication Replication Data size Low NAT VoIP Streaming File sharing
Peer-to-Peer Protocol (P2PP) • P2P applications have common requirements such as discovery, NAT traversal, relay selection, replication, and churn management. • Goals • A protocol to potentially implement any structured or unstructured protocol. • Not dependent on a single DHT or p2p protocol • Not a new DHT! • It is hard! • Too many structured and unstructured p2p protocols • Too many design choices! • Lets consider DHTs
Periodic recovery Accordion Routing-table stabilization Finger table Tree Kademlia Lookup correctness Parallel requests Prefix-match Modulo addition Routing-table size OneHop Leaf-set Recursive routing Pastry Bootstrapping Updating routing-table from lookup requests Bamboo Ring Tapestry XOR Proximity neighbor selection Lookup performance Successor Reactive recovery Hybrid Chord Strict vs. surrogate routing Proximity route selection Routing-table exploration
How to design P2PP? • Structured • Identify commonalities in DHTs • Routing table (finger table) • Neighbor table (successor list, leaf-set) • Separate core routing mechanisms from from DHT-independent issues. • Unstructured • Incorporate mechanisms for • discovery • NAT / firewall traversal • churn, identity and trust management • request routing (recursive / iterative / parallel)
DHT-independent Bootstrapping Routing-table stabilization Reactive vs. periodic recovery Parallel requests Recursive routing Proximity neighbor selection Proximity route selection DHT-specific Not restricted toone DHT DHT-specific Lookup performance Bamboo Chord Tapestry Kademlia Lookup correctness Pastry OneHop Successor / leaf-set Accordion Finger table / routingtable Modulo addition Routing-table size Prefix-match XOR Geometry Updating routing-table from lookup requests Ring Hybrid Strict vs. surrogate routing Tree Routing-table exploration
Chord(Modulo numeric)(Strict routing-tablemanagement) id=x Neighbor table(successor) Routing table Immediately succeeds routing-table id Node
Chord(Modulo numeric)(Flexible routing-table management) id=x Neighbor table Routing table Any node inthe interval Node
Kademlia(XOR) id=x No neighbor table Routing table Node
Peer-to-Peer Protocol (P2PP) • A framing mechanism but much more than that. • A binary protocol • Geared towards IP telephony but equally applicable to file sharing, and streaming • Application API • NAT traversal • using STUN, TURN and ICE • Request routing • recursive, iterative, parallel • Supports hierarchy (super nodes, ordinary nodes) • Multiple hash function support • SHA1, SHA256, MD4, MD5 • Unstructured p2p protocol support • TCP or UDP
Peer-to-Peer Protocol (P2PP) Peer-Info HT = host | NAT-address | relayed P2P-Options
Related work • Towards a common API for structured peer-to-peer overlays • A performance vs. cost framework for evaluating DHT design tradeoffs under churn
Implementation • Chord, Kademlia • SHA1, SHA256, MD5, MD4 • Windows, Linux • Integrated with OpenWengo (VoIP phone)
Questions? • I use Skype. Why should I use this protocol?