Abstract
Internet services run on multiple servers in different locations, serving clients that are often mobile and multihomed. This does not match well with today's network stack, designed for communication between fixed hosts with topology-dependent addresses. As a result, online service providers resort to clumsy and management-intensive work-arounds-forfeiting the scalability of hierarchical addressing to support virtual server migration, directing all client traffic through dedicated load balancers, restarting connections when hosts move, and so on. In this paper, we revisit the design of the network stack to meet the needs of online services. The centerpiece of our Serval architecture is a new Service Access Layer (SAL) that sits above an unmodified network layer, and enables applications to communicate directly on service names. The SAL provides a clean service-level control/data plane split, enabling policy, control, and instack name-based routing that connects clients to services via diverse discovery techniques. By tying active sockets to the control plane, applications trigger updates to service routing state upon invoking socket calls, ensuring up-to-date service resolution. With Serval, end-points can seamlessly change network addresses, migrate flows across interfaces, or establish additional flows for efficient and uninterrupted service access. Experiments with our high-performance in-kernel prototype, and several example applications, demonstrate the value of a unified networking solution for online services.
Original language | English (US) |
---|---|
Pages | 85-98 |
Number of pages | 14 |
State | Published - Jan 1 2012 |
Event | 9th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2012 - San Jose, United States Duration: Apr 25 2012 → Apr 27 2012 |
Conference
Conference | 9th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2012 |
---|---|
Country/Territory | United States |
City | San Jose |
Period | 4/25/12 → 4/27/12 |
All Science Journal Classification (ASJC) codes
- Computer Networks and Communications
- Control and Systems Engineering