170 likes | 354 Views
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 . Today: TCP-based Internet Services.
E N D
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
Today: TCP-based Internet Services TCP : reliable byte-stream Internet Client Server
The Problem with TCP • Adverse conditions • internetwork congestion or failure • server overloaded, failed or under DoS attack • TCP response • network delays => packet loss => retransmission • TCP limitations • addressing: implicitly binds the service to a server • error recovery: limited to one server
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. • Servicecontinuity = uninterrupted end-to-end delivery of a service • as important to end-user as the high availability of the server!
Our Solution: Cooperative Service Model Logically equivalent servers cooperate in sustaining the service by migration of live connections Server 1 Client congestion Server 2
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
Per-connection State Server 1 Server 2 Application Application Application state Protocol state M-TCP M-TCP
Application - M-TCPService 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
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 destination Application Application export() import() M-TCP M-TCP
Connection Migration Mechanism Server 1 C Client < State Reply> (3) < State Request> (2) C’ <SYN + MIGRATE C > (1) <SYN/ACK> (4) Server 2
Prototype Implementation • Modified TCP/IP stack in the FreeBSD kernel • Real applications • Icecast audio streaming server • migrate audio stream • PostgreSQL transactional DB server front-end • migrate sequence of transactions with ACID semantics • Apache web server • migrate transfer of static files, dynamic content
Experimental Setup 10.10.10.10 10.10.10.11 Control interface S1 S2 Service interface 128.6.171.162 128.6.171.161 Hub C
Streaming Server Experiment Effective throughput close to average rate seen before server performance degrades
Related Work • HTTP server fail-over by connection migration [Snoeren ‘00] • soft TCP and HTTP state maintained at back-up servers • application-specific: relies on HTTP features • Fault-tolerant TCP [Alvisi ‘00] • persistent connections across server crashes • failures masked using TCP wrappers • Stream Control Transmission Protocol [RFC 2960] • multi-homing preserves connectivity if network fails
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
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
Thank you! http://discolab.rutgers.edu/mtcp Google: Migratory TCP or M-TCP