Re: [tcpm] 793bis ready to go?

Michael Tuexen <michael.tuexen@lurchi.franken.de> Sat, 20 February 2021 21:53 UTC

Return-Path: <michael.tuexen@lurchi.franken.de>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5532F3A0E2A for <tcpm@ietfa.amsl.com>; Sat, 20 Feb 2021 13:53:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.498
X-Spam-Level:
X-Spam-Status: No, score=-1.498 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, KHOP_HELO_FCRDNS=0.4, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id asfiUP67mGbl for <tcpm@ietfa.amsl.com>; Sat, 20 Feb 2021 13:53:43 -0800 (PST)
Received: from drew.franken.de (mail-n.franken.de [193.175.24.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0EC23A0E2E for <tcpm@ietf.org>; Sat, 20 Feb 2021 13:53:42 -0800 (PST)
Received: from [IPv6:2a02:8109:1140:c3d:bd48:ec3f:ec08:510] (unknown [IPv6:2a02:8109:1140:c3d:bd48:ec3f:ec08:510]) (Authenticated sender: lurchi) by mail-n.franken.de (Postfix) with ESMTPSA id 703D472246348; Sat, 20 Feb 2021 22:53:38 +0100 (CET)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\))
From: Michael Tuexen <michael.tuexen@lurchi.franken.de>
In-Reply-To: <4F753030-7F77-4D6C-98B5-3F1FCBDBA076@strayalpha.com>
Date: Sat, 20 Feb 2021 22:53:38 +0100
Cc: tcpm IETF list <tcpm@ietf.org>, Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <54BF8FD5-671F-4AFE-B6B5-B92D872400D0@lurchi.franken.de>
References: <cd600644350847ef8415d21588d1e912@hs-esslingen.de> <alpine.DEB.2.21.2102160206350.3820@hp8x-60.cs.helsinki.fi> <07c02ad6-979f-4049-3075-cae0064b7def@gmx.at> <51A077AB-F5A5-4E4E-9B7F-C606DF50C407@fh-muenster.de> <4F753030-7F77-4D6C-98B5-3F1FCBDBA076@strayalpha.com>
To: Joseph Touch <touch@strayalpha.com>
X-Mailer: Apple Mail (2.3654.60.0.2.21)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/7iqq5-F2FE8Tcnz7BnO78n-YD-g>
Subject: Re: [tcpm] 793bis ready to go?
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 20 Feb 2021 21:53:45 -0000


> On 20. Feb 2021, at 22:37, Joseph Touch <touch@strayalpha.com> wrote:
> 
> Even if you prefer the FreeBSD variant, the text below doesn’t appear to fix this; it will end up sending the SYN-ACK of the received data *and a second ACK* at the end of the sixth step.
I think the idea of Richard is that if the text is

         If SND.UNA > ISS (our SYN has been ACKed), change the
         connection state to ESTABLISHED, form an ACK segment
         <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
         and should send it.

Then NOT following the should, but only send the ACK at the end of step 6.
Wouldn't that work?

Best regards
Michael
> 
> Joe
> 
>> On Feb 20, 2021, at 12:56 PM, tuexen@fh-muenster.de wrote:
>> 
>>> On 18. Feb 2021, at 14:59, Scheffenegger, Richard <rs.ietf@gmx.at> wrote:
>>> 
>>> One more nit, around dealing with data-in-SYN,ACK
>>> 
>>> 793bis (page 71) has this text, which unfortunately doesn have any
>>> RFC2119 language.
>>> 
>>> But in short, it seems to require the transmission of a pure ACK just
>>> for the SYN bit, and a 2nd ACK right afterwards (step 6) to acknowledge
>>> the data.
>>> 
>>> The FBSD implementation was found to skip over the ACK-only-the-SYN
>>> intermediate step (which must be acceptable, as that ACK may get lost in
>>> the network), sending out only the cummulative ACK for SYN and data,
>>> after having transitioned into ESTABLISHED.
>> Hi,
>> 
>> I really prefer the FreeBSD behaviour. A TCP stack should not need to send
>> two segments at the same time when handling the event of a single segment reception.
>> 
>> Best regards
>> Michael, as an individual
>>> 
>>> But strictly speaking, this behavior is a deviation from 793 / 793bis.
>>> 
>>> Perhaps a "and should send it" would do, to allow this behavior,
>>> conserving one pure ACK...
>>> 
>>> Best regards,
>>> Richard
>>> 
>>> 
>>> 
>>> If the state is SYN-SENT then
>>> 
>>>       first check the ACK bit
>>> 
>>>          If the ACK bit is set
>>> :
>>> :
>>> fourth check the SYN bit
>>> 
>>>          This step should be reached only if the ACK is ok, or there
>>>          is no ACK, and it the segment did not contain a RST.
>>> 
>>>          If the SYN bit is on and the security/compartment is
>>>>>>       acceptable then, RCV.NXT is set to SEG.SEQ+1, IRS is set to
>>>          SEG.SEQ.  SND.UNA should be advanced to equal SEG.ACK (if
>>>          there is an ACK), and any segments on the retransmission
>>>          queue that are thereby acknowledged should be removed.
>>> 
>>>          If SND.UNA > ISS (our SYN has been ACKed), change the
>>>          connection state to ESTABLISHED, form an ACK segment
>>> 
>>>>>>          <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
>>> 
>>>          and send it.  Data or controls that were queued for
>>>          transmission may be included.  If there are other controls
>>> or text in the segment then continue processing at the sixth
>>>          step below where the URG bit is checked, otherwise return.
>>> 
>>> _______________________________________________
>>> tcpm mailing list
>>> tcpm@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tcpm
>> 
>> _______________________________________________
>> tcpm mailing list
>> tcpm@ietf.org
>> https://www.ietf.org/mailman/listinfo/tcpm
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm