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

John Leslie <john@jlc.net> Mon, 06 October 2014 00:38 UTC

Return-Path: <john@jlc.net>
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 CB6D01A01D5 for <tcpm@ietfa.amsl.com>; Sun, 5 Oct 2014 17:38:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.772
X-Spam-Level:
X-Spam-Status: No, score=-0.772 tagged_above=-999 required=5 tests=[BAYES_50=0.8, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.786, URIBL_RHS_DOB=1.514] 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 mtnUjibnKHSG for <tcpm@ietfa.amsl.com>; Sun, 5 Oct 2014 17:38:07 -0700 (PDT)
Received: from mailhost.jlc.net (mailhost.jlc.net [199.201.159.4]) by ietfa.amsl.com (Postfix) with ESMTP id 9B4EB1A01C6 for <tcpm@ietf.org>; Sun, 5 Oct 2014 17:38:05 -0700 (PDT)
Received: by mailhost.jlc.net (Postfix, from userid 104) id 15521C94BF; Sun, 5 Oct 2014 20:38:01 -0400 (EDT)
Date: Sun, 05 Oct 2014 20:38:01 -0400
From: John Leslie <john@jlc.net>
To: Bob Briscoe <bob.briscoe@bt.com>
Message-ID: <20141006003801.GB72713@verdi>
References: <542344DA.9020905@isi.edu> <201409250956.s8P9uae9013452@bagheera.jungle.bt.co.uk> <alpine.OSX.2.00.1409251716260.69041@ayourtch-mac> <201409251842.s8PIgUdQ015414@bagheera.jungle.bt.co.uk> <alpine.OSX.2.00.1409260049040.69041@ayourtch-mac> <201409260957.s8Q9vmEd018560@bagheera.jungle.bt.co.uk> <20140926145037.GA82183@verdi> <201409261716.s8QHGC7I020142@bagheera.jungle.bt.co.uk> <20140926195338.GH83009@verdi> <201409301554.s8UFsjCl006183@bagheera.jungle.bt.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <201409301554.s8UFsjCl006183@bagheera.jungle.bt.co.uk>
User-Agent: Mutt/1.4.1i
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/L1pnQWGJ6XfIV5iSHBP9G8A0O38
Cc: tcpm IETF list <tcpm@ietf.org>
Subject: Re: [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, 06 Oct 2014 00:38:08 -0000

Bob Briscoe <bob.briscoe@bt.com> wrote:
> 
> I've got a bit behind in this conversation - I'm on another part of 
> my job at the mo. So apologies that my response to this old posting 
> on this thread arrives out of order.

   I've been over-extended myself this past week. :^(

   I'm not sure this still deserves a response, but I'd like to cover
a few points...

> At 20:53 26/09/2014, John Leslie wrote:
>> Bob Briscoe <bob.briscoe@bt.com> wrote:
>>> At 15:50 26/09/2014, John Leslie wrote:
>>>> Bob Briscoe <bob.briscoe@bt.com> wrote:
> 
>>>> For any Experimental-status document, I recommend:
>>>>...
>>>> - that any acknowledgment of extra option space in an initial SYN
>>>>   include a checksum or hash of the extra options to ensure that both
>>>>   ends have the same view of what options have been signaled;
>>>
>>> Not convinced on this one. Each TCP option has its own way for the
>>> 'server' to confirm whether it supports an option requested by the
>>> client.
>>
>> And this one should also have its own way. I see so many things that
>> could get in the way that I _strongly_ recommend some checksum/hash.
>>
>>> And support for the option to extend the option space is confirmed by
>>> the server.
>>
>> One bit of information (support-yes-or-no) just isn't sufficient,
>> IMHO.
> 
> I believe you're trying to recover some determinism because of the 
> non-determinism I've introduced.

   No. I'm trying to detect an arbitrarily-large class of implementation
problems which may pop up.

   Granted, there's nothing to _do_ about them except recognize that
_somebody_ isn't speaking the protocol we specify; but for something
this radical, that's important information. :^(

> If so, I strongly believe that it's better to lessen the original
> non-determinism (e.g. by a larger magic number), rather than to add
> more message exchanges.

   (I don't see any additional "message exchange" here: like any
checksum, discarding packets which fail the checksum is the default
behavior.)

> If both achieve the same higher level of determinism, I'd much rather 
> use the one that avoids adding more branches to the protocol logic.

   As I said, that's not my aim.
 
>>> So it seems redundant for the server to feedback yet another
>>> confirmation via a checksum of all the extra options requested.
>>
>> Redundancy is your friend when complexity multiplies.
> 
> I believe the opposite is true. If you provide two different ways to 
> say the same thing, you create more complexity - to check they are 
> both saying the same thing. And if they are not, you have to decide 
> which one not to believe. This makes the spec and the code more complex.

   This isn't two ways to say the same thing: it's just a sanity check
to see if I should trust what you're saying at all. Once implemenations
settle down (ROTFL), the checksum will never fail.

>...
>>>> IMHO, the SYN sender should never use SYN-U unless extra option
>>>> space in the SYN is needed; and it's probably better to never use
>>>> SYN-U for connections where latency of setup is the over-riding factor.
>>>> But YMMV. I wonder whether such overlap is worth the trouble to try
>>>> to design into the protocol.
> 
> You're allowed your humble opinion. However, if you analyse the 
> SYNOPSIS protocol, you will conclude with absolute certainty that the 
> upgraded SYNOPSIS connection has no latency cost. So if a SYN-U gets 
> options through middleboxes, I predict it will be used whether or not 
> the extra space is needed.

   This issue is partly Overcome-By-Events, since Bob is working on a
version of syn-op-sis to cover _every_ packet in a TCP connection. I
will wait to read it...

>>> In the syn-op-sis spec there is a choice between two variants of the
>>> protocol (I recommend the choice can be made by implementers, not the
>>> IETF).
>>
>> This is a dangerous idea. Experimental results get hopelessly cloudy
>> when implementations are _fundamentally_ different...
> 
> I've put forward two pairs of variants. For the first pair of 
> variants, I have asked the IETF to decide between them (so I put the 
> one I least recommend in an Appendix).

   I'm not sure we all feel competent to make that choice... :^(

> But for the other pair of variants, I realised that the choice of
> variants can be left to the implementer, so I put it in the body
> (Section 6).

   (This really does complicate evaluation of the Experiment...)

> I didn't come to these conclusions without a lot of thought (whereas 
> up to draft-01 I hadn't fully thought this through)...
> 
> The only difference in the section 6 variant is the SYN-L. It became 
> clear to me that this is not a fundamental difference when I realised 
> that a middlebox could reduce the SYN-L to a SYN and it would turn 
> the protocol into the other variant. So the rest of the protocol is 
> identical.
> 
> The reason for allowing either at run-time is that the SYN-L variant 
> is more likely to be preferred after most servers have been upgraded, 
> but not at the start of deployment (explained in the Appendix linked below).

   That sounds like looking too far ahead. During an Experimental period,
rather few servers will be updated.

>>> The choice I've recommended removes any risk of extra latency
>>> on the upgraded connection. I've included a discussion of the
>>> tradeoff between them in Appendix B.1:
>>> 
>> <http://tools.ietf.org/html/draft-briscoe-tcpm-syn-op-sis-02#appendix-B.1>

   Interesting reading... But I'd prefer keeping the Experiment simple.

--
John Leslie <john@jlc.net>