Re: [quicwg/base-drafts] Recovery uses both time and packet thresholds (#1974)
janaiyengar <notifications@github.com> Mon, 12 November 2018 11:50 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B9DFE130DFB for <quic-issues@ietfa.amsl.com>; Mon, 12 Nov 2018 03:50:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.47
X-Spam-Level:
X-Spam-Status: No, score=-8.47 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 TQYLb1ls9dco for <quic-issues@ietfa.amsl.com>; Mon, 12 Nov 2018 03:50:14 -0800 (PST)
Received: from out-5.smtp.github.com (out-5.smtp.github.com [192.30.252.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5A5AB130DC9 for <quic-issues@ietf.org>; Mon, 12 Nov 2018 03:50:14 -0800 (PST)
Date: Mon, 12 Nov 2018 03:50:13 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1542023413; bh=CHl/OaJN0btHXaoNYCRDfkEpYWclNs0N733DXNlN7Zk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=EfapDi4IVGxNsJonL959DzM3VIEvoFFPr3BasRQ6VCYsd+WZPPknmjUYwM0L5Lcic LFp95pkPKCSWFtofKJY+/lD/hBUwXV1/mio3hTF4e4zbfiwezCmBhrWugiIaWR+6W5 dnU1xSxox7hCcsgykot18vXaB0qa0Gyh3FgcDViE=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abf975d7d665e739297abe0ee6d2cf3c2e1b54bd6592cf0000000118012af592a169ce1684c1ce@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1974/review/173860472@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1974@github.com>
References: <quicwg/base-drafts/pull/1974@github.com>
Subject: Re: [quicwg/base-drafts] Recovery uses both time and packet thresholds (#1974)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5be968f553c79_50003fe4c54d45c4844755"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/EUsB9_VhyxuLJZtGROkGus20i3M>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Nov 2018 11:50:17 -0000
janaiyengar commented on this pull request. > ### Fast Retransmit An unacknowledged packet is marked as lost when an acknowledgment is received for a packet that was sent a threshold number of packets (kReorderingThreshold) -and/or a threshold amount of time after the unacknowledged packet. Receipt of -the acknowledgement indicates that a later packet was received, while the -reordering threshold provides some tolerance for reordering of packets in the -network. +or a threshold amount of time (kTimeReorderingFraction) after the how 'bout just kPacketThreshold and kTimeThreshold? The context makes clear what it's used for and exactly what the units are. > @@ -274,34 +274,14 @@ TCP-NCR {{?RFC4653}}, to improve QUIC's reordering resilience. Time threshold loss detection uses a time threshold to determine how much reordering to tolerate. In this document, the threshold is expressed as a fraction of an RTT, but implemenantations MAY experiment with absolute -thresholds. This may be used either as a replacement for a packet reordering -threshold or in addition to it. - -When a larger packet is acknowledged, if it was sent more than the threshold -after any in flight packets, those packets are immediately declared lost. -Otherwise, a timer is set for the the reordering threshold minus the time -difference between the earliest in flight packet and the largest newly -acknowledged packet. Note that in some cases the timer could become longer when -packets are acknowleged out of order. The RECOMMENDED time threshold, expressed +thresholds. It is recommended this is is used in conjunction with packet +threshold fast retransmit. The RECOMMENDED time threshold, expressed This sentence is mostly unclear ("in conjunction with packet threshold fast retransmit") and not really useful. I would drop it entirely. > -Unacknowledged packets close to the tail may have fewer than -kReorderingThreshold retransmittable packets sent after them. Loss of such -packets cannot be detected via Packet Threshold Fast Retransmit. To enable -ack-based loss detection of such packets, receipt of an acknowledgment for -the last outstanding retransmittable packet triggers the Early Retransmit -process, as follows. - -If there are unacknowledged in-flight packets still pending, they should -be marked as lost. To compensate for the reduced reordering resilience, the -sender SHOULD set a timer for a small period of time. If the unacknowledged -in-flight packets are not acknowledged during this time, then these -packets MUST be marked as lost. - -An endpoint SHOULD set the timer such that a packet is marked as lost no earlier -than 1.125 * max(SRTT, latest_RTT) since when it was sent. +An endpoint SHOULD declare packets lost no earlier than I don't think the early retransmit section should be removed. This is a separate mechanism, and it is the only thing that uses the time threshold. I think a different structure might be useful... I'd actually argue for removing the time threshold section and leaving ER as is, since the time threshold section doesn't add much. > @@ -312,16 +292,10 @@ Using max(SRTT, latest_RTT) protects from the two following cases: * the latest RTT sample is higher than the SRTT, perhaps due to a sustained increase in the actual RTT, but the smoothed SRTT has not yet caught up. -The 1.125 multiplier increases reordering resilience. Implementers MAY -experiment with using other multipliers, bearing in mind that a lower multiplier -reduces reordering resilience and increases spurious retransmissions, and a -higher multiplier increases loss recovery delay. - -This mechanism is based on Early Retransmit for TCP {{?RFC5827}}. However, This is still true. I would leave this in. > @@ -841,7 +807,7 @@ Pseudocode for SetLossDetectionTimer follows: time_of_last_sent_crypto_packet + timeout) return if (loss_time != 0): - // Early retransmit timer or time loss detection. + // Time threshold loss detection. ```suggestion // Early retransmit timer. ``` > @@ -875,7 +841,7 @@ Pseudocode for OnLossDetectionTimeout follows: RetransmitUnackedCryptoData() crypto_count++ else if (loss_time != 0): - // Early retransmit or Time Loss Detection + // Time threshold loss Detection ```suggestion // Early retransmit ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/pull/1974#pullrequestreview-173860472
- [quicwg/base-drafts] Recovery uses both time and … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … Marten Seemann
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … MikkelFJ
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … Subodh Iyengar
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … Subodh Iyengar
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … Subodh Iyengar
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … ianswett
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … janaiyengar
- Re: [quicwg/base-drafts] Recovery uses both time … MikkelFJ