Version 25 (modified by, 8 years ago) (diff)


Project Number


Project Title

A SCAFFOLD for GENI-based Distributed Services

Technical Contacts

PI: Michael Freedman, Princeton University
Jennifer Rexford, Princeton University
Erik Nordstrom

Participating Organizations

Department of Computer Science
Princeton University
Princeton, NJ

GPO Liaison System Engineer

Vic Thomas


Online services, replicated on multiple servers in different datacenters, have (at best) a loose, and often transient, association with specific end-hosts or locations. Yet, today, these services rely on host-centric networking primitives designed decades ago, retrofitted with various "hacks" (e.g., ARP spoofing and DNS with small TTLs).

This project proposes a network architecture that meets the needs of these online services. SCAFFOLD (Service-Centric Architecture For Flexible Object Localization and Distribution) moves from human-readable host names to machine-readable service identifiers, from individual packets to flows, and from unicast communication to anycast. SCAFFOLD hides network addresses from applications to enable dynamic remapping as end-points change, (e.g., due to virtual-machine migration, failover, or device mobility), and directs traffic based on successively-refined identifiers to scale routing and limit churn. While SCAFFOLD can be viewed as a clean-slate Internet architecture, we primarily investigate how a single organization can apply our solution today to host online services at multiple datacenters. This project entails the design, implementation, and evaluation of a socket API and network stack for end-hosts, and a network infrastructure built using OpenFlow and NOX.

SCAFFOLD will be a distributed service on GENI that serves as a platform for deploying other user-facing services, thereby lowering the barrier for others creating new distributed services. SCAFFOLD will leverage GENI-related prototyping efforts such as OpenFlow switches, the NOX controller, the VINI backbone, the BGP multiplexer and the PlanetLab control framework. The project will also use the resulting SCAFFOLD prototype itself to build several services for GENI, in order to demonstrate its utility.

Current Capabilities


MilestoneDate(SCAFFOLD: S2.a demo switch)?
MilestoneDate(SCAFFOLD: S2.b datagram code)? Contact PI for software.
MilestoneDate(SCAFFOLD: S2.c demo server)? (Click here for demo description)
MilestoneDate(SCAFFOLD: S2.d stream code)? Contact PI for software. Documentation at
MilestoneDate(SCAFFOLD: S2.e multi server)?
MilestoneDate(SCAFFOLD: S2.f basic stateless server)? Contact PI for software. Click here for details of the server.
MilestoneDate(SCAFFOLD: S2.g demo ingress proxy)?
MilestoneDate(SCAFFOLD: S2.h deliver ingress proxy)?
MilestoneDate(SCAFFOLD: S2.i demo flow migration)?
MilestoneDate(SCAFFOLD: S2.j http stateless server)?

MilestoneDate(SCAFFOLD: S3.a Demonstration of SCAFFOLD at GEC9)?
MilestoneDate(SCAFFOLD: S3.b Plan to run SCAFFOLD on GENI resources)?
MilestoneDate(SCAFFOLD: S3.c Demonstration of SCAFFOLD at GEC10)?
MilestoneDate(SCAFFOLD: S3.d Initial version of SCAFFOLD on GENI)?
MilestoneDate(SCAFFOLD: S3.e Demonstration of SCAFFOLD at GEC11)?
MilestoneDate(SCAFFOLD: S3.f Deliver software and documentation)?

Project Technical Documents

Description of a SCAFFOLD demonstration.
SCAFFOLD poster at GEC7.
SCAFFOLD presentation (June '10).

Project web page at Princeton.

Quarterly Status Reports

1Q 2010

Spiral 2 Connectivity

Related Projects

Attachments (5)