Re: [tcpm] I-D Action: draft-nishida-tcpm-agg-syn-ext-00.txt

Joseph Touch <touch@strayalpha.com> Thu, 04 February 2021 20:07 UTC

Return-Path: <touch@strayalpha.com>
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 929463A17A2 for <tcpm@ietfa.amsl.com>; Thu, 4 Feb 2021 12:07:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.318
X-Spam-Level:
X-Spam-Status: No, score=-1.318 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.com
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 Ad_ipeLHBtiE for <tcpm@ietfa.amsl.com>; Thu, 4 Feb 2021 12:07:50 -0800 (PST)
Received: from server217-2.web-hosting.com (server217-2.web-hosting.com [198.54.115.98]) (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 949E43A17A4 for <tcpm@ietf.org>; Thu, 4 Feb 2021 12:07:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id:Cc:Date:In-Reply-To: From:Subject:Mime-Version:Content-Type:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=2E7Fne+TolnAmuEjZSz77YCN5sV7fUbc437w7xQYhgY=; b=f/BAHEbOzZPk7kwqeyVSTXS8u ila7hGa1u9s5JhIIIxRpTL1QCmIYtcwaPRdBhtgNkGrIsddzFKHPHzwyveph6fw6pY8XjUV36l8R4 UYvbbqNCM3bX5ObxAAWKET5ntUCS5ajVkIQmrdo1pShY0AI9j2/Z9/9tYjNLzocAt0bwivBtd68ZK EoBRGhsV6yy0trKWhkaJNUqiicTofY+ZiSnx4b2BWWzlFaARSt2KCUUkvobScDfuV85QkHG/sxOAg JNuBBTo9SBwTdFDO5w9vRdw+hXyk0K2Ng7XBcWKRzmZnZHQsiH4OejAEdsL7eGLy4JDO0OXJiPZ48 X8OMS7qGw==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:59758 helo=[192.168.1.14]) by server217.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from <touch@strayalpha.com>) id 1l7kun-001pkX-AR; Thu, 04 Feb 2021 15:07:50 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_988B4B32-6849-460F-8CDE-E0EC4C9E0B36"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\))
From: Joseph Touch <touch@strayalpha.com>
In-Reply-To: <CAAK044RKtJ_PpDXH9pmS90wqUZNK9unDggiDjVLUBK00cxhYnA@mail.gmail.com>
Date: Thu, 4 Feb 2021 12:07:45 -0800
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Message-Id: <8C6762C8-2A22-4CC7-AF53-1D13FC3DC268@strayalpha.com>
References: <161233469809.31214.294457730576935197@ietfa.amsl.com> <CAAK044QYBiGXKm+D+=edc8TWhjzAadBxER5VRFmJOdW8hdXFKg@mail.gmail.com> <244FE3E7-7B83-4884-B11B-028F7167B549@strayalpha.com> <CAAK044RKtJ_PpDXH9pmS90wqUZNK9unDggiDjVLUBK00cxhYnA@mail.gmail.com>
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
X-Mailer: Apple Mail (2.3654.40.0.2.32)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/DaeVS-IAvYUZqPpXdbNjRsmHZL4>
Subject: Re: [tcpm] I-D Action: draft-nishida-tcpm-agg-syn-ext-00.txt
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, 04 Feb 2021 20:07:53 -0000

Hi, Yoshifumi,

> On Feb 3, 2021, at 11:02 PM, Yoshifumi Nishida <nsd.ietf@gmail.com> wrote:
> 
> Hi Joe,
> 
> Thanks for reading the draft. I put my comments in lines.
> 
> On Wed, Feb 3, 2021 at 4:46 PM Joseph Touch <touch@strayalpha.com <mailto:touch@strayalpha.com>> wrote:
> Hi, Yoshi,
> 
>> On Feb 2, 2021, at 11:12 PM, Yoshifumi Nishida <nsd.ietf@gmail.com <mailto:nsd.ietf@gmail.com>> wrote:
>> 
>> Hi folks,
>> 
>> I prepared a draft for SYN option space extensions.
>> I know this is a difficult issue in TCP and has been discussed for a long time. 
>> But, I'm thinking that it might be a good time to discuss it again.
> 
> The proposal has two parts, which are (AFAICT) separable:
> A. Aggregated options
> B. Adding more option space in the 3rd packet of a 3WHS
> 
> Right. both can be used supplementarily.
>  
> (A) is fine, although the most significant issue is legacy interaction.
> 
> (B) is no longer extending the SYN; it’s actually just post-SYN activation of new options. 
> 
> In my view, all options are negotiated during SYN exchange. There's no post SYN activation. 
> They are just additional information for the features already negotiated during SYN exchanges.

I disagree; you’re suggesting putting NEW options in packets that don’t have a SYN. In that sense, it’s similar to my proposal, which uses a segment with no SYN and no ACK bit (the out-of-band segment).

However, the problem is with the first SYN-ACK you send back. That is typically a confirmation of all options supported so the rest of the connection can commence, even for MPTCP. In your case, the exchange continues. This not only adds multiple RTTs to the open, it interferes with data sent in the SYN, data sent with the SYN-ACK, and fast-open for sure; it could also be a problem with many other options that don’t make sense in subsequent segments due to the way they need to coordinate info that is used in the SYN-ACK or other ACK segments (e.g., TCP-AO comes to mind).

At a first cut, the doc needs to address this, e.g., saying that:
	- if any user data is included before the option exchange is completed, it has to be delayed until it completes
	- how to handle options that are first seen after the SYN
		MPTCP can define its own behavior for this, but your doc cannot redefine that for other options 

>> Key ideas of the draft are the followings.
>> 1: drastic changes in TCP's spec will not be required 
>>     (it does not require updating TCP header format nor using multiple SYN packets or additional SYN-like packets)
> 
> Post-SYN activation of new options is quite a drastic change. 
> 
> Nevermind the question of what happens to data in the SYN, which normally MUST be passed to the application at the receiver after the final ACK is received, but here MUST NOT. And the data that might go in the other direction in the 3rd message with the ACK.
> 
> Basically, you’re proposing to change the 3WHS to a 5WHS, which is a lot more significant and complex than described here (there are a lot of failure modes not addressed, for one).
> 
> RIght. To be precise, the draft supports 3WHS, 4WHS and 5WHS. It can be varied depending on how much extra option space is needed.
> MPTCP adopts 4WHS for its negotiation. In my view, the draft just extends the idea. 

MPTCP adopts 4WHS for *its* options, which is its prerogative. You’re attempting to define 4WHS and 4WHS semantics for *all* options, which I don’t think is viable.

> Hence, I am thinking the degree of the complexity would be more or less the same. At least, I don't think it will be too complex to implement.
> 
>> 2: utilize the option negotiation schemes in mptcp for generic purposes. so, I think it can be considered middlebox friendly.
> 
> MPTCP is negotiating variants of an option that is already active (AFAICT); that’s not the same as activating new options.
> 
> My understanding for MPTCP is similar and I think this draft does the same things. (from my point of view)
>  If you see significant differences between them, could you elaborate a bit?

See above.

>> 3: it has some limitations (e.g it can only extend around 30-40 bytes for SYN option space). But, if it's combined with EDO, we can use more option space.
>>     (depends on how EDO draft will progress, though)
> 
> If you have EDO, then just negotiate it and activate options after the connection is established. But that’s not the problem at hand - the problem is activation of options in the SYN. AFAICT, this does not do that.
> 
> I think the negotiation scheme for EDO is simple. it needs to send 1 bit information to indicate the activation of the feature. 
> This can be done during SYN exchange. So, I thought it's fine to use this feature in the 3rd segment. Or, are there any risks?

I do think that if EDO is negotiated in the SYN then you can use it in all subsequent segments (that’s already how it’s defined). I don’t think it adds any risks here that aren’t already part of EDO.

Joe