[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20140430142214.GB5108@eerihug-hybrid.rnd.ki.sw.ericsson.se>
Date: Wed, 30 Apr 2014 16:22:15 +0200
From: Erik Hugne <erik.hugne@...csson.com>
To: <netdev@...r.kernel.org>
CC: Anders Franzen <anders.franzen@...csson.com>
Subject: tcp: how to prevent connection abort due to failed keepalive?
Is there a way to disable connection termination due to failed TCP keepalives?
I was hoping that it would be possible to use TCP_KEEPCNT == 0 for this purpose,
but this gave back an -EINVAL.
There's nothing in the RFC that claims that closing the connection if the peer
fails to respond to _all_ probes, just that:
(RFC1122 section 4.2.3.6)
It is extremely important to remember that ACK segments that
contain no data are not reliably transmitted by TCP.
Consequently, if a keep-alive mechanism is implemented it
MUST NOT interpret failure to respond to any specific probe
as a dead connection.
So, if we have a connection with TCP_KEEPCNT set to 1, and the peer fails to
respond to this "specific probe". I think the RFC is pretty clear that the
connection shall not be considered dead. In this case, Linux send a TCP RST
and aborts the connection.
//E
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists