Re: [tcpm] A review of draft-ietf-tcpm-rack-10

Yuchung Cheng <ycheng@google.com> Mon, 21 September 2020 21:53 UTC

Return-Path: <ycheng@google.com>
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 C888F3A0AE7 for <tcpm@ietfa.amsl.com>; Mon, 21 Sep 2020 14:53:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.6
X-Spam-Level:
X-Spam-Status: No, score=-17.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 jAEBtheY8mvl for <tcpm@ietfa.amsl.com>; Mon, 21 Sep 2020 14:53:33 -0700 (PDT)
Received: from mail-ua1-x92a.google.com (mail-ua1-x92a.google.com [IPv6:2607:f8b0:4864:20::92a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 15AC13A0AE9 for <tcpm@ietf.org>; Mon, 21 Sep 2020 14:53:32 -0700 (PDT)
Received: by mail-ua1-x92a.google.com with SMTP id q26so4813282uaa.12 for <tcpm@ietf.org>; Mon, 21 Sep 2020 14:53:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=TB+3L4PbyYkqRz1eKqdBQzzuOnSrqf9bZcdh6cedYLA=; b=flW+4Br1Rfl+IKnJgukLSWdEmMnoNlU7aHfeoAXrq2svEmLLdSqfbHgjMEU6ZacHh7 E/P1Ws+JSyE6ElYFrsUNs60YQGHNC/FHKWBxjdzMDRzHmeLbGX6OwlQMAq+kxhEtVzQS 62svY+8CzrLem3/EVOqCOBhOrHIbvUZPIcv47WIW2W8CifDRn+qhOknHkCzmn3FwUHdS hfg8ogyeYEKdSN8b6N/FRgdfqp/KRaQsOsg5vKG4PkCQ64NShJU5lHOA153NSqJLefYG 48sRDbd+QENRKDA1UyzpyZCKpxTAFX+t1sD16inl0Mphj02s12AHEMcE74BwFKVceBBJ EQbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=TB+3L4PbyYkqRz1eKqdBQzzuOnSrqf9bZcdh6cedYLA=; b=hXeOhZBizTE1V3yfc0/S8+rLmTDaJR6Rp7JTFvrYaBx8e936FRujqk7WCBV4dDQK8W rtjs2GSnYguejDoehIlht9VqSNTnaoh7WdBg1jA5Exs4EdcFA/eIFmgCBV3YCtb4NCjt Bc6eljXAqKxPpuo4PVOMf8aT4ecDTIpWAbBdpJQHyluyfWIhqUyVYHCbPL4dkRvYCCQN NwppSt63/xyJvdZPBiXaPsbnEAhXQtXWVZwNPnW15v+oU6iuQWFgREhQPuqG73t8j8b0 za2lcfMVZeDsBNETkbjJK+9bZS86kcK0uroyMuq+pQo48mmrkMdglsKFSbnBzT+77Ngo a6ZA==
X-Gm-Message-State: AOAM533Q7mr/XqEXtglAFtO+23hu1K7an4fkXSUaonGNn+2WQDm9Yn+I R3EWwqBpWLoL+Jj0R/rHW77SYT/5y7qarUAQHcn6ikGeqt56mw==
X-Google-Smtp-Source: ABdhPJwvWuQVMNUnXpJJCsHZQVHfB8ov7lgqOk9xwJ6fB1UkOkClr1Edw08aR/DDWgJsDx+88S5sUOCk7Mk/T97s+bg=
X-Received: by 2002:ab0:145:: with SMTP id 63mr1419026uak.83.1600725211563; Mon, 21 Sep 2020 14:53:31 -0700 (PDT)
MIME-Version: 1.0
References: <BN8PR00MB0865B2186EA60FE71BA6CBC9C33A1@BN8PR00MB0865.namprd00.prod.outlook.com>
In-Reply-To: <BN8PR00MB0865B2186EA60FE71BA6CBC9C33A1@BN8PR00MB0865.namprd00.prod.outlook.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Mon, 21 Sep 2020 14:52:55 -0700
Message-ID: <CAK6E8=cUx56R1-By+4GbJsMtjsi+geJwH1PPwH=8A4Tbv=khDg@mail.gmail.com>
To: Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org>
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/JePKwnHAreJZ7mlRF2vYVojKbRU>
Subject: Re: [tcpm] A review of draft-ietf-tcpm-rack-10
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 21 Sep 2020 21:53:35 -0000

On Sun, Sep 20, 2020 at 6:16 PM Yi Huang
<huanyi=40microsoft.com@dmarc.ietf.org> wrote:
>
> Hi,
>
> I reviewed the latest version of RACK-TLP draft and have a few comments/questions.
>
> 1. In section 5.1, "Segment.retransmitted is true if it was retransmitted in the most recent transmission."
> There are also pseudo-code explaining how retransmitted flag is set. AFAICT, retransmitted is set if the segment is ever retransmitted since the flag is never reset. Is this variable supposed to mean ever retransmitted?
Thanks for catching that. Segment.retransmitted MUST be reset upon a
(re)transmission so it does not ever-retransmitted (i.e. it's only
meant for the very last transmission)

   RACK_transmit_data(Segment):
           Segment.xmit_ts = Now()
           Segment.lost = FALSE
           Segment.retransmitted = FALSE

   RACK_retransmit_data(Segment):
           RACK_transmit_data(Segment)
           Segment.retransmitted = TRUE


>
> 2. In section 6.2, p14,
> "   If the sender has not yet observed any reordering based on the
>    previous step, then RACK prioritizes quick loss recovery by using
>    setting RACK.reo_wnd to 0 when the number of SACKed segments exceeds
>    DupThresh, or during loss recovery.
>
>    Aside from those special conditions, RACK starts with a conservative
>    reordering window of RACK.min_RTT/4.  This value was chosen because
>    Linux TCP used the same factor in its implementation to delay Early
>    Retransmit [RFC5827] to reduce spurious loss detections in the
>    presence of reordering, and experience showed this worked reasonably
>    well [DMCG11]."
>
> If I understand this correctly, if no reordering observed, TCP should still enter loss recovery when DupACK >= DupThresh (RFC6675). If reordering has been seen, this RFC6675 rule is not honored and TCP only enters loss recovery when RACK detects loss? I think it would be great to clarify this in the spec.

Your understanding is correct. will this text revision improves clarity"
""
If no reordering has been observed based on the previous step, the
sender enters Fast Recovery when the number of SACKed segments exceeds
DupThresh (similar to RFC6675). The RACK.reo_wnd is set to 0 both upon
entering and during the loss recovery.

Otherwise if some reordering has been observed, RACK does not honor
RFC6675 rule and starts with a conservative RACK.reo_wnd of
RACK.min_RTT/4. This .... reasonably well [DMCG11].
""

> "   If the sender has not yet observed any reordering based on the
>    previous step, then RACK prioritizes quick loss recovery by using
>    setting RACK.reo_wnd to 0 when the number of SACKed segments exceeds
>    DupThresh, or during loss recovery.
>
>    Aside from those special conditions, RACK starts with a conservative
>    reordering window of RACK.min_RTT/4.  This value was chosen because
>    Linux TCP used the same factor in its implementation to delay Early
>    Retransmit [RFC5827] to reduce spurious loss detections in the
>    presence of reordering, and experience showed this worked reasonably
>    well [DMCG11]."
>
> 3. [NIT] In section 8, " Zero window probe (ZWP) timer" -> "Zero Window Probe (ZWP) timer".
will fix thanks
>
> Thanks,
>
> Yi
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm