Addressing the P2P Bootstrap Problem for Small Overlay Networks

Peer-to-Peer (P2P) overlays provide a framework for building distributed applications consisting of few to many resources with features including self-configuration, scalability, and resilience to node failures. Such systems have been successfully adopted in large-scale Internet services for content delivery networks, file sharing, and data storage. In small-scale systems, they can be useful to address privacy concerns as well as support for network applications that lack dedicated servers. The bootstrap problem, finding an existing peer in the overlay, remains a challenge to enabling these services for small-scale P2P systems. In large networks, the solution to the bootstrap problem has been the use of dedicated services, though creating and maintaining these systems requires expertise and resources, which constrain their usefulness and make them unappealing for small-scale systems. This paper surveys and summarizes requirements that allow peers potentially constrained by network connectivity to bootstrap small-scale overlays through the use of existing public overlays. In order to support bootstrapping, a public overlay must support the following requirements: a method for reflection in order to obtain publicly reachable addresses, so peers behind network address translators and firewalls can receive incoming connection requests; communication relaying to share public addresses and communicate when direct communication is not feasible; and rendezvous for discovering remote peers, when the overlay lacks stable membership. After presenting a survey of various public overlays, we identify two overlays that match the requirements: XMPP overlays, such as Google Talk and Live Journal Talk, and Brunet, a structured overlay based upon Symphony. We present qualitative experiences with prototypes that demonstrate the ability to bootstrap small-scale private structured overlays from public Brunet or XMPP infrastructures.

[1]  Bryan Ford,et al.  State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs) , 2008, RFC.

[2]  Mark Handley,et al.  A scalable content-addressable network , 2001, SIGCOMM '01.

[3]  Gregor Schiele,et al.  Bootstrapping in Peer-to-Peer Systems , 2008, 2008 14th IEEE International Conference on Parallel and Distributed Systems.

[4]  Emin Gün Sirer,et al.  Beehive: O(1) Lookup Performance for Power-Law Query Distributions in Peer-to-Peer Overlays , 2004, NSDI.

[5]  Ari Keränen,et al.  TCP Candidates with Interactive Connectivity Establishment (ICE) , 2012, RFC.

[6]  P. Oscar Boykin,et al.  A Symphony Conducted by Brunet , 2007, ArXiv.

[7]  Christian Huitema,et al.  STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) , 2003, RFC.

[8]  David Mazières,et al.  Kademlia: A Peer-to-Peer Information System Based on the XOR Metric , 2002, IPTPS.

[9]  Franck Cappello,et al.  Private Virtual Cluster: Infrastructure and Protocol for Instant Grids , 2006, Euro-Par.

[10]  David Wolinsky,et al.  Improving peer connectivity in wide-area overlays of virtual workstations , 2008, HPDC '08.

[11]  Antony I. T. Rowstron,et al.  Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems , 2001, Middleware.

[12]  Andreas Haeberlen,et al.  Experiences in building and operating ePOST, a reliable peer-to-peer application , 2006, EuroSys '06.

[13]  Dan Wing,et al.  Session Traversal Utilities for NAT (STUN) , 2020, RFC.

[14]  Christian Grothoff,et al.  Bootstrapping of Peer-to-Peer Networks , 2008, 2008 International Symposium on Applications and the Internet.

[15]  Brighten Godfrey,et al.  OpenDHT: a public DHT service and its uses , 2005, SIGCOMM '05.

[16]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[17]  Miguel Castro,et al.  One ring to rule them all: service discovery and binding in structured peer-to-peer overlay networks , 2002, EW 10.

[18]  Pierre St. Juste,et al.  SocialVPN: Enabling wide-area collaboration with integrated social and overlay networks , 2010, Comput. Networks.

[19]  Gurmeet Singh Manku,et al.  Symphony: Distributed Hashing in a Small World , 2003, USENIX Symposium on Internet Technologies and Systems.

[20]  Peter Saint-Andre Extensible Messaging and Presence Protocol (XMPP): Core , 2011, RFC.

[21]  Jonathan D. Rosenberg,et al.  Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations , 2010, RFC.

[22]  David E. Culler,et al.  PlanetLab: an overlay testbed for broad-coverage services , 2003, CCRV.

[23]  Hans-Joachim Hof,et al.  A Generic, Self-organizing, and Distributed Bootstrap Service for Peer-to-Peer Networks , 2007, IWSOS.

[24]  Prashant Malik,et al.  Cassandra: structured storage system on a P2P network , 2009, PODC '09.

[25]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[26]  Adrian Perrig,et al.  NATBLASTER: Establishing TCP Connections Between Hosts Behind NATs ∗ , 2005 .

[27]  Jonathan D. Rosenberg,et al.  Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols , 2010, RFC.

[28]  Thomas Fuhrmann,et al.  Bootstrapping locality-aware P2P networks , 2004, Proceedings. 2004 12th IEEE International Conference on Networks (ICON 2004) (IEEE Cat. No.04EX955).