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 624F63A0C10
 for <quic-issues@ietfa.amsl.com>; Wed, 22 Jul 2020 21:05:06 -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 iDoGhB3BAd03 for <quic-issues@ietfa.amsl.com>;
 Wed, 22 Jul 2020 21:05:05 -0700 (PDT)
Received: from out-24.smtp.github.com (out-24.smtp.github.com [192.30.252.207])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id D746B3A0C0F
 for <quic-issues@ietf.org>; Wed, 22 Jul 2020 21:05:04 -0700 (PDT)
Received: from github-lowworker-1b8c660.ash1-iad.github.net
 (github-lowworker-1b8c660.ash1-iad.github.net [10.56.18.59])
 by smtp.github.com (Postfix) with ESMTP id 72C8B6A0A56
 for <quic-issues@ietf.org>; Wed, 22 Jul 2020 21:05:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1595477102;
 bh=QvfJlDLFfK6YUGBo4z4RcnCmXo7ffhceFf5mO5GVkgo=;
 h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
 List-Archive:List-Post:List-Unsubscribe:From;
 b=SmfpSlNSm+9UPo9MQj432z+VF+AIBTQ+wq6Kx5oI6V/1R2DipzDHNyySlkx8z4p+Y
 noaPuNwfXv2dcde85Q9Vd12z+fE34x2OvVJjQ1QQTtcvbKkUCj1376qvVL4zMSXCU7
 EMguCqzOKHGgLKjX8k4ldkD0U9vDZxz5xAMa+Zo8=
Date: Wed, 22 Jul 2020 21:05:02 -0700
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+AFTOJK7VONPJ3EZBJN272YN5ETWW5EVBNHHCPC6CX4@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/662808337@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_5f190c6e5f2b5_36f93f80bf6cd96c13417";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/-ZzrV9pls-edUDIUD8M5c1-UsAw>
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:05:06 -0000


----==_mimepart_5f190c6e5f2b5_36f93f80bf6cd96c13417
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

@janaiyengar Sure. The following is what was written in https://github.com/quicwg/base-drafts/pull/3889#discussion_r459160599:

One trivial way of implementing `InPersistentCongestion` is as follows:
* Retain the entries in sentmap (the list of packets being sent) for at least 3 PTO.
* When receiving an acknowledgement, mark a hole in the sentmap for the packet being acked.
* When a loss is detected in a packet number space, check if that loss spans across more than 3 PTO, by traversing the sentmap. Then, if did, check the sentmap of other packet number spaces (by traversing through those sentmaps) to see if any ACK-eliciting packet sent in that period has been acked.

This approach might sound too trivial, as it is O(N) where N is the number of packets being lost (or in case there are multiple PN spaces in action, the number of inflight packets in other PN spaces). But in practice, I think this approach is sufficient in terms of performance, because N would be like 3 for the current packet number space, and because we would not be sending that many packets on Initial and Handshake packet number spaces.

-- 
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-662808337
----==_mimepart_5f190c6e5f2b5_36f93f80bf6cd96c13417
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p></p>
<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/janaiyengar/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/janaiyengar">@janaiyengar</a> Sure. The following is what was written in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="654401228" data-permission-text="Title is private" data-url="https://github.com/quicwg/base-drafts/issues/3889" data-hovercard-type="pull_request" data-hovercard-url="/quicwg/base-drafts/pull/3889/hovercard?comment_id=459160599&amp;comment_type=review_comment" href="https://github.com/quicwg/base-drafts/pull/3889#discussion_r459160599">#3889 (comment)</a>:</p>
<p>One trivial way of implementing <code>InPersistentCongestion</code> is as follows:</p>
<ul>
<li>Retain the entries in sentmap (the list of packets being sent) for at least 3 PTO.</li>
<li>When receiving an acknowledgement, mark a hole in the sentmap for the packet being acked.</li>
<li>When a loss is detected in a packet number space, check if that loss spans across more than 3 PTO, by traversing the sentmap. Then, if did, check the sentmap of other packet number spaces (by traversing through those sentmaps) to see if any ACK-eliciting packet sent in that period has been acked.</li>
</ul>
<p>This approach might sound too trivial, as it is O(N) where N is the number of packets being lost (or in case there are multiple PN spaces in action, the number of inflight packets in other PN spaces). But in practice, I think this approach is sufficient in terms of performance, because N would be like 3 for the current packet number space, and because we would not be sending that many packets on Initial and Handshake packet number spaces.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/quicwg/base-drafts/issues/3939#issuecomment-662808337">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AFTOJK7J7W64QZNGOWWPVOLR46ZG5ANCNFSM4PEKBWNA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AFTOJKZS2MWDEGU4SJ57EO3R46ZG5A5CNFSM4PEKBWNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOE6A2OEI.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/quicwg/base-drafts/issues/3939#issuecomment-662808337",
"url": "https://github.com/quicwg/base-drafts/issues/3939#issuecomment-662808337",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>
----==_mimepart_5f190c6e5f2b5_36f93f80bf6cd96c13417--

