Subject: fault tolerant TCP implementation

From: [email-masked]
Date: Wed, 18 Jul 2001 20:05:02 +0500

Dear MPLS Gurus,
In the draft on ldp-FT (draft-ietf-mpls-ldp-ft-02.txt ) the authors write on
Page 4, in section 2.2 that it  "Notoriously Hard 
to provide a fault tolerant implementation of TCP"...My question is WHY ?
.Why is it so difficult to recreate a TCP connection ( across a switchover
from Active Board to Standby Board ) if the connection is in ESTABLISHED
state ?
Later they go on to say that  "This is an issue familiar to implementers of
other TCP applications such as BGP".
If anyone could point me to any such related work,I would highly appreciate
their help.
I guess that the close interaction of the TCP layer, socket layer and
application complicates the problem? But HOW ?
If anybody is aware of any attempts to provide HotStandby for TCP,please do
let me know......
Thanks in Advance,
Aditya
Extract from "draft-ietf-mpls-ldp-ft-02.txt" Section 2.2 Page 4
LDP and CR-LDP use TCP to provide reliable connections between LSRs over
which to exchange protocol messages to distribute labels and to set up
LSPs...... TCP enables LDP and CR-LDP to assume reliable transfer of
protocol messages. This means that some of the messages do not need to be
acknowledged (for example, Label Release). LDP and CR-LDP are defined such
that if the TCP connection fails, the LSR should immediately tear down the
LSPs associated with the session between the LDP peers, and release any
labels and resources assigned to those LSPs. It is notoriously hard to
provide a Fault Tolerant implementation of TCP. To do so might involve
making copies of all data sent and received. This is an issue familiar to
implementers of other TCP applications such as BGP.

---

From: Danny McPherson <[email-masked]>
Date: Fri, 20 Jul 2001 12:21:52 -0600

> 	How do they achieve this w/o going through the TCP connection process again
> (SYN-SYN-ACK)?  Are they maintaining dual connections (somewhat similar to
> Cisco Call manager or MGCP)?

Nope.

>   I would think that there has to be some type
> of state in memory on the 2nd device to achieve this with a stateful
> protocol.

Yep (i.e., device == standby control card).

>  Even on a device like Cisco Local Director, the local director
> has to set the sticky bit for stateful applications or reserve memory within
> itself.  What product are you talking of?  I would like to research this.

I'll respond to this offline...

-danny