A Blueprint for Introducing Disruptive Technology into the Internet. Larry Peterson, Tom Anderson, David Culler, and Timothy Roscoe. Proceedings of the First ACM Workshop on Hot Topics in Networking (HotNets), October 2002.
Operating System Support for Planetary-Scale Services. Andy Bavier, Mic Bowman, Brent Chun, David Culler, Scott Karlin, Steve Muir, Larry Peterson, Timothy Roscoe, Tammo Spalink, and Mike Wawrzoniak. Proceedings of the First Symposium on Network Systems Design and Implementation (NSDI), March 2004.
Experiences Building PlanetLab. Larry Peterson, Andy Bavier, Marc Fiuczynski, and Steve Muir. Proceedings of the Seventh Symposium on Operating System Design and Implementation (OSDI), November 2006.
The first gives the original vision for PlanetLab, the second articulates the design principles that shape its architecture, and the third reports experiences building and operating PlanetLab. Additional information is available as PlanetLab Design Notes (PDNs).
Most of the machines are hosted by research institutions, although some are located in co-location and routing centers (e.g., on Internet2's Abilene backbone). All of the machines are connected to the Internet. The goal is for PlanetLab to grow to 1,000 widely distributed nodes that peer with the majority of the Internet's regional and long-haul backbones.
All PlanetLab machines run a common software package that includes a Linux-based operating system; mechanisms for bootstrapping nodes and distributing software updates; a collection of management tools that monitor node health, audit system activity, and control system parameters; and a facility for managing user accounts and distributing keys. This software is distributed as a package, called MyPLC, which others can use to build and deploy their own "private PlanetLabs."
The key objective of the software is to support distributed virtualization—the ability to allocate a slice of PlanetLab's network-wide hardware resources to an application. This allows an application to run across all (or some) of the machines distributed over the globe, where at any given time, multiple applications may be running in different slices of PlanetLab.
One of PlanetLab's main purposes is to serve as a testbed for overlay networks. Research groups are able to request a PlanetLab slice in which they can experiment with a variety of planetary-scale services, including file sharing and network-embedded storage, content distribution networks, routing and multicast overlays, QoS overlays, scalable object location, scalable event propagation, anomaly detection mechanisms, and network measurement tools. There are currently over 600 active research projects running on PlanetLab.
The advantage to researchers in using PlanetLab is that they are able to experiment with new services under real-world conditions, and at large scale. The example services outlined above all benefit from being widely distributed over the Internet: from having multiple vantage points from which applications can observe and react to the network's behavior, from being in close proximity to many data sources and data sinks, and from being distributed across multiple administrative boundaries.
In addition to supporting short-term experiments, PlanetLab is also designed to support long-running services that support a client base. That is, rather than view PlanetLab strictly as a testbed, we take the long-term view in which the overlay is both a research testbed and a deployment platform, thereby supporting the seamless migration of an application from early prototype, through multiple design iterations, to a popular service that continues to evolve.
A large set of geographically distributed machines.
A realistic network substrate that experiences congestion, failures, and diverse link behaviors.
The potential for a realistic client workload.
Its value as a deployment platform is to provide researchers with a direct technology transfer path for popular new services, and users with access to those new services. We believe that supporting both roles is critical to the success of the system.
Services currently running continuously on PlanetLab include the CoDeeN and Coral CDNs; the ScriptRoute network measurement service; the Chord and OpenDHT a scalable object location services; and the PIER, Trumpet, and CoMon network monitoring services.
Not only are researchers evaluating and deploying end-user services on top of PlanetLab, but we also expect them to develop foundational sub-services that can be folded back in to PlanetLab, thereby enhancing the facility for others. Our long-term goal is to identify the common building block services upon which other services and applications can be constructed, or said another way, our goal is to understand how the Internet can be architected to better support overlays.
Overlay networks provide an opportunity to introduce disruptive technologies. Overlay nodes can be programmed to support the new capability or feature, and then depend on conventional nodes to provide the underlying connectivity. Over time, if the idea deployed in the overlay proves useful, there may be economic motivation to migrate the functionality into the base system, that is, add it to the feature set of commercial routers. On the other hand, the functionality may be complex enough that an overlay layer may be exactly where it belongs. Our overarching goal is to support the introduction of disruptive technologies into the Internet through the use of overlay networks. PlanetLab is an essential element of this vision.
The PlanetLab Consortium is a collection academic, industrial, and government institutions cooperating to support and enhance the PlanetLab overlay network. It is responsible for the long-term growth of PlanetLab's hardware infrastructure; designing and evolving its software architecture; providing day-to-day operational support; and defining policies that govern appropriate use. For more information about the PlanetLab Consortium, click here.