Unacceptable ACK in SYN_RCVD state handling

Murali Bashyam <mbashyam@cisco.com> Fri, 05 April 2002 19:14 UTC

Message-ID: <3CADF78E.D9E24D26@cisco.com>
Date: Fri, 05 Apr 2002 11:14:22 -0800
From: Murali Bashyam <mbashyam@cisco.com>
Organization: Cisco Systems Inc
X-Mailer: Mozilla 4.51C-CISCOENG [en] (X11; U; SunOS 5.6 sun4u)
X-Accept-Language: en
MIME-Version: 1.0
To: tcp-impl@grc.nasa.gov
Subject: Unacceptable ACK in SYN_RCVD state handling
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-tcp-impl@grc.nasa.gov
Precedence: bulk
Status: RO
Content-Length: 649
Lines: 19

Hi

In SYN_RECEIVED state after sending a SYN-ACK to the peer, when TCP
receives a unacceptable ACK
i.e the ACK lies outside the receive window, it is supposed to drop the
incoming ACK and respond with a pure ACK as it should for any packet
that is completely outside the receive window. This is reqd as per RFC
793.

In BSD TCP code (FREEBSD/NETBSD) i notice that in SYN-RECEIVED state any

outgoing segment generated would carry the SYN bit as well as the ACK
bit set. So BSD code, when it responds with a ACK in the above scenario
also has the SYN bit set. Is this acceptable behaviour? Linux responds
with a pure ACK in this scenario.

Murali