Re: [multipathtcp] LISA - Linked Slow-Start for MPTCP => ICCRG

Michael Welzl <michawe@ifi.uio.no> Wed, 16 November 2016 05:50 UTC

Return-Path: <michawe@ifi.uio.no>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0FFF2129697 for <multipathtcp@ietfa.amsl.com>; Tue, 15 Nov 2016 21:50:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.696
X-Spam-Level:
X-Spam-Status: No, score=-5.696 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.497] autolearn=unavailable autolearn_force=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 1GIoQzaDo2GN for <multipathtcp@ietfa.amsl.com>; Tue, 15 Nov 2016 21:49:57 -0800 (PST)
Received: from mail-out01.uio.no (mail-out01.uio.no [IPv6:2001:700:100:10::50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C592112968C for <multipathtcp@ietf.org>; Tue, 15 Nov 2016 21:49:56 -0800 (PST)
Received: from mail-mx1.uio.no ([129.240.10.29]) by mail-out01.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1c6t6Z-0002gX-5l for multipathtcp@ietf.org; Wed, 16 Nov 2016 06:49:55 +0100
Received: from dhcp-8409.meeting.ietf.org ([31.133.132.9]) by mail-mx1.uio.no with esmtpsa (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) user michawe (Exim 4.80) (envelope-from <michawe@ifi.uio.no>) id 1c6t6W-00077N-Uy; Wed, 16 Nov 2016 06:49:55 +0100
From: Michael Welzl <michawe@ifi.uio.no>
Message-Id: <D8A859A5-3298-4A80-AB20-6CBA5AB0213E@ifi.uio.no>
Content-Type: multipart/alternative; boundary="Apple-Mail=_064DC8B2-449D-4F15-A57D-8F8F1AD7E1EA"
Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\))
Date: Wed, 16 Nov 2016 14:49:46 +0900
In-Reply-To: <CAO249yfA_h3tksS_K204ZTuYx1NiUXjf2HD47Jb2y6VWcn4NSA@mail.gmail.com>
To: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>
References: <7A111AD3-3E4C-43D1-999A-F383428103AC@ifi.uio.no> <CAO249yfA_h3tksS_K204ZTuYx1NiUXjf2HD47Jb2y6VWcn4NSA@mail.gmail.com>
X-Mailer: Apple Mail (2.3251)
X-UiO-SPF-Received:
X-UiO-Ratelimit-Test: rcpts/h 3 msgs/h 1 sum rcpts/h 4 sum msgs/h 2 total rcpts 48819 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: CDCA9FBA9A2288A9141FA649B17E375F2E74FD1F
X-UiO-SPAM-Test: remote_host: 31.133.132.9 spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 23 max/h 6 blacklist 0 greylist 0 ratelimit 0
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/r611_Mba7lKlrLYLzEye-CzcVzw>
Cc: multipathtcp <multipathtcp@ietf.org>, iccrg@irtf.org
Subject: Re: [multipathtcp] LISA - Linked Slow-Start for MPTCP => ICCRG
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/multipathtcp/>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Nov 2016 05:50:01 -0000

Hi Yoshi!

Thanks a lot for asking!  I don’t think it’s a naive question at all.

*** DISCLAIMER START ***

I’ll preface my answer with a disclaimer: we focus our evaluations on the non-shared bottleneck case because it’s the worst case - when paths DO share a bottleneck, uncoupled Slow Start in MPTCP breaks goal 2 laid out in RFC 6356 (“do no harm”), and that should be reason enough to fix it.
So, by looking at the impact on Flow Completion Time (FCT) in the non-shared bottleneck case, we’re really not very fair towards ourselves. If the impact on FCT isn’t too bad then that’s in fact already a super good result. I want folks to understand that   :-)

Also, just as a reminder for everyone, slides and a paper with many results and explanations are at: http://heim.ifi.uio.no/runabk/lisa/

*** DISCLAIMER END ***


With this out of the way, let me try to answer your question.

At a high (simplistic) level, your question is a bit similar to asking “why doesn’t Cubic’s HyStart hurt?” - like LISA, it makes slow start less aggressive, and that leads to benefits.

The similarities stop there  :-)    HyStart attenuates SS much, much more (actually LISA doesn’t "attenuate SS" but tries to turn SS+number_of_subflows*IW into SS on the wire, and it only operates once, very briefly, not from a certain point until the end of SS). HyStart tries to persistently get a benefit by attenuating SS at just the right time based on delay measurements, whereas LISA does it temporarily after a fixed number of round-trips. So, as a result, whether LISA yields a benefit in the non-shared bottleneck case is pretty much a matter of luck. But the bottom line is: making SS a little aggressive can, by itself, sometimes be a good thing. At least it doesn’t seem to be a very bad thing.

At a finer-grain level, things may get a bit clearer when we look at an example.

Consider 2 subflows, with IW 10 and equal RTTs (just to keep things simple). The first subflow has cwnd=10, then 20, then 40. In the round where it reaches 40, the second subflow is started with IW=10. If you look at the diagram on page 4 of the slides I showed yesterday (sorry, I didn’t have time to explain that diagram in my presentation), you can see it - look for the point where y=40 and x=approx. 0.3:  https://www.ietf.org/proceedings/97/slides/slides-97-iccrg-update-on-lisa-a-linked-slow-start-algorithm-for-mptcp-draft-barik-mptcp-lisa-01-00.pdf

So what you get is, without LISA:
flow 1, on path 1: cwnd = 10, 20, 40, 80, 160…
flow 2, on path 2: cwnd = X, X, 10, 20, 40…

and with LISA:
flow 1, on path 1: cwnd = 10, 20, 30, 60, 120…
flow 2, on path 2: cwnd = X, X, 10, 20, 40…

(“X" meaning “not active yet”)

So, for better or worse, with LISA, the burst size is different when flow 1 (probably the first) exceeds the capacity limit. This influences the amount of overshoot (which otherwise depends on the queue size and the BDP).
How good or bad different amounts of overshoot play out, depends on… well…  the queue length; the back off factor (e.g. better with Cubic than Reno; generally of course best with ECN+ABE   ;-)   ); the presence of TLP; ...

So it’s just not persistently a bad thing to reduce this burst size - unless, of course, your flows have just the right length for them to terminate early enough so that the reduced aggression yields an extra round-trip. That’s also a narrow range, the flow size must be greater than 10+20+40 packets for LISA to even kick in, but not large enough to exceed the bandwidth limit because then we’re back with this more random outcome described above.

Does that help?  Clearly it’s not simple … the non-linear impact of this SS burst reduction on the overshoot and, with it, the cwnd size immediately after slow start can be seen on slide 8 of the slides from yesterday - same short URL again:
https://www.ietf.org/proceedings/97/slides/slides-97-iccrg-update-on-lisa-a-linked-slow-start-algorithm-for-mptcp-draft-barik-mptcp-lisa-01-00.pdf <https://www.ietf.org/proceedings/97/slides/slides-97-iccrg-update-on-lisa-a-linked-slow-start-algorithm-for-mptcp-draft-barik-mptcp-lisa-01-00.pdf>

E.g. in this case, LISA strictly only made things better in the range where the queue length was between approx 8 and 20: the cwnd at the end was a bit higher, and that coincides with less retransmissions.

I hope that helps?

Cheers,
Michael



> On Nov 16, 2016, at 12:11 AM, Yoshifumi Nishida <nishida@sfc.wide.ad.jp> wrote:
> 
> Hello,
> I've tried to ask a naive question at the meeting, but I missed the
> chance due to time restriction..
> 
> If the paths don't share a bottleneck, i am guessing it might be too
> conservative especially when the paths are not competed with other
> flows.
> I am wondering why this is slightly conservative and doesn't hurt.
> Some cases should be true, but I just thought some cases are not.
> --
> Yoshi
> 
> On Mon, Sep 26, 2016 at 12:40 AM, Michael Welzl <michawe@ifi.uio.no> wrote:
>> Dear all,
>> 
>> LISA is a simple algorithm that couples MPTCP subflows in slow-start, to reduce bursts that happen when multiple sub-flows start up with a delay and all send their IW, all in SS.
>> We found this effect to be generally bad (i.e., improved with LISA :-) ) when subflows do share a bottleneck, and we find that this slightly more conservative behavior also doesn't hurt (actually, sometimes it's a benefit) when they do *not* share a bottleneck. After all, slow-start is very aggressive anyway - is it really so important for the 2nd, 3rd... subflow of MPTCP to be  *that* aggressive?
>> 
>> We presented it to MPTCP at the last IETF, and in Yokohama.
>> There's a draft: https://tools.ietf.org/html/draft-barik-mptcp-lisa-01
>> and a page with slides, a published paper with results, and code:  http://heim.ifi.uio.no/runabk/lisa/
>> 
>> The way ahead, as agreed with the MPTCP chairs, is to either publish via MPTCP if their future charter will allow, or else publish this via ICCRG.
>> Either way, for now, discussion of this draft should happen in the ICCRG mailing list. We authors would greatly appreciate feedback - so far, we didn't get many comments!
>> 
>> Cheers,
>> Michael (with Runa & Simone)
>> 
>> _______________________________________________
>> multipathtcp mailing list
>> multipathtcp@ietf.org
>> https://www.ietf.org/mailman/listinfo/multipathtcp