Re: [ledbat] Another uTP story by alarmist author

Richard Bennett <richard@bennett.com> Fri, 05 December 2008 21:10 UTC

Return-Path: <ledbat-bounces@ietf.org>
X-Original-To: tana-archive@ietf.org
Delivered-To: ietfarch-tana-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 293BA3A6B91; Fri, 5 Dec 2008 13:10:15 -0800 (PST)
X-Original-To: ledbat@core3.amsl.com
Delivered-To: ledbat@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C638B3A6B2F for <ledbat@core3.amsl.com>; Fri, 5 Dec 2008 13:10:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.264
X-Spam-Level:
X-Spam-Status: No, score=-2.264 tagged_above=-999 required=5 tests=[AWL=0.001, BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N66B4McZY5xD for <ledbat@core3.amsl.com>; Fri, 5 Dec 2008 13:10:12 -0800 (PST)
Received: from outbound-mail-144.bluehost.com (outbound-mail-144.bluehost.com [67.222.38.34]) by core3.amsl.com (Postfix) with SMTP id 4E36D3A6B7D for <ledbat@ietf.org>; Fri, 5 Dec 2008 13:10:12 -0800 (PST)
Received: (qmail 12162 invoked by uid 0); 5 Dec 2008 21:09:42 -0000
Received: from unknown (HELO host46.hostmonster.com) (74.220.202.46) by outboundproxy5.bluehost.com with SMTP; 5 Dec 2008 21:09:42 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=bennett.com; h=Received:Message-ID:Date:From:Organization:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding:X-Identified-User; b=d0whlAQJeQbrSNpqnrRlx/J/4zX9tVvKJzTzZf8o1F0vAIyv8mmocxVn/DFcoJDJku170+jvQekZReutjxcFsJJfTqYas6+7oSmeq23/DKzcfmshIS8fRhi4bUwt7aDq;
Received: from adsl-69-106-246-149.dsl.pltn13.pacbell.net ([69.106.246.149] helo=[192.168.1.4]) by host46.hostmonster.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <richard@bennett.com>) id 1L8hw4-0003wx-93; Fri, 05 Dec 2008 14:10:04 -0700
Message-ID: <493998AD.8070001@bennett.com>
Date: Fri, 05 Dec 2008 13:10:05 -0800
From: Richard Bennett <richard@bennett.com>
Organization: Network Strategies
User-Agent: Thunderbird 2.0.0.18 (X11/20081119)
MIME-Version: 1.0
To: Nicholas Weaver <nweaver@ICSI.Berkeley.EDU>
References: <34F38819-7926-4659-952B-3059B2B45C56@icsi.berkeley.edu> <50FCE54A-9524-4193-BBA6-6D60FB58FBBC@nokia.com> <D6741F6B-5392-4A12-984D-AFEEA3FB8EBE@shlang.com> <b98e548c0812020127i2f6ebaefqc71457e990b3072b@mail.gmail.com> <49398658.2020007@bennett.com> <EE529CB6-C2DF-4092-8552-85717447B8F5@icsi.berkeley.edu>
In-Reply-To: <EE529CB6-C2DF-4092-8552-85717447B8F5@icsi.berkeley.edu>
X-Identified-User: {842:host46.hostmonster.com:bennett1:bennett.com} {sentby:smtp auth 69.106.246.149 authed with richard@bennett.com}
Cc: ledbat@ietf.org
Subject: Re: [ledbat] Another uTP story by alarmist author
X-BeenThere: ledbat@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Mailing list of the LEDBAT WG <ledbat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ledbat>, <mailto:ledbat-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/ledbat>
List-Post: <mailto:ledbat@ietf.org>
List-Help: <mailto:ledbat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ledbat>, <mailto:ledbat-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="windows-1252"; Format="flowed"
Sender: ledbat-bounces@ietf.org
Errors-To: ledbat-bounces@ietf.org

That's a nice analysis of TCP congestion-avoidance mechanisms, Nick, but 
I'm not sure it's any more accurate than my simplification for the mass 
audience. I don't argue that a scavenger class isn't needed, I simply 
express my skepticism for some of the claims that have been made for the 
uTP approach. As you point out, TCP implementations have a number of 
tweaks and variations for congestion avoidance, many of them RTT-based, 
so it's not correct to say that TCP just waits for packet drop to slow 
down. TCP over ECN certainly doesn't, but I've written about that in the 
press previously.

The main concern I have about the uTP approach is that the system is 
simply an endpoint implementation, and endpoints don't have all the 
information about the status is ES-IS and IS-IS links they need for 
assessing a path. A single-product hack has to go on the information it 
has, but an IETF standard can take a larger focus and combine feedback 
from the infrastructure with path selection to get a better answer. As 
you point out, delay measurements are jitter-prone, and after smoothing 
it's not clear that they're any better than AIMD. Latency is also not a 
constant for a flow.

A secondary concern is the likelihood of false positives in path 
selection due to the inability of legacy traffic shapers to deal with 
UDP correctly, especially when the payload is obfuscated.

And the third concern is to effect on flow optimizers, routers, and NATs 
of P2P streams moving around much faster than they do today, and of P2P 
streams growing in number relative to existing practice because they're 
probing more paths. These things all impact the infrastructure.

But thanks again for your assessment of Compound TCP.

RB

Nicholas Weaver wrote:
> Unfortunately there are continued errors in your article.
>
>
>
> On Dec 5, 2008, at 11:51 AM, Richard Bennett wrote:
>>
>> Morris also told the media this week that TCP only reduces its 
>> sending rate in response to packet loss, a common but erroneous 
>> belief. Like uTP, Microsoft’s Compound TCP begins to slow down when 
>> it detects latency increases. Even though TCP is capable of being 
>> just as polite as BitTorrent wants uTP to be, the fact that it hides 
>> its delay measurements from applications makes it troublesome for P2P 
>> clients with many paths to choose from. But it’s sensible to explore 
>> alternatives to TCP, as we’ve said on these pages many times, and 
>> we’re glad BitTorrent finally agrees.
>>
>
> And Compound TCP is the exact opposite requirements as uTP, the goal 
> is something which is NOT outcompeted by AIMD, if I'm groking the 
> description correctly.  Compound-TCP uses a sum-of-windows method, an 
> AIMD window and a delay-based window.
>
> uTP is a "Minimum of AIMD/delay based" window sizing algorithm.
>
> The implications are huge.
>
>
> Compound TCP is designed to get the delay-based behavior on very fast, 
> high latency networks, where even a very small loss rate introduces 
> very bad behavior to AIMD based congestion control and, in the absence 
> of congestion, an AIMD based sender would back off and not utilize the 
> link.
>
> Yet by using a sum-of-window with a second AIMD based window, it is 
> fully competitive with TCP flows.  This is actually more agressive 
> than conventional AIMD, except that the delay-based window gets 
> outcompeted by other AIMD flows, so it becomes effectively AIMD based 
> in terms of agressiveness.
>
> Thus under competition, Compound TCP can be considered AT LEAST 
> AIMD-only for fairness/agressiveness, because it uses the sum of the 
> two windows so the AIMD window will compete like any other flow and 
> (hopefully) the delay-based window will go to 0.
>
> Thus Compound TCP does NOT back off earlier.  In fact, the feature is 
> that it does NOT back off on a packet drop if it is on a high 
> bandwidth, high latency network!
>
>
> uTP, by being a "Minimum of two window" algorithm, is the opposite, as 
> it is AT MOST AIMD-only for fairness/agressiveness, precisely because 
> it takes advantage of the side effect of delay based congestion 
> control: it backs off earlier than AIMD-based flows so it gets starved 
> out by AIMD-based flows (hopefully).
>
>
> In almost all other TCP applications, the starvation problem faced by 
> delay-based window sizing is a problem.  For a scavenger-class 
> protocol like uTP, it is potentially a feature.
>
> Thus all TCP stacks are AT LEAST AIMD-aggressive, including Compound 
> TCP, as it uses delay-based metrics to have the exact opposite 
> behavior: attempting to grab more bandwidth in conditions where 
> AIMD-based systems fail.  Because any TCP stack that is not AT LEAST 
> AIMD-aggressive is going to face starvation under congestion.
>
>
>
> The open question is "how much friendlier" is (min(AIMD, delay based)) 
> in practice.
>
> Delay-based measurements are notoriously noisy and jitter prone, so it 
> may very well become "just AIMD" in terms of ISP congestion behavior, 
> which means it isn't more aggressive than TCP but isn't less 
> aggressive, thus it isn't a real scavenger-class service.
>
>
> And this isn't about replacing TCP, its about alternate congestion 
> control algorithms which are friendlier than AIMD (TCP Reno).
>
> The window sizing algorithms from uTP could just as easily be an 
> option in a TCP stack (and I've argued it should be a single-sided 
> option: one side of a TCP stack should be able to control both sending 
> and receiving windows in this manner).
>
> And its really just observing that "Not all flows are really equal 
> under congestion", so if you can designate a flow as "less important", 
> you get better aggregate behavior, and because you have some points of 
> congestion (eg, the user's uplink) where only the individual user 
> experiences it, there are incentives for applications to actually use 
> such a property.
>
>

-- 
Richard Bennett

_______________________________________________
ledbat mailing list
ledbat@ietf.org
https://www.ietf.org/mailman/listinfo/ledbat