160 likes | 342 Views
Seamless Access to Services for Mobile Users. Jennifer Rexford Princeton University http://www.cs.princeton.edu/~jrex. Joint work with Matvey Ayre, Mike Freedman, Prem Gopalan, Steven Ko, Erik Nordstrom, David Shue. The Internet Does Not Meet the Needs of Online Services.
E N D
Seamless Access to Services for Mobile Users Jennifer RexfordPrinceton University http://www.cs.princeton.edu/~jrex Joint work with Matvey Ayre, Mike Freedman, Prem Gopalan, Steven Ko, Erik Nordstrom, David Shue
Yesterday: Host-Centric Network • ARPAnet was designed for resource sharing • Naming, addressing, and routing on end hosts ftp, telnet SDS Sigma SDS 940 PDP-11 h1 h3 IMP 0 IMP 1 h2 h4 UCLA Stanford
Today: Service-Centric Internet • Internet is now a platform for accessing services • Services not tied to a particular host or location
Challenge #1: Multiplicity • Distributed server replicas • Early binding of domain nameto an IP address • Load balancers spreading loadover the server replicas • Multiple interfaces and paths • A connection can only use one interface on each host • Traffic flows over a single path 3G WiFi Separate service, connection, and interface naming
Challenge #2: Dynamism • Client mobility • Seamless connectivity requires “triangle routing” • Connection cannot switch between interfaces • Virtual machine migration • Only within a layer-2 domain • … not across subnets or data centers • Server replica failure/recovery • Ad hoc updates to load balancers and DNS servers • IP address caching causes temporary outages Allow automatic, dynamic updates during a connection
Serval: Rewiring the End-Host Network Stack for Online Services
Solution #1: Service Naming • Applications should name services explicitly bind(fd, serviceID) listen(fd) connect(fd, serviceID) Network stack must resolve service to instance for client Network stack must advertise service for server
Solution #2: Flow Naming • Connection consists of multiple flows • Identified by <interface address, flowID> pairs • Delivers data as instructed by the transport layer • Each end demultiplexes on its own identifiers a1 a3 sC sS a2 a4 Host C Host S
Resolving and Connecting First packet from transport carries serviceID and its response provides remote IP address connect(fd, X) Browser TCP IP a1 a2 SYN serviceID X SYN-ACK IP address Local flowID Local & Remote flowID
Solution #3: Inband Signaling • Notify remote end-point about changes • Send RSYN to the remote <interface address, flowID> • Indicate the new local <interface address, flowID> • For client mobility, VM migration, and interface switching X fC1 fS1 a1 a3 sC sS fC2 fS2 a2 a4 Host C Host S
Putting it All Together Serval introduces a layer of indirection and defers mapping to topological identifiers until communication is established http://service.com/ http://service.com/ serviceID IP:port Application IP:port flowID Transport IP IP a1 a1 a2 a2 Network
Prototype Implementation • End-host network stack • Multi-platform (Linux, Android, BSD) • Runs in user space and in the kernel • Decentralized service discovery • Ported applications • Iperf, TFTP, PowerDNS, Wget, Elinks, Firefox, Mongoose, Memcached, ApacheBench • Small code changes (70-425 lines of code) • Experiments • Competitive throughput with today’s TCP • Fast failover, load shedding, and VM migration
Incremental Deployment • No changes to the network layer • Packet delivery based on IP addresses • IP addresses correspond to interfaces • Scalable routing based on hierarchical addresses • Resolution of service names • Domain Name System (DNS) and front-end proxies • Later, routing first packet based on serviceID • Unmodified hosts and applications • Proxies in front of clients or servers • Address translation in the network stack
Related Work • Separating identity from location • By naming hosts: LISP, HIP, i3 • By naming services/data: SFR, LNA, DONA, CCN • Migration/Mobility • Through indirection: Mobile-IP • Through in-band signaling: TCP Migrate • Main differentiators of Serval • Comprehensive solution for online services • Solution that focuses on the end-host stack
Conclusion • Service-centric networking • Multiplicity: multiple servers, interfaces, and paths • Dynamism: mobility, migration, and failover • Rewiring the end-host stack • Resolving and registering service names • Connections consisting of multiple flows • Inband signaling to migrate flows to new addresses • Without changing the network layer • Runs on top of IP addressing and packet delivery http://www.cs.princeton.edu/~jrex/papers/serval11.pdf