Addressing the P2P Bootstrap Problem for Small Networks

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 services for content delivery networks, file sharing, and data storage. In small-scale systems, they can be useful to address privacy concerns and 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]  Jonathan D. Rosenberg,et al.  Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols , 2010, RFC.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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