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