Re: [tcpm] Vicious or Virtuous circle? Adapting reordering window to reordering degree

Bob Briscoe <ietf@bobbriscoe.net> Wed, 28 March 2018 22:53 UTC

Return-Path: <ietf@bobbriscoe.net>
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 D984E127867 for <tcpm@ietfa.amsl.com>; Wed, 28 Mar 2018 15:53:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 VrX6IA2tMU_T for <tcpm@ietfa.amsl.com>; Wed, 28 Mar 2018 15:52:58 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (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 04DF7124234 for <tcpm@ietf.org>; Wed, 28 Mar 2018 15:52:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=hP6rVrIR566WMFs5nLTaJ4gmgoLRskT5CvptRxaQ/RI=; b=OJQI9XdwuDklX8uMI2GrmDBix i3Kj1Nd3YZQYhCKOtZjjuxk7KEuSIuzzAH+I6BVp8oh5HBoMwaTC7Iydx9F1iDw1+G8eaP5C9jEL1 K40dipcfYUnP0MpMJ7YT82xHH2EDObrNyOJj2VjgYILjo3K1ACmx9DHnXhE86krbFMRxZV6hIhaXP n4y1uGsaYw47RIGj9D2EKUznzyC4cr0y0uSKfkiHB2u/5wVvl8xzzh16GF6OmR64CS3hfgnznQ1i9 a2VGI8z0i61sP/4ZOD8oPulA0+yJUL28K1UY+lJ7MhFQ2v6uMcmOV9F1r2Nfw/ia8Dl2hL1ltuWIn t5oz5UxBQ==;
Received: from host-79-78-166-168.static.as9105.net ([79.78.166.168]:37276 helo=[192.168.2.6]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89_1) (envelope-from <ietf@bobbriscoe.net>) id 1f1Jw6-0002D2-8y; Wed, 28 Mar 2018 23:52:54 +0100
To: Yuchung Cheng <ycheng@google.com>, Praveen Balasubramanian <pravb@microsoft.com>
Cc: Olivier Bonaventure <olivier.bonaventure@tessares.net>, "tcpm@ietf.org" <tcpm@ietf.org>, "draft-ietf-tcpm-rack@tools.ietf.org" <draft-ietf-tcpm-rack@tools.ietf.org>
References: <152029151070.12715.15497200993114582811@ietfa.amsl.com> <c45b807e-8076-71fd-28ea-861db62c9bbd@bobbriscoe.net> <284E217A-4A12-4EC1-A9C6-52B6FFF67FFD@tessares.net> <CY4PR21MB0630B185DB997C389EEF1810B6AD0@CY4PR21MB0630.namprd21.prod.outlook.com> <CAK6E8=e1umb31yT4MFYZivM_fgg+BkWsJhOp4etWDz+_T1=csg@mail.gmail.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <e2d34b18-d8a6-9cdc-50b0-0a1a83914ba6@bobbriscoe.net>
Date: Wed, 28 Mar 2018 23:52:53 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <CAK6E8=e1umb31yT4MFYZivM_fgg+BkWsJhOp4etWDz+_T1=csg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------92C6B89A11D5DA889D8710A6"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/aetA74NFfxL8E8DyQWWXWtLRkt0>
Subject: Re: [tcpm] Vicious or Virtuous circle? Adapting reordering window to reordering degree
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.22
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: <https://mailarchive.ietf.org/arch/browse/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: Wed, 28 Mar 2018 22:53:01 -0000

Yuchung,

On 26/03/18 17:15, Yuchung Cheng wrote:
> There are two action items
> 1) clarify the reo_wnd policy further

At present the draft largely just states the algo without much 
rationale. Now I understand the DSACK-based algo, I have realized it 
contains subtleties that I try to articulate below (pls use as text if 
you want).

Correct me if I'm wrong, but over the years I have detected a (perhaps 
unstated) presumption from some in the TCP community that their aim is 
to eliminate all spurious retransmissions. The DSACK algo doesn't fall 
into that trap, but superficially it looks as if it does.

The subtle part is that it starts off with the 3 DUPACK rule {Note 1}, 
then grows the reordering window from there as long as at least one 
{Note 2} spurious retransmission per RTT is detected. So, for short 
flows (or the beginning of long flows), even if the degree of reordering 
is high:

  * losses will be repaired fast, which is important for short-flow latency
  * and spurious retransmissions will be tolerated, which is OK for a
    few RTTs

If a flow lasts longer, and if the reordering degree is high, the 
reordering window will grow, so:

  * losses will take longer to repair, which is not such a concern for
    elephants {Note 3}
  * spurious retransmissions will be reduced, because the bandwidth
    efficiency of elephants dominates overall bandwidth efficiency.

I think it's important for the draft to explain that it deliberately 
starts by tolerating more spurious retransmissions to keep repair delay 
low for short flows. IOW, it would not be entirely appropriate to cache 
the reordering window learned from prior connections over the same path.

Cheers


Bob

{Note 1}: Alternative initial rules
This could be replaced with a duration in units of time, e.g. SRTT/4, 
but I understand that you wanted to start with traditional behaviour, so 
as not to trigger intrusion detection systems or protocol compliance 
checkers that might punish non-traditional behaviour.

{Note 2}: At least one?
Rather than counting the existence of at least one spurious 
retransmission per RTT, I think it would be preferable to count their 
extent. Then the algo would be collecting the metrics it needs to trade 
off a residual rate of spurious retransmissions against longer delay to 
repair losses. Instead, it keeps on extending the reordering window in 
response to even one spurious retransmission per RTT, whatever the cost 
in delayed loss-recovery (up to the arbitrary hard limit of 1 SRTT).

{Note 3}: Not all elephants are the same.
If an elephant is a single bulk file download, the delay repairing 
losses has negligible effect on performance. However, what looks like an 
elephant from the outside might actually by numerous multiplexed small 
streams (e.g. http2). Then delay repairing losses remains significant, 
potentially holding back a small object with potential collateral damage 
to latency delivering other objects stuck behind the loss (HoL 
blocking). Conclusion: TCP still needs to trade off delay repairing 
losses against spurious retransmissions, even for elephants.


-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/