From: David Miller <davem@davemloft.net>
To: dbanerje@akamai.com
Cc: netdev@vger.kernel.org, kuznet@ms2.inr.ac.ru, yoshfuji@linux-ipv6.org
Subject: Re: [PATCH RFC net-next 1/1] tcp: close socket without reset on incoming data
Date: Sat, 19 May 2018 17:00:50 -0400 (EDT) [thread overview]
Message-ID: <20180519.170050.615996932572513152.davem@davemloft.net> (raw)
In-Reply-To: <20180518190141.899-2-dbanerje@akamai.com>
From: Debabrata Banerjee <dbanerje@akamai.com>
Date: Fri, 18 May 2018 15:01:41 -0400
> When TCP_CLOSE_NORST is set before a close(), offload sinking of
> unwanted data to the kernel with low resource usage, with a timeout of
> TCP_LINGER2. The socket will transition to FIN_WAIT1 and then FIN_WAIT2
> where it will ack data until either the timeout is hit, or a RST or FIN
> is received.
>
> Signed-off-by: Debabrata Banerjee <dbanerje@akamai.com>
This is a very serious protocol violation.
You're telling the remote end that you received the data even though
the socket was closed and nothing actually "sunk" the bytes.
This doesn't even go into the issues of sending cumulative ACKs in
response to data which is arbitrarily out-of-order.
The whole problem is that the post data is sent before the client
looks to see if the server is willing to accept the post data or not.
A: I'd like to send you 200MB of crap
[ 200MB of craaaa...
B: Sorry I won't be accepting that, please don't send it.
CLOSE, send reset since some of crap is queued up and
was never read
A: aaaaapp... received RESET
A: Why didn't B accept my 200MB of crap?
Sorry, you'll need to deal with this issue in another way.
Thanks.
next prev parent reply other threads:[~2018-05-19 21:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-18 19:01 [PATCH RFC net-next 0/1] tcp: close socket without reset on incoming data Debabrata Banerjee
2018-05-18 19:01 ` [PATCH RFC net-next 1/1] " Debabrata Banerjee
2018-05-19 21:00 ` David Miller [this message]
2018-05-19 22:57 ` Banerjee, Debabrata
2018-05-20 2:52 ` David Miller
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=20180519.170050.615996932572513152.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=dbanerje@akamai.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).