Re: [tcpm] Francesca Palombini's No Objection on draft-ietf-tcpm-rfc793bis-25: (with COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Thu, 30 September 2021 21:42 UTC

Return-Path: <kaduk@mit.edu>
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 64EB03A14EB; Thu, 30 Sep 2021 14:42:08 -0700 (PDT)
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.399, SPF_HELO_NONE=0.001, 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 LCZMyvsM35ff; Thu, 30 Sep 2021 14:42:03 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 817C13A14E0; Thu, 30 Sep 2021 14:42:03 -0700 (PDT)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 18ULfoC5013088 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 30 Sep 2021 17:41:55 -0400
Date: Thu, 30 Sep 2021 14:41:50 -0700
From: Benjamin Kaduk <kaduk@mit.edu>
To: Francesca Palombini <francesca.palombini@ericsson.com>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-tcpm-rfc793bis@ietf.org" <draft-ietf-tcpm-rfc793bis@ietf.org>, "tcpm@ietf.org" <tcpm@ietf.org>, "michael.scharf@hs-esslingen.de" <michael.scharf@hs-esslingen.de>, "tcpm-chairs@ietf.org" <tcpm-chairs@ietf.org>
Message-ID: <20210930214150.GT98042@kduck.mit.edu>
References: <163234555786.20689.7200051930871118197@ietfa.amsl.com> <20210930201203.GQ98042@kduck.mit.edu> <HE1PR07MB4217FABBE0F9F792351EDD0B98AA9@HE1PR07MB4217.eurprd07.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <HE1PR07MB4217FABBE0F9F792351EDD0B98AA9@HE1PR07MB4217.eurprd07.prod.outlook.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/k_Chx6qsnSaIqzkZEc4eIGaYWs8>
Subject: Re: [tcpm] Francesca Palombini's No Objection on draft-ietf-tcpm-rfc793bis-25: (with COMMENT)
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: Thu, 30 Sep 2021 21:42:09 -0000

Hi Francesca,

My confidence level is not as high on this point, but I believe that the
difference here is that the segment being sent still includes the SYN flag.
So, the combination of SEQ=100 with CTL=SYN means that "sequence number 100
is the SYN flag".  In this example of parallel open, the right-side peer
hasn't ack'd the left side's SYN, so the SYN needs to be resent in the
SYN|ACK, and so the segment's sequence number is set to reflect the
(unchanged) initial sequence number.

-Ben

On Thu, Sep 30, 2021 at 09:36:37PM +0000, Francesca Palombini wrote:
> Ben,
> 
> Thank you for your reply. I did read “occupy sequence number space” as “the peer needs to increase the sequence number before sending”, which is why I was puzzled by the ACK getting sent with SEQ += 1 (might be worth to clarify).
> 
> However I am still missing something: when I look at Figure 7 I see something similar to what happens in Figure 14, but this time with SYN:
> 
>    2.  SYN-SENT     --> <SEQ=100><CTL=SYN>              ...
> 
>    3.  SYN-RECEIVED <-- <SEQ=300><CTL=SYN>              <-- SYN-SENT
> 
>    4.               ... <SEQ=100><CTL=SYN>              --> SYN-RECEIVED
> 
>    5.  SYN-RECEIVED --> <SEQ=100><ACK=301><CTL=SYN,ACK> ...
> 
> I am looking at lines 2 and 5. Peer A sends the SYN with SEQ 100, and then sends the SYN and ACK with the same SEQ 100. Making the parallel with what you say below, shouldn’t then in this case the SYN message occupy sequence number space, and the next message sent (line 5.) getting SEQ=101?
> 
> Francesca
> 
> From: Benjamin Kaduk <kaduk@mit.edu>
> Date: Thursday, 30 September 2021 at 22:12
> To: Francesca Palombini <francesca.palombini@ericsson.com>
> Cc: The IESG <iesg@ietf.org>rg>, draft-ietf-tcpm-rfc793bis@ietf.org <draft-ietf-tcpm-rfc793bis@ietf.org>rg>, tcpm@ietf.org <tcpm@ietf.org>rg>, michael.scharf@hs-esslingen.de <michael.scharf@hs-esslingen.de>de>, tcpm-chairs@ietf.org <tcpm-chairs@ietf.org>
> Subject: Re: Francesca Palombini's No Objection on draft-ietf-tcpm-rfc793bis-25: (with COMMENT)
> On Wed, Sep 22, 2021 at 02:19:17PM -0700, Francesca Palombini via Datatracker wrote:
> > 4. -----
> >
> > FP: This is surely me missing something but, in section 3.5 I see:
> >
> >    4.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK>       --> ESTABLISHED
> >
> >    5.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED
> >
> > which is followed by:
> >
> >    Note that the sequence number of the segment in line 5 is the same as
> >    in line 4 because the ACK does not occupy sequence number space (if
> >    it did, we would wind up ACKing ACKs!).
> >
> > However, later on, in Figure 13:
> >
> >    2.  (Close)                                              (Close)
> >        FIN-WAIT-1  --> <SEQ=100><ACK=300><CTL=FIN,ACK>  ... FIN-WAIT-1
> >                    <-- <SEQ=300><ACK=100><CTL=FIN,ACK>  <--
> >                    ... <SEQ=100><ACK=300><CTL=FIN,ACK>  -->
> >
> >    3.  CLOSING     --> <SEQ=101><ACK=301><CTL=ACK>      ... CLOSING
> >                    <-- <SEQ=301><ACK=101><CTL=ACK>      <--
> >                    ... <SEQ=101><ACK=301><CTL=ACK>      -->
> >
> > I am confused why in this case, in line 3, ACK does in fact occupy sequence
> > number space. What am I missing?
> 
> It is the FIN that occupies sequence number space, not the ACK.
> 
> Both steps 2 and 3 show messages being sent "in parallel", i.e., the "..."
> in the respective column shows that the event is not currently occuring at
> that endpoint.
> 
> So in (2), left sends SEQ=100,FIN, and right sends SEQ=300,FIN; since those
> sequence numbers are thus committed, in (3) left has to send SEQ=101 and
> right has to send SEQ=301.
> 
> -Ben