Transport Layer Support for Highly Available Network Services
Download
Report
Transcript Transport Layer Support for Highly Available Network Services
Migratory TCP:
Connection Migration for Service
Continuity in the Internet*
Florin Sultan, Kiran Srinivasan, Deepa Iyer, Liviu Iftode
Department of Computer Science
Rutgers University
*Work supported in part by the NSF under grant CCR-0133366
1
Today: TCP-based Internet Services
TCP : reliable byte-stream
Client
Server
2
The Problem with TCP
Adverse conditions
TCP response
internetwork congestion or failure
server overloaded, failed or under DoS attack
network delays => packet loss => retransmission
TCP limitations
addressing: implicitly binds the service to a server
error recovery: limited to one server
3
Highly Available Server? Not Enough!
To a TCP client: connect() will succeed most of
the time
To an end-user: may not help beyond connect()
connectivity failures, server overload, etc.
Service continuity = uninterrupted end-to-end
delivery of a service
as important to end-user as the high availability of
the server!
4
Our Solution: Cooperative Service Model
Logically equivalent servers cooperate in sustaining the
service by migration of live connections
Server 1
Client
congestion
Server 2
5
Migratory TCP (M-TCP)
A client connection transparently migrates to
different servers during its lifetime
server applications cooperate to support the handoff
client application does not change
servers can be geographically distributed
Designed and implemented as a TCP extension
Mechanism decoupled from migration policy
policies are not the focus of this talk
6
Per-connection State
Server 1
Server 2
Application
Application
Application
state
Protocol
state
M-TCP
M-TCP
7
Application - M-TCP Service Contract
Application
Define fine-grained per-connection application state
Export a per-connection application state snapshot to
the protocol
Import per-connection state after migration and resume
service
M-TCP
Transfer per-connection state
Synchronize application state with protocol state
8
Server Migration API
export_state(conn, state_buff)
origin server, periodically during service on connection
import_state(conn, state_buff)
destination server, after accepting connection
origin
Application
export()
M-TCP
destination
Application
import()
M-TCP
9
Connection Migration Mechanism
Server 1
Client
Server 2
10
Prototype Implementation
Modified TCP/IP stack in the FreeBSD kernel
Real applications
Icecast audio streaming server
PostgreSQL transactional DB server front-end
migrate audio stream
migrate sequence of transactions with ACID semantics
Apache web server
migrate transfer of static files, dynamic content
11
Experimental Setup
10.10.10.10
Control interface
10.10.10.11
S1
S2
Service interface
128.6.171.161
128.6.171.162
Hub
C
12
Streaming Server Experiment
Effective throughput close to average rate seen before server
performance degrades
13
Related Work
HTTP server fail-over by connection migration
[Snoeren ‘00]
Fault-tolerant TCP [Alvisi ‘00]
soft TCP and HTTP state maintained at back-up servers
application-specific: relies on HTTP features
persistent connections across server crashes
failures masked using TCP wrappers
Stream Control Transmission Protocol [RFC 2960]
multi-homing preserves connectivity if network fails
14
Conclusions
Transport layer protocol that supports service
continuity
dynamic, light-weight, transparent connection migration
Migration API for server applications
Working prototype for FreeBSD & real applications
15
Future Work
Multi-process state migration
application state spans multiple processes that
communicate via IPC channels
Non-intrusive state transfer by remote memory
access (VIA, InfiniBand)
A distribution of the M-TCP software for FreeBSD
will be available this fall
16
Thank you!
http://discolab.rutgers.edu/mtcp
Google: Migratory TCP or M-TCP
17