Appeared in 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’12) Serval: An End-Host Stack for Service-Centric Networking Erik Nordstr¨ om, David Shue, Prem Gopalan, Robert Kiefer Matvey Arye, Steven Y. Ko, Jennifer Rexford, Michael J. Freedman Princeton University Abstract dresses and conflates service, flow, and network identi- fiers. This forces online services to rely on clumsy and Internet services run on multiple servers in di ff erent lo- restrictive techniques that manipulate the network layer cations, serving clients that are often mobile and multi- and constrain how services are composed, managed, and homed. This does not match well with today’s network controlled. For example, today’s load balancers repurpose stack, designed for communication between fixed hosts IP addresses to refer to a group of (possibly changing) with topology-dependent addresses. As a result, on- service instances; unfortunately, this requires all client line service providers resort to clumsy and management- tra ffi c to traverse the load balancer. Techniques for hand- intensive work-arounds—forfeiting the scalability of hi- ling mobility and migration are either limited to a single erarchical addressing to support virtual server migration, layer-2 domain or introduce “triangle routing.” Hosts typ- directing all client tra ffi c through dedicated load balancers, ically cannot spread a connection over multiple interfaces restarting connections when hosts move, and so on. or paths, and changing interfaces requires the initiation of In this paper, we revisit the design of the network stack new connections. The list goes on and on. to meet the needs of online services. The centerpiece of To address these problems, we present the Serval archi- our Serval architecture is a new Service Access Layer tecture that runs on top of an unmodified network layer. (SAL) that sits above an unmodified network layer, and Serval provides a service-aware network stack, where ap- enables applications to communicate directly on service plications communicate directly on service names instead names. The SAL provides a clean service-level con- of addresses and ports. A service name corresponds to a trol / data plane split, enabling policy, control, and in-stack group of (possibly changing) processes o ff ering the same name-based routing that connects clients to services via service. This elevates services to first-class network en- diverse discovery techniques. By tying active sockets tities (distinct from hosts or interfaces), and decouples to the control plane, applications trigger updates to ser- services from network and flow identifiers. Hence, ser- vice routing state upon invoking socket calls, ensuring vice names identify who one communicates with, flow up-to-date service resolution. With Serval, end-points names identify what communication context to use, while can seamlessly change network addresses, migrate flows addresses tell where to direct the communication. across interfaces, or establish additional flows for e ffi - cient and uninterrupted service access. Experiments with At the core of Serval is a new Service Access Layer our high-performance in-kernel prototype, and several (SAL) that sits between the transport and network layers. example applications, demonstrate the value of a unified The SAL maps service names in packets to network ad- networking solution for online services. dresses, based on rules in its service table (analogous to how the network layer uses a forwarding table). Unlike 1. Introduction traditional “service layers,” which sit above the trans- port layer, the SAL’s position below transport provides The Internet is increasingly a platform for accessing ser- a programmable service-level data plane that can adopt vices that run anywhere, from servers in the datacenter diverse service discovery techniques. The SAL can be and computers at home, to the mobile phone in one’s programmed through a user-space control plane, acting pocket and a sensor in the field. An application can run on on service-level events triggered by active sockets ( e.g. , multiple servers at di ff erent locations, and can launch at a service instance automatically registers on bind ing or migrate to a new machine at any time. In addition, user a socket). This gives network programmers hooks for devices are often multi-homed ( e.g. , WiFi and 4G) and ensuring service-resolution systems are up-to-date. mobile. In short, modern services operate under unprece- dented multiplicity (in service replicas, host interfaces, As such, Serval gives service providers more control and network paths) and dynamism (due to replica failure over service access, and clients more flexibility in resolv- and recovery, service migration, and client mobility). ing services. For instance, by forwarding the first packet Yet, multiplicity and dynamism match poorly with to- of a connection based on service name, the SAL can de- day’s host-centric TCP / IP-stack that binds connections fer binding a service until the packet reaches the part of to fixed attachment points with topology-dependent ad- the network with fine-grain, up-to-date information. This
Recommend
More recommend