Re: [tcpm] last_max in CUBIC

Nicolas Kuhn <nicolas.kuhn@telecom-bretagne.eu> Fri, 24 April 2015 08:08 UTC

Return-Path: <nicolas.kuhn@telecom-bretagne.eu>
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 771E21B35A3 for <tcpm@ietfa.amsl.com>; Fri, 24 Apr 2015 01:08:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level:
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
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 W3fUPnatXSEz for <tcpm@ietfa.amsl.com>; Fri, 24 Apr 2015 01:08:00 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 03DC61B359E for <tcpm@ietf.org>; Fri, 24 Apr 2015 01:07:26 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 070BE23226B; Fri, 24 Apr 2015 10:07:25 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id pCB5_ftPEpsf; Fri, 24 Apr 2015 10:07:24 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 024B123226D; Fri, 24 Apr 2015 10:07:24 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id v1kiPTzonCcN; Fri, 24 Apr 2015 10:07:23 +0200 (CEST)
Received: from [10.101.5.253] (sjombord-3.ictservices.se [188.121.67.51]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 2AEF723226B; Fri, 24 Apr 2015 10:07:23 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_2C765C06-A515-4210-BA23-9D42BE0F06CD"
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Nicolas Kuhn <nicolas.kuhn@telecom-bretagne.eu>
In-Reply-To: <CADVnQy=UNxuGVfDPm3zNHj1F_3p4FMTvWxN37G_sgtKzquBf=w@mail.gmail.com>
Date: Fri, 24 Apr 2015 10:07:21 +0200
Message-Id: <F111EA2F-EB4E-4CC6-9E90-995A2C918CDB@telecom-bretagne.eu>
References: <EA2D4071-0A9F-4951-B38B-D8FE23B6A86F@telecom-bretagne.eu> <CADVnQy=UNxuGVfDPm3zNHj1F_3p4FMTvWxN37G_sgtKzquBf=w@mail.gmail.com>
To: Neal Cardwell <ncardwell@google.com>
X-Mailer: Apple Mail (2.1990.1)
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/7npiOHc9TeHfMzpqh4NvaOZI_gg>
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] last_max in CUBIC
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: Fri, 24 Apr 2015 08:08:02 -0000

> On 23 Apr 2015, at 21:58, Neal Cardwell <ncardwell@google.com> wrote:
> 
> On Thu, Apr 23, 2015 at 12:22 PM, Nicolas Kuhn
> <nicolas.kuhn@telecom-bretagne.eu <mailto:nicolas.kuhn@telecom-bretagne.eu>> wrote:
>> Hi all,
>> 
>> We were currently working on CUBIC and LEDBAT in NS-2, using Michael Welzl’s
>> updated TCP Linux for NS-2
>> [http://www.ietf.org/mail-archive/web/iccrg/current/msg01160.html].
>> We see some strange behaviour in CUBIC’s window reduction, which we wanted
>> to share with you here.
>> 
>> — Topology —
>> 
>> The topology is a simple dumbbell topology with a bottleneck of 10Mbps and
>> an RTT of 100ms. The queue size of the router is set
>> to 42 packets (with DropTail). There are two non-application limited bulk
>> flows that randomly start within the first second of the simulation.
>> Flow#1 is CUBIC (using ns-2.35/tcp/src/tcp_cubic.c version);
>> Flow#2 is LEDBAT with a target delay of 5 ms or 25ms.
>> 
>> — Problem illustration —
>> 
>> In cwnd_case_1_default.pdf and cwnd_case_2_default.pdf, we plot the
>> congestion window evaluation and the
>> “new last_max_cwnd”, that is the W_last_max in the CUBIC draft
>> [https://datatracker.ietf.org/doc/draft-zimmermann-tcpm-cubic].
>> 
>> 
>> 
>> We recall here how CUBIC deals with fast convergence:
>> 
>>      if (W_max < W_last_max){
>>          W_last_max = W_max;
>>          W_max = W_max*(2-beta)/2;
>>      } else {
>>          W_last_max = W_max
>>      }
>> 
>> In the case with LEDBAT25, at 15s, W_last_max “should” have been reduced,
> 
> Can you explain why you feel that in the case with LEDBAT25, at 15s,
> W_last_max should have been reduced?
> 
> AFAICT, in the LEDBAT25 case with the existing CUBIC code
> (cwnd_case_2_default.pdf) the CUBIC behavior is reasonable. From 15s
> to 50s CUBIC finds that it is able to get cwnd up all the way to the
> max value from the previous epoch before another loss happens. That
> suggests that there are no other competing flows, and the situation is
> stable, so it is reasonable to try to make cwnd quickly plateau at the
> same level in the next epoch, rather than some lower level.
> 
> Can you summarize why this seems problematic?
> 

It may be a simulation artefact (would not happen much in real life), and I do 
not believe that it would be somehow problematic; CUBIC is very aggressive
anyway - reducing its aggressiveness in such corner cases is not “needed”. 

I just wanted to point out that this “strange” behaviour can be assessed by 
changing 
      if (W_max < W_last_max){   
by 
      if (W_max <= W_last_max){   

and that it might have a slight impact on the fairness of CUBIC with latecomer 
flows. 

Nicolas 

> neal