From: Rick Jones <rick.jones2@hp.com>
To: Chris Verges <cverges@sentient-energy.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
davem@davemloft.net, kuznet@ms2.inr.ac.ru, jmorris@namei.org,
yoshfuji@linux-ipv6.org, kaber@trash.net, netdev@vger.kernel.org
Subject: Re: Established sockets remain open after iface down or address lost
Date: Tue, 01 Oct 2013 08:44:17 -0700 [thread overview]
Message-ID: <524AEDD1.9010709@hp.com> (raw)
In-Reply-To: <20131001132707.GA7442@cverges-dev-lnx.sentient-energy.com>
On 10/01/2013 06:27 AM, Chris Verges wrote:
> The client establishes a connection to the server. It requests some
> data and gets a response. The socket remains open. The server then
> decides, through some asynchronous process, that the radio needs to be
> duty cycled. So the radio is turned off.
>
> The client attempts to make another request to the device, but
> determines that the connection is dead through the normal retry
> mechanisms. It's write() operation returns something like EPIPE. So on
> the client's side, the connection is dead.
>
> But on the server side, the socket is still open and waiting for some
> more data. The interface and IP address and even the remote client are
> long gone, but the socket still persists and uses system resources.
The protocol between client and server needs to have an
application-layer "keepalive" mechanism added, and then the server will
be able to detect a dangling connection without need of any further
kernel modifications.
If that is not possible, the server can/should set SO_KEEPALIVE and
perhaps tweak the TCP keepalive settings. Not as good (IMO) as an
application-layer keepalive because it only shows that the connection is
good as far as TCP, but I suppose it could do in a pinch.
rick jones
next prev parent reply other threads:[~2013-10-01 15:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-26 6:04 Established sockets remain open after iface down or address lost Chris Verges
2013-09-26 13:49 ` Eric Dumazet
2013-10-01 13:27 ` Chris Verges
2013-10-01 15:44 ` Rick Jones [this message]
2013-10-01 16:08 ` Chris Verges
2013-10-01 17:06 ` Rick Jones
2013-10-01 16:33 ` Alexey Kuznetsov
2013-10-01 17:07 ` Chris Verges
2013-10-01 19:00 ` Alexey Kuznetsov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=524AEDD1.9010709@hp.com \
--to=rick.jones2@hp.com \
--cc=cverges@sentient-energy.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@vger.kernel.org \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.