[cgl_discussion] Use case - TCP session takeover
ikebe.takashi at lab.ntt.co.jp
Thu Mar 17 18:52:03 PST 2005
The following is a use case for a TCP session takeover. This
addresses CAF.2.3 and CAF.2.4 TCP session takeover on CGL Specification
Please feel free to comment / suggestion.
OSDL CGL specifies a mechanism to synchronize TCP sockets, buffer
structures, and sequence numbers so that redundant nodes may take over
TCP sessions originated on other nodes. A deliberate TCP session
takeover assumes that TCP session(s) are transferred deliberately and
not as the result of unexpected node failure(s).
In addition to that, when a critical resource fails, such as a CPU,
memory, or kernel, a redundant node may take over TCP sessions
originated on the failed node. Note that when the TCP session(s) are
assumed by a redundant node, the sessions will resume from the last
checkpoint. TCP traffic should continue even if there is a conflict
between the last TCP state of the failed node and the checkpointed TCP
state on the redundant node.
Mainline kernel acceptance or distro acceptance.
Application administrators and developers use the requirement, and as a
result, end users also use the function as a part of service.
Basically, the requirement provide new system call and user-land library
So the requirement will be setup-ed on kernel installation and also be
used on application development phase.
These Implementation Notes apply to all scenarios. These are just
guidelines, not cast in concrete.
The requirement needs to provide APIs which enables below function;
1.Stop the indicated session.(usually indicated by file descriptor)
2.Get information of the indicated session.
The information includes session status(such as address/port/sequence
number), and receive/send data which is in socket buffer. the data in
the socket buffer are not re-transmittable, because receive data in
socket buffer are already finished TCP transmission (ACK sequence).
3.Set the information to the indicated session.
4.Restart the indicated session.
The switch over sequence of HA(ACT-SBY) cluster assumption is below;
1.The service process on the active node use the requirement and stop
and get the session information which wants to keep.
2.The service process synchronize the session information with the
service process which on the standby node.
3.Change the cluster state(ACT to STOP).
4.The service process on the standby node set the session information.
5.Change the cluster state(SBY to ACT).
TCP connection passing:http://tcpcp.sourceforge.net/
"TCP Connection Passing", Ottawa Linux Symposium, July 2004
NTT Network Service Systems Laboratories
9-11, Midori-Cho 3-Chome Musashino-Shi,
Tokyo 180-8585 Japan
Tel : +81 422 59 4246, Fax : +81 422 60 4012
e-mail : ikebe.takashi at lab.ntt.co.jp
More information about the cgl_discussion