Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
2 / 26 Contents Introduction to P2P Structured scheme Unstructured scheme Conclusion
3 / 26 Introduction to P2P Peer to Peer Server-client?
4 / 26 Introduction to P2P Overlay?
5 / 26 Introduction to P2P Peer-to-peer overlay network Distributed systems No hierarchical organization No centralized control Overlayed on the IP Robust wide-area routing Efficient searching Storing, Selecting, Scalability, …
6 / 26 Introduction to P2P (cont’d)
7 / 26 Introduction to P2P (cont’d) Distributed hash table Decentralized Scalability Fault tolerance
8 / 26 Introduction to P2P (cont’d) Structured P2P overlay networks Network topology is tightly controlled Use distributed hash table as a substrate Unstructured P2P overlay networks Each peers doesn’t know about whole network topology
9 / 26 Contents Introduction to P2P Structured scheme Pastry Chord P-Grid Unstructured scheme Conclusion
10 / 26 Structured scheme Pastry General substrate of p2p application Self-organizing, decentralized, scalable 128-bit node ID for each node ┌ Log 2^b N ┐ step routing
11 / 26 Structured scheme Pastry – Node state Routing table Entry (n,i) shares first n digits and (n+1)th digit is i Leaf set Numerically closest of nodeID Neighborhood set Closest in IP network
12 / 26 Structured scheme Pastry – Routing, Join, Failure Routing Leaf set matching Longest prefix matching in routing table Join Assumption : new peer A knows a nearby peer X Join message routed to numerically closest peer Z Each row of routing table constructed along the path Leaf of Z is almost same as that of A Neighbor of X is almost same as that of A Failure or Departure Recursive recovery
13 / 26 Structured scheme Chord Scalable, distributed, self-organizing Node and keys are distributed on the identifier circle Node/Key identifier : hashing Consistent hashing
14 / 26 Structured scheme Chord – Identifier circle / finger table Key identifiers are stored in its successor node Lookup on successors Finger table provides faster lookup Keep entry of 2 n th successors Add scalability A Chord identifier circle with 3 nodes (0, 1, 3) and 3 keys (1, 2, 6) A Chord finger table for previous identifier circle
15 / 26 Structured scheme Chord – join / stablization Join Initialize finger and predecessor Update other nodes’ fingers Stabilization A problem with inconsistent finger table may arise when concurrent join occurs Predecessor and Successor of each node will be corrected by stabilization
16 / 26 Structured scheme P-Grid Scalable access structure for P2P apps Perfectly decentralized Tree structure Every nodes is responsible for an interval in the key space There may be replica
17 / 26 Structured scheme P-Grid – access structure Search can be started at any peer Prefix-based routing
18 / 26 Structured scheme P-Grid – construction Construction is locally executed Nodes meet each other in many ways Access structure, other operations, and so on Exact join operation is based on the shared prefix Same prefix : divide coverage Prefix relationship : extends shorter prefix Share prefix : reference exchange
19 / 26 Contents Introduction to P2P Structured scheme Unstructured scheme Napster Gnutella FastTrack Conclusion
20 / 26 Unstructured scheme Napster 1 st generation of P2P network Purpose to share ‘Music’ files Centralized search Single index server (no data in the server) File transfer is distributed (p2p) Copyright?
21 / 26 Unstructured scheme Napster S S S P P PP P P Client machines (“Peers”) napster.com Servers Store their own files Store a directory, i.e., filenames with peer pointers Figure from the slides of I. Gupta
22 / 26 Unstructured scheme Gnutella Flat topology, Decentralized Join No specification in the protocol Pre-existing address, cached or known server, IRC, …. Search Query flooding Flooding range : TTL File transfer HTTP GET request
23 / 26 Unstructured scheme Gnutella Message Randomly generated identifier Cached to drop duplicated messages Message type Group membership (Ping and Pong) Search (Query and QueryHit) File transfer for Filewalled servant (Push)
24 / 26 Unstructured scheme FastTrack Super-peer High bandwidth and computing power Collects meta-data Process queries HTTP file transfer Directly from other peer Hash may be used to receive files from multiple sources
25 / 26 Conclusion Various P2P network schemes Many improved aspects from traditional server-client model Structured – Pastry, Chord, P-grid, … Unstructured – Gnutella, Napster, … Legal issue?
26 / 26 References Eng Keong Lua, et el., A survey and comparison of peer- to-peer overlay network schemes, IEEE COMM. Survey and tutorial on 2004 K. Aberer, P-Grid : A self-organizing access structure for P2P information systems, Proc. of 6 th CoopIS A. Rowstron, P. Druschel, Pastry : Scalable, decentralized object location and routing for large-scale peer-to-peer systems, Proc. of 18 th ICDSP I. stoica, et el., Chord : A scalable peer-to-peer lookup service for internet applications, SIGCOMM ’01 The Gnutella Protocol Specification v0.4 And so on…