Re: [tcpm] Summary of mt comments/questions WGLC for draft-ietf-tcpm-fastopen-05

"Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com> Tue, 03 December 2013 09:32 UTC

Return-Path: <michael.scharf@alcatel-lucent.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 C0B1F1AE0E2 for <tcpm@ietfa.amsl.com>; Tue, 3 Dec 2013 01:32:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.299
X-Spam-Level:
X-Spam-Status: No, score=-6.299 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_36=0.6, RCVD_IN_DNSWL_HI=-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 YVDcgdukZB8d for <tcpm@ietfa.amsl.com>; Tue, 3 Dec 2013 01:32:03 -0800 (PST)
Received: from ihemail2.lucent.com (ihemail2.lucent.com [135.245.0.35]) by ietfa.amsl.com (Postfix) with ESMTP id AD0811AE0D8 for <tcpm@ietf.org>; Tue, 3 Dec 2013 01:32:03 -0800 (PST)
Received: from fr712usmtp2.zeu.alcatel-lucent.com (h135-239-2-42.lucent.com [135.239.2.42]) by ihemail2.lucent.com (8.13.8/IER-o) with ESMTP id rB39Vpuk012461 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 3 Dec 2013 03:31:54 -0600 (CST)
Received: from FR711WXCHHUB02.zeu.alcatel-lucent.com (fr711wxchhub02.zeu.alcatel-lucent.com [135.239.2.112]) by fr712usmtp2.zeu.alcatel-lucent.com (GMO) with ESMTP id rB39Va2D007486 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 3 Dec 2013 10:31:50 +0100
Received: from FR712WXCHMBA15.zeu.alcatel-lucent.com ([169.254.7.70]) by FR711WXCHHUB02.zeu.alcatel-lucent.com ([135.239.2.112]) with mapi id 14.02.0247.003; Tue, 3 Dec 2013 10:31:49 +0100
From: "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
To: Yuchung Cheng <ycheng@google.com>
Thread-Topic: [tcpm] Summary of mt comments/questions WGLC for draft-ietf-tcpm-fastopen-05
Thread-Index: AQHO778+Jt7y7dUEY0eFjqJOFz+7ZppCMsjQ
Date: Tue, 03 Dec 2013 09:31:48 +0000
Message-ID: <655C07320163294895BBADA28372AF5D1417C2@FR712WXCHMBA15.zeu.alcatel-lucent.com>
References: <655C07320163294895BBADA28372AF5D0EAFCE@FR712WXCHMBA15.zeu.alcatel-lucent.com> <526E8E6B.1060806@isi.edu> <0B96A5D7-0DAE-46FF-8D9A-311307BF7493@netapp.com> <3578D243-D0F6-41E8-B515-380C35BB27B9@isi.edu> <9267762C-FD7C-4BC6-85FB-730E774F7EEB@oracle.com> <527016BD.4090609@isi.edu> <88430820-7495-491A-AE7A-D3850973AA35@oracle.com> <527036D0.4030508@isi.edu> <2C14475E-675C-40BB-9DD6-8C2871161903@oracle.com> <CAK6E8=ccEmc-ghgbNwmxB6DwWMO+c4JmBx=-RnRMv1nZO9COyQ@mail.gmail.com> <2B85C60B-2301-4B1D-8176-044DAEA817A6@erg.abdn.ac.uk> <CAK6E8=dLnHYL2Gc5DydZuAhMvyGSqavSLZLwoF9-oTqU+P6evg@mail.gmail.com> <528B9E16.70602@erg.abdn.ac.uk> <CAK6E8=ea9c9RbPwzED=ts6xkAONhbMgzdJR+H1-EtrHGepCyBA@mail.gmail.com> <655C07320163294895BBADA28372AF5D13C310@FR712WXCHMBA15.zeu.alcatel-lucent.com> <CAK6E8=fd16b9droDiPZp_CgJ=TcRkF1xt8i9Wj-Ku=YTxkcwUA@mail.gmail.com> <763b3f8541277a7690bf859a87e69265.squirrel@www.erg.abdn.ac.uk> <CAK6E8=evoYYQ-6=MaCQbUgXgV3hP16HkXPB0+DM7mKWKO_SEdA@mail.gmail.com> <529A1B65.4070008@erg.abdn.ac.uk> <CAK6E8=fPE+9KN5YCxdhkP86ch_0f1COdm9vSK=7geuzB050D0w@mail.gmail.com> <655C07320163294895BBADA28372AF5D140964@FR712WXCHMBA15.zeu.alcatel-lucent.com> <CAK6E8=fE4yVG4_x__qLANiKyf29wp_J9XyCh4w9f6Mf1bBnSMA@mail.gmail.com>
In-Reply-To: <CAK6E8=fE4yVG4_x__qLANiKyf29wp_J9XyCh4w9f6Mf1bBnSMA@mail.gmail.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [135.239.27.41]
Content-Type: multipart/alternative; boundary="_000_655C07320163294895BBADA28372AF5D1417C2FR712WXCHMBA15zeu_"
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.57 on 135.245.2.35
Cc: "tcpm@ietf.org" <tcpm@ietf.org>, "draft-ietf-tcpm-fastopen@tools.ietf.org" <draft-ietf-tcpm-fastopen@tools.ietf.org>
Subject: Re: [tcpm] Summary of mt comments/questions WGLC for draft-ietf-tcpm-fastopen-05
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: Tue, 03 Dec 2013 09:32:10 -0000

Hi Yuchung,

I guess one of the key points here is that in corner cases the cached MSS value might be outdated. For instance, this could happen if a load balancer sits in front of two middleboxes that are (mis-) configured with two different MSS clamping values.

And legacy middlebox may not expect data in the SYN and behave different to what one could expect. I am not sure whether this is a real-world problem. But, indeed, it seems like an area where further experimentation could provide better insight (including the potential outcome that this is not a problem). I strongly agree that this should be added to the experimentation section.

Thanks

Michael


From: Yuchung Cheng [mailto:ycheng@google.com]
Sent: Tuesday, December 03, 2013 1:32 AM
To: Scharf, Michael (Michael)
Cc: Gorry Fairhurst; tcpm@ietf.org; draft-ietf-tcpm-fastopen@tools.ietf.org
Subject: Re: [tcpm] Summary of mt comments/questions WGLC for draft-ietf-tcpm-fastopen-05



On Mon, Dec 2, 2013 at 5:49 AM, Scharf, Michael (Michael) <michael.scharf@alcatel-lucent.com<mailto:michael.scharf@alcatel-lucent.com>> wrote:
Some comments, with chair hat off...

a)+b):

I have no strong opinion on whether the connection initiator (client) should cache the RTT, or not. It seems partly orthogonal to TFO. If the RTO expires spuriously, the document recommends to retransmit without data in SYN, i.e., the amount of bytes sent into the network is the same as for regular TCP. From a congestion control perspective, the result is more or less the same.

However, after having followed this discussion, I wonder why the document does not comment at all about RTT estimation at the connection acceptor (server). With TFO, the connection acceptor (server) is allowed to send a full IW of data back to the connection initiator (client), following the SYN-ACK. However, at that point in time, the connection acceptor (server) has no recent RTT measurement, right? This is different to the traditional TCP handshake, in which
correct
an RTT measurement is available before data is sent into the network.  The fact that TFO allows sending of a full IW of data before an RTT estimation is available should be mentioned as a warning sign, IMHO. For instance, it will make it more difficult to apply pacing.
I can add that point about RTT estimation.


c)+d):

In almost all existing use of regular TCP, the endpoints negotiate the MSS before actually sending any data, because adding data to SYNs doesn't make a lot of sense without TFO. Therefore, "MSS clamping" in middleboxes usually works for regular TCP, and it may avoid PMTUD procedures in many cases. With TFO, the situation can be more
I need more information about the MSS clamping feature.

My understanding (which can be wrong) of MSS clamping is that the middle-box is transparently reducing the value in the MSS option in the SYN packet. If so the connection that negotiate the cookie, should receive and cache the reduced value, which will be used by the later Fast Open connection.

It is possible the middle-box lowers the MSS prior the to SYN-data. In that case it is equivalent to sending a SYN-data, or a data packet on a new path that has lower MTU. In that case, the remedy is ICMP error or ultimately a timeout. When recurring SYN-data timeouts happen, then the client should disable Fast Open (temporarily) due to the negative caching suggested in the draft.

complex. In addition to the case of MSS<536 bytes raised by Gorry, it is also not clear to me what a middlebox should do if it receives a TFO SYN with data, and if this segment is larger than the "MSS clamping" value of that middlebox. This corner case can occur e.g. after path routing changes. Therefore, I agree with Gorry that the document should at least mention that MSS issues may require further experimentation.
As replied earlier, I will document SYN-data / middlebox issue as the "area of experimentation" in the previous email.


Thanks

Michael


From: tcpm [mailto:tcpm-bounces@ietf.org<mailto:tcpm-bounces@ietf.org>] On Behalf Of Yuchung Cheng
Sent: Sunday, December 01, 2013 7:08 PM
To: Gorry Fairhurst
Cc: tcpm@ietf.org<mailto:tcpm@ietf.org>; draft-ietf-tcpm-fastopen@tools.ietf.org<mailto:draft-ietf-tcpm-fastopen@tools.ietf.org>
Subject: Re: [tcpm] Summary of mt comments/questions WGLC for draft-ietf-tcpm-fastopen-05



On Sat, Nov 30, 2013 at 9:07 AM, Gorry Fairhurst <gorry@erg.abdn.ac.uk<mailto:gorry@erg.abdn.ac.uk>> wrote:

Sorry for the delay (I was unwell), so this email is to restart.
I think we got a long way through discussing things, so I've
summarised below all the points as I understand from my side,
so we and others know where we have arrived and can fix others.

I support the experimentation with TFO, although I would argue
we do need to write more about how the proposed changes in this
ID will modify STD behaviour and explicitly say how to "negatively"
cache path info that indicates TFO should not be used.

I would like to see documented the cases where this could
@@potentially@@ be worse than STD mechanisms. The ID already
has some good documentation, but I think it needs a little
more detail especially the set of potential issues that we
expect to be mitigated by a cache at both the client and server
- especially when and why do we need to revoke the cookie
to prevent potentially bad pathologies from being
repeated in a short time between a pair of clients and servers
that keep starting up new connections.

---

The points below hopefully help us see what we can agree on:

a) Case: cached RTT greater than minRTO
   The current text says "RECOMMEND that the client caches the MSS
   and RTT to the server to enhance performance."

   I think ideally we should also explicitly say if the RTT is
   not cached TCP SHOULD disable use of TFO (make the cookie
   invalid) when the RTT>MinRTO.

   ... & note something about  "this prevents a premature RTO
   for flows with a long RTT and also provides an acceptable RTT
   for pacing" - I feel the current text focuses on performance
   improvement for a low RTT, but does not explain why it is
   important for large RTTs.

b) Case: cached RTT less than minRTO and path change
   We could just note that this ID does not change the behaviour
   that a path change can result in an invalid RTT/RTO value,
   and that normal TCP behaviour is expected to recover.
no on a and b.

The agreed change is to remove RTT caching in TFO spec.
TFO will benefit higher RTT client more. Do I need to explain such a simple logic further?

min-RTO is not defined in IETF RFCs, nor do I see your new logic improves TFO b/c ultimately cached RTT can be out-dated. I don't see how tweaking TFO with historical RTT values can make it safer.


c) Case: receiver-advertised MSS less than 536 bytes.

   This is an unusual corner-case and is not one that I think we need
   to engineer for. However, I do think we need to note that an IPv4
   receiver advertised MSS less than 536 would result in
   transmission of an unexpected large segment to the receiver.
   (I.e. say we noted this, but don't change the recommendation).
Why is that specific to TFO?


d) Case: receiver-advertised MSS greater than 1460 B,
   i.e. allowing TFO with large segments.

   I think we should explicitly say MUST NOT use an MSS that
   results in a packet size greater than 1500B.
No. if you send a packet too big you risk it getting lost and wish you get some ICMP warnings. Why is that specific to TFO?


   - AND I think we should caution that we do not have current
   experience of the effect of this behaviour. We could note
   it as an area for further experimentation? I'm not sure what
   we agreed?
ok. Sending SYN-data is indeed a new behavior and an area for further experimentation. I think that's why TFO-draft is experimental. I could add more words about this in the "areas for experimentation".



e) Case: A sender overwhelms a path with limited capacity.
   This is the corner case where a SYN may fail. The issue is most
   severe for links that suffer major overload (think low-speed
   large multiplexing).

   First SORRY - I'd like to avoid "slightly" and "significantly"
   wording  - we discussed on the thread - instead what matters
   to me really is:

   This draft updates the congestion-control behaviour while the
   sender is waiting acknowledgement for a SYN. This will result in
   more data (up to one IW of segments) being sent before the sender
   receives the ACK for the SYN. This could result in additional
   congestion on links that have a high loss rate where the initial
   ACK would have been lost, which in standard behaviour would have
   resulted in a lower initial congestion window.
I can merge the text above into the draft.


   - personally I see the effect as important to document,
   but is OK for experimentation with an IW of 3 (see (g)).

f) The cookie-less experimental method will likely also need a negative
   cache to disable inappropriate TFO usage.

   I'd like to see an explicit note for the future experimentation
   something a bit like this would be good:

  "Even if cookie-less methods are found, it is expected that a
   future method will still need a way to detect conditions where
   TFO should not be used due to path properties and some
   equivalent method may then be needed to disable TFO."
ok.


g) I am unsure that allowing TFO to use IW=10 is safe!

Best wishes,

Gorry