[[PageOutline]] == Project Number == 1759 == Project Title == A SCAFFOLD for GENI-based Distributed Services[[BR]] a.k.a. SCAFFOLD === Technical Contacts === '''PI:''' Michael Freedman, Princeton University [mailto:mfreed@cs.princeton.edu][[BR]] Jennifer Rexford, Princeton University [mailto:jrex@cs.princeton.edu][[BR]] Erik Nordstrom [mailto:enordstr@cs.princeton.edu] === Participating Organizations === [http://www.cs.princeton.edu Department of Computer Science][[BR]] Princeton University[[BR]] Princeton, NJ === GPO Liaison System Engineer === [mailto:vthomas@geni.net Vic Thomas] == Scope == 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).[[BR]] 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.[[BR]] 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 === === Milestones === [[MilestoneDate(SCAFFOLD: S2.a demo switch)]][[BR]] [[MilestoneDate(SCAFFOLD: S2.b datagram code)]] Contact PI for software. [[BR]] [[MilestoneDate(SCAFFOLD: S2.c demo server)]] ([attachment:scaffold-Mar01-demo.pdf Click here for demo description]) [[BR]] [[MilestoneDate(SCAFFOLD: S2.d stream code)]] Contact PI for software. Documentation at https://trac.sns.cs.princeton.edu/projects/scaffold/wiki/HostStackDoc [[BR]] [[MilestoneDate(SCAFFOLD: S2.e multi server)]] [[BR]] [[MilestoneDate(SCAFFOLD: S2.f basic stateless server)]] Contact PI for software. Click [attachment:scaffold-trods-Jul-1-2010.pdf here] for details of the server. [[BR]] [[MilestoneDate(SCAFFOLD: S2.g demo ingress proxy)]][[BR]] [[MilestoneDate(SCAFFOLD: S2.h deliver ingress proxy)]][[BR]] [[MilestoneDate(SCAFFOLD: S2.i demo flow migration)]][[BR]] [[MilestoneDate(SCAFFOLD: S2.j http stateless server)]][[BR]] == Project Technical Documents == [attachment:scaffold-Mar01-demo.pdf Description of a SCAFFOLD demonstration.][[BR]] [attachment:scaffold-poster-gec7.pdf SCAFFOLD poster at GEC7.][[BR]] [attachment:scaffold-presentation-June-2010.pdf SCAFFOLD presentation (June '10).][[BR]] [http://sns.cs.princeton.edu/projects/scaffold/ Project web page at Princeton.] === Quarterly Status Reports === [wiki:SCAFFOLD-qsr-1Q2010 1Q 2010] === Spiral 2 Connectivity === === Related Projects ===