Subject: RE: Unacceptable ACK in SYN_RCVD state handling

From: Robin Uyeshiro <[email-masked]>
Date: Mon, 8 Apr 2002 16:06:20 -0700

I'm confused.  The stuff on page 68 (69?) seems to contradict the following
from page 36, under the Reset Generation heading, at least for SYN-RECEIVED:

    2.  If the connection is in any non-synchronized state (LISTEN,
    SYN-SENT, SYN-RECEIVED), and the incoming segment acknowledges
    something not yet sent (the segment carries an unacceptable ACK), or
    if an incoming segment has a security level or compartment which
    does not exactly match the level and compartment requested for the
    connection, a reset is sent.

Page 68/69 appears to count SYN-RECEIVED as a synchronized state.

-----Original Message-----
From: Bob Braden [mailto:[email-masked]]
Sent: Monday, April 08, 2002 12:14 PM
To: [email-masked]; [email-masked]
Cc: [email-masked]
Subject: Re: Unacceptable ACK in SYN_RCVD state handling

  *> 
  *> No, the scenario that applies is described on page 68 (sequence number
check),

Yes, sorry, I misinterpreted what you were asking (ACK field as opposed
to sequence field of ACK segment (But the man DID say "receive window"...
mumble).

  *> 
  *> The point u mentioned above is the conflict i am having as well, it
seems to me
  *> that retransmitting
  *> a SYN-ACK seems the right thing to do. But the BSD stack doesn't seem
to be
  *> doing that.

I thought you said earlier that the BSD DOES retransmit the SYN.  In
any case, I would agree that the text of RFC 793 seems to say
otherwise.  This particular test is one that has caused a great deal of
confusion over the years.  From the underlying logic of TCP,  I believe
that retransmitting the SYN is OK.  So it seems you can choose either
interpretation you want (unless there is some  subtle security
implication.)

Bob Braden

  *> 
  *> Murali
  *> 
  *> 
  *> 
  *> 
  *> >
  *> >
  *> > Bob Braden
  *>

---

From: Murali Bashyam <[email-masked]>
Date: Mon, 08 Apr 2002 16:25:40 -0700

Robin Uyeshiro wrote:

>
>
> I'm confused.  The stuff on page 68 (69?) seems to contradict the
> following from page 36, under the Reset Generation heading, at least
> for SYN-RECEIVED:
>

This is when the incoming ACK is unacceptable because the ack number is
greater than snd_una,
the scenario under consideration has to the seq number of the ACK being
greater than (rcv_nxt + rcv_win)
i.e the incoming ACK lies complete outside the receive window.

Murali

>   *> No, the scenario that applies is described on page 68 (sequence
> number check),
>
>   *> The point u mentioned above is the conflict i am having as well,
> it seems to me
>   *> that retransmitting
>   *> a SYN-ACK seems the right thing to do. But the BSD stack doesn't
> seem to be
>   *> doing that.
>