Re: [tcpinc] TCP's treatment of data in SYN packets

David Mazieres <dm-list-tcpcrypt@scs.stanford.edu> Fri, 29 July 2016 19:24 UTC

Return-Path: <dm-list-tcpcrypt@scs.stanford.edu>
X-Original-To: tcpinc@ietfa.amsl.com
Delivered-To: tcpinc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9DE4112B076 for <tcpinc@ietfa.amsl.com>; Fri, 29 Jul 2016 12:24:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.188
X-Spam-Level:
X-Spam-Status: No, score=-2.188 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.999, RP_MATCHES_RCVD=-1.287, SPF_PASS=-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 fi2hOCXW6oqp for <tcpinc@ietfa.amsl.com>; Fri, 29 Jul 2016 12:24:09 -0700 (PDT)
Received: from market.scs.stanford.edu (www.scs.stanford.edu [IPv6:2001:470:806d:1::9]) (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 47347127071 for <tcpinc@ietf.org>; Fri, 29 Jul 2016 12:24:09 -0700 (PDT)
Received: from market.scs.stanford.edu (localhost.scs.stanford.edu [127.0.0.1]) by market.scs.stanford.edu (8.14.7/8.14.7) with ESMTP id u6TJO8kS029573; Fri, 29 Jul 2016 12:24:08 -0700 (PDT)
Received: (from dm@localhost) by market.scs.stanford.edu (8.14.7/8.14.7/Submit) id u6TJO8Bd010509; Fri, 29 Jul 2016 12:24:08 -0700 (PDT)
X-Authentication-Warning: market.scs.stanford.edu: dm set sender to dm-list-tcpcrypt@scs.stanford.edu using -f
From: David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
To: Joe Touch <touch@isi.edu>, Kyle Rose <krose@krose.org>
In-Reply-To: <579BA4C5.2040004@isi.edu>
References: <CAJU8_nU1WzQNFFUn_2o1cACutB01iyQ_hC29PHoutr8TRDKGnA@mail.gmail.com> <579A4669.7030600@isi.edu> <87lh0lselg.fsf@ta.scs.stanford.edu> <CAJU8_nUPrm9JJMrrMbL5+FpP-9CKC6EkidCry9UuZA5ZfyJtoA@mail.gmail.com> <579A8223.8050308@isi.edu> <CAJU8_nXSxr7ykC1TwptBmyP8pNccz52ozq=hF7-EYiaMdDeLBQ@mail.gmail.com> <8737mtqkf5.fsf@ta.scs.stanford.edu> <579BA4C5.2040004@isi.edu>
Date: Fri, 29 Jul 2016 12:24:07 -0700
Message-ID: <87oa5gl02w.fsf@ta.scs.stanford.edu>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/udneZjAfSG21f-WyZJYoB96AwjE>
Cc: tcpinc <tcpinc@ietf.org>, "Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net>
Subject: Re: [tcpinc] TCP's treatment of data in SYN packets
X-BeenThere: tcpinc@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: David Mazieres expires 2016-10-27 PDT <mazieres-w53ip7iu6xqerwrmugqqq2s39i@temporary-address.scs.stanford.edu>
List-Id: "Discussion list for adding encryption to TCP." <tcpinc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpinc/>
List-Post: <mailto:tcpinc@ietf.org>
List-Help: <mailto:tcpinc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jul 2016 19:24:10 -0000

Joe Touch <touch@isi.edu> writes:

> FWIW, IMO the best wording would:
>
> - start with the simplest case, i.e., NOT trying to optimize EDO to use
> SYN data
>
> - present the use of SYN data with EDO as an optimization
>         that optimization might be a MAY or SHOULD, but not a MUST
>
> Otherwise, you're needlessly complicating your spec for an optimization.

I'm not sure I follow.  The issue here is about application data that
needs to be decrypted, acked, and delivered in order.  EDO would seem to
be a poor fit for such data, particularly since TFO is already doing the
heavy lifting of normalizing the use of data in SYN segments.  That's
not to say ENO TEPs couldn't significantly benefit from EDO,
particularly if EDO is later extended to grow SYN segment options, but I
think the obvious application for that is early exchange of DH
parameters to optimize away the fourth flow in protocols like tcpcrypt,
and NOT any kind of TFO-like immediate data exchange.  We've already
implicitly addressed EDO by the suboption length byte and the fact that
you can repeat TEP suboptions if you need more than 32 bytes for a
non-final suboption.

More to the point, ENO is kind of a meta-specification, so we aren't
trying to optimize anything so much as to prevent chaos should TEPs
later want to employ optimizations.  To do so, we have to require data
to be ignored in a bunch of cases, otherwise future TEPs risk running
into weird problems with ENO-compliant hosts.

Also, to clarify, the bulk of the document is about the simplest case,
but the wording I proposed if for a subsection specifically addressing
what to do if you receive SYN data--namely ignore it and don't ACK it in
a bunch of potentially problematic cases.

If this isn't clear, I can post a new draft so that everyone can see the
proposed language in context, and we can take it from there.

David