Re: [tcpm] New Version Notification for draft-kuehlewind-tcpm-ecn-fallback-00.txt

Michael Welzl <michawe@ifi.uio.no> Mon, 29 July 2013 09:22 UTC

Return-Path: <michawe@ifi.uio.no>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9A9A021F9F96 for <tcpm@ietfa.amsl.com>; Mon, 29 Jul 2013 02:22:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.299
X-Spam-Level:
X-Spam-Status: No, score=-102.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id q3vvA8RrIJMB for <tcpm@ietfa.amsl.com>; Mon, 29 Jul 2013 02:22:44 -0700 (PDT)
Received: from mail-out2.uio.no (mail-out2.uio.no [IPv6:2001:700:100:10::58]) by ietfa.amsl.com (Postfix) with ESMTP id 867DE21E805A for <tcpm@ietf.org>; Mon, 29 Jul 2013 02:22:34 -0700 (PDT)
Received: from mail-mx2.uio.no ([129.240.10.30]) by mail-out2.uio.no with esmtp (Exim 4.75) (envelope-from <michawe@ifi.uio.no>) id 1V3jer-0000eV-Vd; Mon, 29 Jul 2013 11:22:25 +0200
Received: from [46.189.28.122] (helo=[10.25.11.80]) by mail-mx2.uio.no with esmtpsa (TLSv1:AES128-SHA:128) user michawe (Exim 4.80) (envelope-from <michawe@ifi.uio.no>) id 1V3jer-0004ld-1D; Mon, 29 Jul 2013 11:22:25 +0200
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Michael Welzl <michawe@ifi.uio.no>
In-Reply-To: <E84E1F28-5DA4-4D68-90E6-B248C76FAAE9@tik.ee.ethz.ch>
Date: Mon, 29 Jul 2013 11:22:23 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <22D18C14-152E-4487-936E-121E95A63B4E@ifi.uio.no>
References: <20130703154032.15474.58799.idtracker@ietfa.amsl.com> <82B14E2A-C7B8-4899-8954-80C66BACFB76@tik.ee.ethz.ch> <012C3117EDDB3C4781FD802A8C27DD4F25C03F89@SACEXCMBX02-PRD.hq.netapp.com> <6AE1ADEB-CADA-4BC5-AE3B-75001296C635@tik.ee.ethz.ch> <012C3117EDDB3C4781FD802A8C27DD4F25C2C2ED@SACEXCMBX02-PRD.hq.netapp.com> <E84E1F28-5DA4-4D68-90E6-B248C76FAAE9@tik.ee.ethz.ch>
To: Brian Trammell <trammell@tik.ee.ethz.ch>
X-Mailer: Apple Mail (2.1508)
X-UiO-SPF-Received:
X-UiO-Ratelimit-Test: rcpts/h 6 msgs/h 2 sum rcpts/h 12 sum msgs/h 6 total rcpts 6141 max rcpts/h 40 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: E1C95D39460E00772E8567247755E7CD8E7DFF6F
X-UiO-SPAM-Test: remote_host: 46.189.28.122 spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 2 total 16 max/h 8 blacklist 0 greylist 0 ratelimit 0
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] New Version Notification for draft-kuehlewind-tcpm-ecn-fallback-00.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
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, 29 Jul 2013 09:22:49 -0000

Hi,

I also finally managed to really read this draft. As I said before, I like the idea a lot!

As for the actual algorithm, I'm not so convinced about it - here are a few comments:
- step 4: in addition to Richard's suggestion that these should be data segments, I'd also suggest to require there to be at least 3 more segment to be available in the sender buffer for sending. In case the probe packets are lost, it could be useful to have sent enough extra packets to be avoid an RTO (or at least reduce the risk for an RTO).
- step 6: "In this case, the sender may continue using ECN, because while it may not work for detecting congestion, the use of ECN does not negatively affect connectivity." => I'd rather not have it used if it's not working - if a router marks ECN to CE but the next downstream router clears the codepoint, we ignore congestion, and we'd like to avoid that, no?

The paragraph just after the 8 steps suggests to put ECN probing in the API. I think this is quite bad - if applications need to ask for this to happen, you need to update all applications to move ECN deployment ahead… but this kind of deadlock situation is what we're trying to solve here?  I don't understand why the necessary information about the number of data that are available to send "is only available at the higher layer", can't TCP look into its send buffer to know how much it has available? Surely that must be possible?

Finally, I don't think it's worth including nonce probing. As it stands now, the nonce is not terribly useful anyway, so why probe for it? Anyway nobody uses it AFAIK…

Cheers,
Michael


On Jul 23, 2013, at 6:20 PM, Brian Trammell <trammell@tik.ee.ethz.ch> wrote:

> hi Richard, all,
> 
> On 22 Jul 2013, at 18:58 , "Scheffenegger, Richard" <rs@netapp.com> wrote:
> 
>> Hi Brian,
>> 
>>>> Including the optional ECN Nonce probing (4th segment with ECT1; 4th ACK
>>> with NS=1) in the algorithm might be good...
>>> 
>>> Good suggestion; we were originally thinking of something a little more
>>> elaborate, and I do think we need to think about this a bit more, though,
>>> since an actual CE mark would obliterate the nonce. I know that's unlikely
>>> _now_, but one of the goals of the work is making it less so. :)
>> 
>> 
>> Indeed... You would want to send the ECT(1) first, and the artificial CEs afterwards; if there is an ACK,ECE for the segment with ECT(1), this would also prove the path is ECN-capable, right?
> 
> Yep. Would have to make sure we do the right thing if that one ECT(1) packet gets _legitimately_ lost though.
> 
>> But I'd like to listen to your elaborate scheme :)
> 
> It's basically a generalization of what we submitted (and which covers the case above): the general idea is to send J ECT codepoints (checking the nonce sum) followed by K CE codepoints, falling back any time a problem is detected (as described in the draft). We thought about various combinations before settling on (J,K) = (0,3) for this rev of the draft. This admittedly makes the assumption that middleboxes that would cause connectivity problems when seeing ECT would also do so on CE. On the other hand, we want to keep J+K as small as possible: the more data segments you're sending to probe, the more time you're not getting the full benefit of ECN-signaled CC. 
> 
> It seems (J,K) = (1,3) would work for testing nonce functionality, though. It's probably worth thinking a bit about other values, too.
> 
> Cheers,
> 
> Brian
> 
>>> -----Original Message-----
>>> From: Brian Trammell [mailto:trammell@tik.ee.ethz.ch]
>>> Sent: Montag, 22. Juli 2013 17:03
>>> To: Scheffenegger, Richard
>>> Cc: tcpm@ietf.org; Mirja Kuehlewind
>>> Subject: Re: [tcpm] New Version Notification for draft-kuehlewind-tcpm-
>>> ecn-fallback-00.txt
>>> 
>>> hi Richard,
>>> 
>>> Thanks for the comments! Inline...
>>> 
>>> On 16 Jul 2013, at 14:55 , "Scheffenegger, Richard" <rs@netapp.com> wrote:
>>> 
>>>> Brian, Mirja,
>>>> 
>>>> 
>>>> Having read this draft (I think the rationale for not probing in the IW
>>> is a good one, but perhaps a little more text in the draft would do good -
>>> i.e. a short flow will be effectively non-reactive anyway, thus any ECN
>>> signal would be superfluous), I like it.
>>>> 
>>>> 
>>>> I have one (probably academic) point though:
>>>> 
>>>> 
>>>> (I would like to see a diagram visualizing the probing process).
>>> 
>>> Good suggestion; we'll add one in the next rev.
>>> 
>>>> In Step 4, the algo sends the next 3 segments after IW with "CE". In
>>> addition to the "first hop must not have experienced congestion" scenario,
>>> a middlebox might also clear CE if these three segments are pure ACKs, as
>>> per 3168, pure ACKs should not be marked ECN-capable... also, you expect
>>> an ACK for these. Thus you need to send 3 "data segments" not simply
>>> segments, right?
>>> 
>>> Yep, this is what we meant, but we need to make this more clear.
>>> 
>>>> In Step 6, you mention an interaction with ECN Nonce... Perhaps having
>>> an explicit example for an ECN-Nonce enabled session would do well (which
>>> can detect the removal of the CE-flag in probing data segments by sending
>>> one ECT(1) data segment).
>>>> 
>>>> In Step 7, CWR should be sent with the segment (not necessarily data
>>> segment) ACKing any of the 1st up to the 3rd probing CE data segment. This
>>> could be 1, 2 or 3 segments (the text only hints on a single such
>>> segment).
>>> 
>>> hm, that wasn't the intention, but on review that could be clearer, as
>>> well. We'll make it so.
>>> 
>>>> Including the optional ECN Nonce probing (4th segment with ECT1; 4th ACK
>>> with NS=1) in the algorithm might be good...
>>> 
>>> Good suggestion; we were originally thinking of something a little more
>>> elaborate, and I do think we need to think about this a bit more, though,
>>> since an actual CE mark would obliterate the nonce. I know that's unlikely
>>> _now_, but one of the goals of the work is making it less so. :)
>>> 
>>> Cheers,
>>> 
>>> Brian
>>> 
>>> 
>>>>> -----Original Message-----
>>>>> From: tcpm-bounces@ietf.org [mailto:tcpm-bounces@ietf.org] On Behalf
>>>>> Of Brian Trammell
>>>>> Sent: Donnerstag, 04. Juli 2013 14:14
>>>>> To: tcpm@ietf.org
>>>>> Subject: [tcpm] Fwd: New Version Notification for
>>>>> draft-kuehlewind-tcpm- ecn-fallback-00.txt
>>>>> 
>>>>> Greetings, all,
>>>>> 
>>>>> We've posted a draft on ECN path probing and fallback, which we'd
>>>>> like to discuss at the TCPM meeting in Berlin. In a recent work [1],
>>>>> we found that though the ECN-readiness of popular webservers has
>>>>> significantly increased even in the last couple of years, there still
>>>>> exist paths on which attempts to use ECN after successful ECN
>>>>> negotiation will cause connection disruption.
>>>>> 
>>>>> This draft proposes an experimental approach to determine at runtime
>>>>> whether a path is usable, by sending segments after connection
>>>>> startup and ECN negotiation with the CE codepoint set, and disabling
>>>>> ECN if all probe segments were lost, on a per-flow or per-destination
>>> basis.
>>>>> 
>>>>> Experiments with an implementation of the approach within the Linux
>>>>> kernel are underway; we plan to be able to present initial results in
>>> Berlin.
>>>>> 
>>>>> Best regards,
>>>>> 
>>>>> Mirja and Brian
>>>>> 
>>>>> [1] Kuehlewind, M., Neuner, S., and Trammell, B., "On the state of
>>>>> ECN and TCP Options on the Internet", in Proceedings of the the 2013
>>>>> Passive and Active Measurement Conference, Hong Kong SAR, China, 19
>>> March 2013.
>>>>> 
>>>>> Begin forwarded message:
>>>>> 
>>>>>> From: internet-drafts@ietf.org
>>>>>> Subject: New Version Notification for
>>>>>> draft-kuehlewind-tcpm-ecn-fallback-00.txt
>>>>>> Date: 3 July 2013 17:40:32 GMT+02:00
>>>>>> To: Mirja Kuehlewind <mirja.kuehlewind@ikr.uni-stuttgart.de>, Brian
>>>>>> Trammell <trammell@tik.ee.ethz.ch>
>>>>>> 
>>>>>> 
>>>>>> A new version of I-D, draft-kuehlewind-tcpm-ecn-fallback-00.txt
>>>>>> has been successfully submitted by Mirja Kuehlewind and posted to
>>>>>> the IETF repository.
>>>>>> 
>>>>>> Filename:	 draft-kuehlewind-tcpm-ecn-fallback
>>>>>> Revision:	 00
>>>>>> Title:		 A Mechanism for ECN Path Probing and Fallback
>>>>>> Creation date:	 2013-07-02
>>>>>> Group:		 Individual Submission
>>>>>> Number of pages: 5
>>>>>> URL:             http://www.ietf.org/internet-drafts/draft-kuehlewind-
>>>>> tcpm-ecn-fallback-00.txt
>>>>>> Status:          http://datatracker.ietf.org/doc/draft-kuehlewind-
>>> tcpm-
>>>>> ecn-fallback
>>>>>> Htmlized:        http://tools.ietf.org/html/draft-kuehlewind-tcpm-ecn-
>>>>> fallback-00
>>>>>> 
>>>>>> 
>>>>>> Abstract:
>>>>>> Explicit Congestion Notification (ECN) is a TCP/IP extension that
>>>>>> is  widely implemented but hardly used due to the perceived
>>>>>> unusablilty  of ECN on many paths through the Internet caused by
>>>>>> ECN-ignorant  routers and middleboxes.  This document specifies an
>>>>>> ECN probing and  fall-back mechanism in case ECN has be successfully
>>>>>> negotiated  between two connection endpoints, but might not be
>>>>>> usable on the  path.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> The IETF Secretariat
>>>>> 
>>>>> _______________________________________________
>>>>> tcpm mailing list
>>>>> tcpm@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/tcpm
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm