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

Andrew Yourtchenko <ayourtch@cisco.com> Thu, 25 September 2014 22:48 UTC

Return-Path: <ayourtch@cisco.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 EF4231A0066 for <tcpm@ietfa.amsl.com>; Thu, 25 Sep 2014 15:48:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.287
X-Spam-Level:
X-Spam-Status: No, score=-15.287 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.786, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] 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 WcGAAcAJN9-v for <tcpm@ietfa.amsl.com>; Thu, 25 Sep 2014 15:48:53 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C276B1A006D for <tcpm@ietf.org>; Thu, 25 Sep 2014 15:48:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3866; q=dns/txt; s=iport; t=1411685333; x=1412894933; h=date:from:to:cc:subject:in-reply-to:message-id: references:mime-version; bh=8um97i822aHDewfs2JuKon1s8ZtSF3k8LiVWdwr1/p8=; b=VQ37Ptx5e2ri6FCoejWeDnIQjierm38aVRAzzN2gCtmvg2dw7WjdzpWa NJifYA/TGbzD0nBNGEP5KdxeeQZf6inDh37VrMIR68jBz6OqUuDwp8Q0a P28PbfNlEkxhxHW87uhzU/hDLYmFmG4bxLGmbMmh1SeGEByhDeZlAgMYx k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AsQLALqaJFStJA2G/2dsb2JhbABgDoMAU1gDth0MAQEBAQEBBQFyAZMFh04CgQYWAXuEAwEBAQMBOAIPMBALGC5XBg4OiC0IDcFVAReGEoQYhTJCB4RLBbJ5gyNCgXJAgQIBAQE
X-IronPort-AV: E=Sophos;i="5.04,600,1406592000"; d="scan'208";a="358288500"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by rcdn-iport-6.cisco.com with ESMTP; 25 Sep 2014 22:48:53 +0000
Received: from xhc-aln-x03.cisco.com (xhc-aln-x03.cisco.com [173.36.12.77]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id s8PMmq0K025414 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 25 Sep 2014 22:48:52 GMT
Received: from ams-ayourtch-8813.cisco.com (10.55.47.212) by xhc-aln-x03.cisco.com (173.36.12.77) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 25 Sep 2014 17:48:52 -0500
Date: Fri, 26 Sep 2014 00:48:33 +0200
From: Andrew Yourtchenko <ayourtch@cisco.com>
X-X-Sender: ayourtch@ayourtch-mac
To: Joe Touch <touch@isi.edu>
In-Reply-To: <54247844.1050202@isi.edu>
Message-ID: <alpine.OSX.2.00.1409260030460.69041@ayourtch-mac>
References: <201409222045.s8MKjZdD002071@bagheera.jungle.bt.co.uk> <542344DA.9020905@isi.edu> <201409250956.s8P9uae9013452@bagheera.jungle.bt.co.uk> <alpine.OSX.2.00.1409251716260.69041@ayourtch-mac> <54244E05.9040009@isi.edu> <alpine.OSX.2.00.1409252043550.69041@ayourtch-mac> <54247844.1050202@isi.edu>
User-Agent: Alpine 2.00 (OSX 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
X-Originating-IP: [10.55.47.212]
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/o3sEhulwfnGMdGpSHooaKjAG9Ow
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: Thu, 25 Sep 2014 22:48:56 -0000

On Thu, 25 Sep 2014, Joe Touch wrote:

>
>
> On 9/25/2014 12:21 PM, Andrew Yourtchenko wrote:
> ...
>>>> OTOH, when attempt to negotiate the extended option space, you do not
>>>> have any hints about the remote end - besides maybe past memory.
>>>
>>> You could have similar hints in SRV records, though those are used much
>>> less frequently.
> ...
>> OTOH, the SRV record has just priority,weight,port,target-name - there
>> is no space for the hint as such. OTOH maybe a new record type that
>> could be returned in "additional" field within the reply?
>
> SRV records sometimes define additional parameters in the TXT records.
> See here:
> www.iana.org/assignments/service-names-port-numbers/
>
> (search for TXT)

geez! Thanks for this link. I thought the uses of TXT beyond "descriptive 
text" were always very much frowned upon.

>
> ...
>>> That's the advantage of the OOB method - there's no need to insert a
>>> stall on the sending side (an upgraded receiver might cache OOBs that
>>> arrive briefly before SYNs to avoid the need for an additional exchange)
>>
>> It's a tradeoff.
>>
>> two-SYN methods stall one of the connections during the transition
>> period at initiator's discretion (with maybe using DNS hints or its
>> local cache to decide which one to stall and the protocol type to decide
>> for how long to stall), *or* cause two SYNs race which is not very nice.
>> Assuming the stall delay is X, the session establishment time in the
>> worst case is ~(1.5RTT+X)
>>
>> OOB method has a permanent decision to stall the connection if the
>> upgraded server receives SYN-EOS OOB but no OOB segment (say, it's being
>> blocked by the middleboxes?), "after a certain time". This time
>> supposedly should be much shorter than the stall in the two-SYN case,
>> ideally a function of jitter on the path, let's call it Y.
>
> That can be zero if the OOB arrives first or during the processing of
> the SYN.

Sure. It's not about reordering. It's about the worst case scenario.

Best case scenarios "when everything works" both OOB and 2-SYNs are 
~equivalent, the mild failure cases are nicer with OOB iff Y is smaller 
than X. OOB has the additional advantage of not consuming one more 
connection slot for a short period of time on the middleboxes (and the 
per-flow processing capacity).

>
>> If the client then proceeds as if the connection was legacy, the session
>> establishment time is ~(1.5RTT+Y) - so, better than two-SYNs.
>
> A legacy client wouldn't wait for the jitter - they would ignore the
> SYN-EOS flag in the SYN, and wouldn't know to wait. The OOB segment
> would get silently dropped if/when it arrives.

We seem to somehow miscommunicate the case description. Sorry, it's late 
here, maybe mea culpa.

The case under discussion, which is the worst case scenario is: new client 
talking to new server with an evilbox in the middle dropping the OOB 100% 
of the time.

>
>> But if the client decides to retransmit the OOB (the worse performing
>> case of the, the overall connection establishment time will be
>> ~(2.5*RTT+Y). And there'd need to be logic to still fallback to the
>> legacy behavior if the (Second, third?) OOB packet gets dropped.
>
> The client need not wait for a RTT to retransmit the OOB; multiple OOBs
> have no impact on the server. Clients can send an OOB before and after
> the SYN, and if the OOB gets there and is cached it wins; if the OOB
> arrives after, the delay is just the arrival delay.

See above on the definition of the worst case - the OOB spec does not 
appear to be clear. Maybe it's better to leave more ambiguity so this can 
be experimented with, but this this worst case was certainly at least to 
me one of the big differences between the 2-SYN and OOB approaches.

--a


>
> Joe
>