[tcpm] More TCP option space in a SYN: draft-briscoe-tcpm-syn-op-sis-02

Bob Briscoe <bob.briscoe@bt.com> Mon, 22 September 2014 20:45 UTC

Return-Path: <bob.briscoe@bt.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADBAF1A1AC1 for <tcpm@ietfa.amsl.com>; Mon, 22 Sep 2014 13:45:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.905
X-Spam-Level:
X-Spam-Status: No, score=0.905 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DATE_IN_PAST_03_06=1.592, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.786, SPF_PASS=-0.001] autolearn=ham
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 XWWZbYDDuvUj for <tcpm@ietfa.amsl.com>; Mon, 22 Sep 2014 13:45:44 -0700 (PDT)
Received: from hubrelay-rd.bt.com (hubrelay-rd.bt.com [62.239.224.99]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2A8841A1AC6 for <tcpm@ietf.org>; Mon, 22 Sep 2014 13:45:43 -0700 (PDT)
Received: from EVMHR71-UKRD.domain1.systemhost.net (10.36.3.109) by EVMHR68-UKRD.bt.com (10.187.101.23) with Microsoft SMTP Server (TLS) id 8.3.348.2; Mon, 22 Sep 2014 21:45:40 +0100
Received: from EPHR01-UKIP.domain1.systemhost.net (147.149.196.177) by EVMHR71-UKRD.domain1.systemhost.net (10.36.3.109) with Microsoft SMTP Server (TLS) id 8.3.348.2; Mon, 22 Sep 2014 21:45:40 +0100
Received: from bagheera.jungle.bt.co.uk (132.146.168.158) by EPHR01-UKIP.domain1.systemhost.net (147.149.196.177) with Microsoft SMTP Server id 14.3.181.6; Mon, 22 Sep 2014 21:45:37 +0100
Received: from BTP075694.jungle.bt.co.uk ([10.111.37.220]) by bagheera.jungle.bt.co.uk (8.13.5/8.12.8) with ESMTP id s8MKjZdD002071; Mon, 22 Sep 2014 21:45:36 +0100
Message-ID: <201409222045.s8MKjZdD002071@bagheera.jungle.bt.co.uk>
X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9
Date: Mon, 22 Sep 2014 15:55:42 +0100
To: Joe Touch <touch@isi.edu>
From: Bob Briscoe <bob.briscoe@bt.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
X-Scanned-By: MIMEDefang 2.56 on 132.146.168.158
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/KF6s_6ma-3T9W_IWY16x3BZodxg
Cc: tcpm IETF list <tcpm@ietf.org>
Subject: [tcpm] More TCP option space in a SYN: draft-briscoe-tcpm-syn-op-sis-02
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Mon, 22 Sep 2014 20:45:46 -0000

Joe,

I've just posted a revision here:
<http://tools.ietf.org/html/draft-briscoe-tcpm-syn-op-sis-02>

* I've taken more care to explain it. It was a bit terse before. So 
it's ready for the list to review properly now.

It would be useful if someone wrote a comparison with the other ideas 
on how to do this, including the ones we wrote jointly and SLO, LOIC 
and DBormam's 4-way HS. Better someone independent of all the authors 
does this. But I want to get syn-op-sis right first, a comparison 
won't be much use until its stable.


The underlying idea is still the same. The reasons I've updated it 
are many (the change log taken from the appendix is pasted at the end 
of this email for convenience).

* Mainly I've articulated that all these approaches that add TCP 
options after the Data Offset are not just hacks to get more space; 
they add a new architectural capability to TCP - a distinction 
between TCP options that might be relevant to middleboxes, and ones 
that are only for the destination (a bit like destopt in IPv6 - 
needing to specify which TCP options are for the destination only is 
ironic but necessary).

* I've also realised that this approach will ultimately return to a 
single SYN solution, whereas both the ideas in 
draft-touch-tcpm-tcp-syn-ext-opt will always require two SYNs.



Bob

Pasted from the change log:

    From briscoe...-01 to briscoe...-02:

       Technical changes:

       *  Defined the client behaviour dependent on which response
          arrives first.

       *  Allowed retransmission of either SYN or SYN-U if no response
          from either.

       *  Redefined EOO as an offset from the end of the packet, not from
          the beginning of the payload.

       *  Added section on Migration to a Single Handshake.  Reworded
          dual handshake so that it is not mandatory for the client to
          send dual SYNs simultaneously; only the relation between the
          SYNs and the response to either is mandatory, while parallel
          SYNs is purely for latency reduction.

       *  Added rules for writing TCP options, i.e. i) options like TFO
          MUST NOT be located in the TCP header and ii) add no-ops to
          align on 4-octet boundary.

       *  Added rules for forwarding TCP options, i.e. only the
          destination looks for TCP options after the Data Offset, not
          middleboxes.

       *  Moved the Explicit Handshake variant (SYN-L) into the body from
          the appendix, and recommended the choice could be down to
          implementers or apps.  Included section on corner cases.

       *  Introduced more normative language throughout the Protocol
          Spec.

       Editorial changes:

       *  Added temporary motivation section

       *  Added confusible terminology to Terminology section.

       *  Divided protocol spec into sub-sections.

       *  Handshake table: Clarified that the two columns under each
          server represent separate threads, that may run on separate
          servers, without co-ordination.  Represented message
          dependencies in the alignment of the rows.

       *  Explained the table.

       *  Explained why a legacy server won't ever pass SYN-U to the app.

       *  More precisely described loss as 'not arrived before a
          timeout', and explained the tradeoff between latency and extra
          TCP options.

       *  Gave reasoning for locating TCP options in three groups.

       *  Acknowledged Rob Hancock for the architectural idea of hiding
          an extension to a protocol in the layer above.

       *  Appendix about protocol alternatives now only presents the SYN-
          UD alternative, given the implicit/explicit handshake choice
          has been moved to the body.

       *  Rewrote appendix about comparing the choices to treat the two
          pairs of choices separately, rather than discussing all four
          combinations of pairs of choices.

________________________________________________________________
Bob Briscoe,                                                  BT