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 8623E3A0C2D
 for <quic-issues@ietfa.amsl.com>; Wed, 22 Jul 2020 21:23:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.1
X-Spam-Level: 
X-Spam-Status: No, score=-3.1 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1,
 RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, 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 Jyyge3t4I_Vl for <quic-issues@ietfa.amsl.com>;
 Wed, 22 Jul 2020 21:23:14 -0700 (PDT)
Received: from out-23.smtp.github.com (out-23.smtp.github.com [192.30.252.206])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 210A53A0C2B
 for <quic-issues@ietf.org>; Wed, 22 Jul 2020 21:23:14 -0700 (PDT)
Received: from github-lowworker-0f78100.ash1-iad.github.net
 (github-lowworker-0f78100.ash1-iad.github.net [10.56.25.48])
 by smtp.github.com (Postfix) with ESMTP id 2DAF7661024
 for <quic-issues@ietf.org>; Wed, 22 Jul 2020 21:23:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1595478193;
 bh=3xET2Dxx9zKVUNEwlDwVfxmahuGNqXF0WCju5tDQ7vg=;
 h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
 List-Archive:List-Post:List-Unsubscribe:From;
 b=0Hvm5KCgZehzYunk1h7FZqWXacSnusVGldT33nkiSnt12hIES4EvqXlnqBWzHl7l6
 Ud5QMo6X7KCH+I41J88khYLtZFXtwoqHauTl0/rD2dQePZxgepDlaga/Ihx8ofriSL
 zH0DHZpts+EOePLbfBX4PmCqXho03CcywdKp1uxY=
Date: Wed, 22 Jul 2020 21:23:13 -0700
From: Marten Seemann <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+AFTOJK2F33NXT24LMZZXFN55ETY3DEVBNHHCPC6CX4@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3939/662811684@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3939@github.com>
References: <quicwg/base-drafts/issues/3939@github.com>
Subject: Re: [quicwg/base-drafts] It's unclear if persistent congestion is a
 per-PN-space property (#3939)
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_5f1910b11de23_fa13f94690cd96472324";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: marten-seemann
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/AtnFzcAvOLEhfg4V0sAib_T54-E>
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: Thu, 23 Jul 2020 04:23:16 -0000


----==_mimepart_5f1910b11de23_fa13f94690cd96472324
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

> * When receiving an acknowledgement, mark a hole in the sentmap for the packet being acked.

I don't think this is trivial, quite the opposite actually. A "hole" would be extra state (note that just the absence of a packet at a certain PN does not constitute a hole, since you could've skipped that PN to mitigate the optimistic ACK attack), and that additional state has to be cleaned up.

In my implementation, when a packet is acknowledged, I know I can delete it and get rid of all state associated with it. Deviating from this, just to be able to do do persistent congestion detection across packet number spaces, seems like a lot of hassle to me.
As @janaiyengar described, any packet loss during the handshake will half the congestion window, and with #3943, it will even reduce the congestion window to half the bytes in flight (which will commonly be less than the cwnd during the handshake). Simple Reno-style congestion control will therefore lead to behavior that is very similar to actually doing persistent congestion detection across packet number spaces, without all the additional complexity.

-- 
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/issues/3939#issuecomment-662811684
----==_mimepart_5f1910b11de23_fa13f94690cd96472324
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p></p>
<blockquote>
<ul>
<li>When receiving an acknowledgement, mark a hole in the sentmap for the=
 packet being acked.</li>
</ul>
</blockquote>
<p>I don't think this is trivial, quite the opposite actually. A "hole" w=
ould be extra state (note that just the absence of a packet at a certain =
PN does not constitute a hole, since you could've skipped that PN to miti=
gate the optimistic ACK attack), and that additional state has to be clea=
ned up.</p>
<p>In my implementation, when a packet is acknowledged, I know I can dele=
te it and get rid of all state associated with it. Deviating from this, j=
ust to be able to do do persistent congestion detection across packet num=
ber spaces, seems like a lot of hassle to me.<br>
As <a class=3D"user-mention" data-hovercard-type=3D"user" data-hovercard-=
url=3D"/users/janaiyengar/hovercard" data-octo-click=3D"hovercard-link-cl=
ick" data-octo-dimensions=3D"link_type:self" href=3D"https://github.com/j=
anaiyengar">@janaiyengar</a> described, any packet loss during the handsh=
ake will half the congestion window, and with <a class=3D"issue-link js-i=
ssue-link" data-error-text=3D"Failed to load title" data-id=3D"664179767"=
 data-permission-text=3D"Title is private" data-url=3D"https://github.com=
/quicwg/base-drafts/issues/3943" data-hovercard-type=3D"issue" data-hover=
card-url=3D"/quicwg/base-drafts/issues/3943/hovercard" href=3D"https://gi=
thub.com/quicwg/base-drafts/issues/3943">#3943</a>, it will even reduce t=
he congestion window to half the bytes in flight (which will commonly be =
less than the cwnd during the handshake). Simple Reno-style congestion co=
ntrol will therefore lead to behavior that is very similar to actually do=
ing persistent congestion detection across packet number spaces, without =
all the additional complexity.</p>

<p style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;">&m=
dash;<br />You are receiving this because you are subscribed to this thre=
ad.<br />Reply to this email directly, <a href=3D"https://github.com/quic=
wg/base-drafts/issues/3939#issuecomment-662811684">view it on GitHub</a>,=
 or <a href=3D"https://github.com/notifications/unsubscribe-auth/AFTOJK32=
2NC4WVSA2VW5IBTR463LDANCNFSM4PEKBWNA">unsubscribe</a>.<img src=3D"https:/=
/github.com/notifications/beacon/AFTOJK4TKHK576SS5FDIY3TR463LDA5CNFSM4PEK=
BWNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOE6A3IJA.g=
if" height=3D"1" width=3D"1" alt=3D"" /></p>
<script type=3D"application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/quicwg/base-drafts/issues/3939#issuecomment=
-662811684",
"url": "https://github.com/quicwg/base-drafts/issues/3939#issuecomment-66=
2811684",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>=

----==_mimepart_5f1910b11de23_fa13f94690cd96472324--

