Title: Seamless Access to Services for Mobile Users
1Seamless 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
2The Internet Does Not Meet the Needs of Online
Services
3Yesterday Host-Centric Network
- ARPAnet was designed for resource sharing
- Naming, addressing, and routing on end hosts
ftp, telnet
UCLA
Stanford
4Today Service-Centric Internet
- Internet is now a platform for accessing services
- Services not tied to a particular host or
location
5Challenge 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
6Challenge 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
7Serval Rewiring the End-Host Network Stack for
Online Services
8Solution 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
9Solution 2 Flow Naming
- Connection consists of multiple flows
- Identified by ltinterface address, flowIDgt 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
10Resolving and Connecting
First packet from transport carries serviceID and
its response provides remote IP address
connect(fd, X)
SYN serviceID X
SYN-ACK IP address
Local flowID
Local Remote flowID
11Solution 3 Inband Signaling
- Notify remote end-point about changes
- Send RSYN to the remote ltinterface address,
flowIDgt - Indicate the new local ltinterface address,
flowIDgt - For client mobility, VM migration, and interface
switching
X
fS1
fC1
a1
a3
sC
sS
fC2
fS2
a2
a4
Host C
Host S
12Putting it All Together
Serval introduces a layer of indirection and
defers mapping to topological identifiers until
communication is established
Application
Transport
Network
13Prototype 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 todays TCP
- Fast failover, load shedding, and VM migration
14Incremental 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
15Related 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
16Conclusion
- 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