Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Mar 2017 18:47:49 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-net@FreeBSD.org
Subject:   [Bug 217637] One TCP connection accepted TWO times
Message-ID:  <bug-217637-2472-HxTn2yWMiU@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-217637-2472@https.bugs.freebsd.org/bugzilla/>
References:  <bug-217637-2472@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D217637

--- Comment #67 from slw@zxy.spb.ru ---
(In reply to Michael Tuexen from comment #66)

> No, the loss of data is caused by the application calling close() *before=
*=20
> incoming user data arrived.

Loss of sended application data caused by close() before incoming user data
arrived? Realy? TCP don't have such claim.

> So the TCP stack on the server has to drop that user data.

No problem. This is not application data.

> Sure. This is what the application triggers. However, when user data arri=
ves after
> the close call, this gets ungraceful, since this user data can't be deliv=
ered to
> the user anymore.

I am not afraid about user data, I am afraid about server data. Server data
lost and this is problem.
No problem about lose user data.

> I don't see text in RFC 793, where it is required that you continue to pr=
ocess
> a connection after you know that it failed.=20

What reason to failed connection?

> I think the RFC doesn't cover the case
> where the application says "I don't want to receive anymore".

Yes, RFC says all CLOSE is 'means "I have no more to send" but does not mea=
n "I
will not receive any more."'

I mean "Thus, it should be acceptable to make several SEND calls, followed =
by a
CLOSE, and expect all the data to be sent to the destination." have precend=
ece
over all.

"Reset Generation" allow generation RST from ESTABLISHED/FIN-WAIT-1/fIN-WAI=
T-2
state only "If an incoming segment has a security level, or compartment, or
precedence which does not exactly match the level"

Also, "3.9.  Event Processing", "SEGMENT ARRIVES" don't generate RST in
ESTABLISHED/FIN-WAIT-1/FIN-WAIT-2 STATE.

I mean conection not in failed state until all server data and FIN will be
ACKed. Or at timeout.
After this, connection may be moved to failed state. Not until.

PS: May proposal resolve next issuse:

1. server response not lost any more
2. client see valid replay from server, not just 'connection droped'
3. late segments from client don't mach syn-cookei and don't re-open connec=
tion
4. no new restrictions for first segment syn cookie processing
5. client side of connection clearly closed (currently generated RST w/o ACK
ignored by all clients except FreeBSD. this is another bug)
6. this is compatible w/ existing applications

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-217637-2472-HxTn2yWMiU>