Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Mar 2017 18:03:30 +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-dizI4qEFdz@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 #34 from slw@zxy.spb.ru ---
(In reply to Michael Tuexen from comment #33)

Right, FIN_WAIT_1.

> Then the state is FIN-WAIT-1. Then it receives the second part of the req=
uest. Since the socket is closed, it responds with a RST segment and moves =
the connection to CLOSED.

I am don't understund this. CLOSING must be only after got FIN.
FIN don't received, data in buffer don't ack, what reasson to CLOSING
transition and lost data?

I mean resend response and FIN again.

"If a socket structure is associated with the file structure, soclose is
called, f_data is cleared, and any posted error is returned.=20

soclose Function

This function aborts any connections that are pending on the socket (i.e., =
that
have not yet been
accepted by a process), waits for data to be transmitted to the foreign sys=
tem,
and releases the data
structures that are no longer needed.
soclose is shown in Figure 15.39."

"In general, TCP must still process incoming data,
so it calls tcpacked to handle incoming acknowledgements, tcpdata to process
data in the segment, and tcpswindow to adjust its sending window size. Once=
 the
input has been processed, tcpfin1 checks to see if it should make a state
transition. If the TCBF_RDONE bit is set, a FIN has arrived and so has all =
data
in the sequence up to the FIN. If the TCPF_FIN bit is cleared, an ACK has
arrived for the outgoing FIN. Tcpfin1 uses these two bits to determine whet=
her
to make a transition to the CLOSING, FINWAIT2, or TIMEWAIT states"

--=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-dizI4qEFdz>