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 2BED6130934
 for <quic-issues@ietfa.amsl.com>; Thu,  6 Dec 2018 19:16:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.46
X-Spam-Level: 
X-Spam-Status: No, score=-9.46 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.46, 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 Vf43BY1fEd_n for <quic-issues@ietfa.amsl.com>;
 Thu,  6 Dec 2018 19:16:39 -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 7A779128DFD
 for <quic-issues@ietf.org>; Thu,  6 Dec 2018 19:16:39 -0800 (PST)
Date: Thu, 06 Dec 2018 19:16:38 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1544152598;
 bh=HF5VDI0Ba9q1kw9Vt5tzDVlZWz/yG98FmaecgFzzp8Y=;
 h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
 List-Archive:List-Post:List-Unsubscribe:From;
 b=U+KS6PhfcbGdT/Vh/F/9A+PsY1oZNUpH3dxJ38rSQ9p1V/+2Na0VtCOow48vYmvkx
 bWlG/P4yDeqP/gJ2U45zW+6Ho7F+KYqESzH4gzbd2vH25yyTkRezDcTBnYuu3BGre2
 7iU+ACXilUyiajpVoOUiy5o019D5M07W+yI4cGUI=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+0166e4ab6001ccbd3df85a370c03f0e2b4837d1406d5294792cf000000011821a81692a169ce172626a9@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2104/c445109347@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2104@github.com>
References: <quicwg/base-drafts/pull/2104@github.com>
Subject: Re: [quicwg/base-drafts] Make in_flight the criterion for declaring
 loss (#2104)
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_5c09e61685f62_36563ff2186d45bc3137c2";
 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/I6FQ543X5aB06VFkjzb_POMEyzo>
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: Fri, 07 Dec 2018 03:16:41 -0000


----==_mimepart_5c09e61685f62_36563ff2186d45bc3137c2
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

> I think this is an excellent reason to move the text about "Generating Acknowlegements" into transport, because having it in two places increases the chances of inconsistencies.

Agreed. It's on my todo for next week.

That's about what to do with acking PADDING packets. The question I'm raising is whether loss detection is tied to being in flight or to eliciting an ACK. I'm arguing that loss detection is premised on bytes counting towards in-flight, but loss detection logic triggered by receiving an ACK (which is why we use max_ack_delay in the computations).  The bytes being in flight are a necessary condition, not sufficient.

Loss detection marks a packet as lost when no ACK is received for it. This is predicated on an ACK being sent by the receiver, delayed or not, if the packet is received, which is only true for ack-eliciting packets.

PADDING of ACK-only frames is a weird special case that causes inflight to go up without being ack-eliciting. We had agreed in Montreal that if someone did this they will need to either add a PING frame in there or handle special conditions.


-- 
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/2104#issuecomment-445109347
----==_mimepart_5c09e61685f62_36563ff2186d45bc3137c2
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<blockquote>
<p>I think this is an excellent reason to move the text about "Generating=
 Acknowlegements" into transport, because having it in two places increas=
es the chances of inconsistencies.</p>
</blockquote>
<p>Agreed. It's on my todo for next week.</p>
<p>That's about what to do with acking PADDING packets. The question I'm =
raising is whether loss detection is tied to being in flight or to elicit=
ing an ACK. I'm arguing that loss detection is premised on bytes counting=
 towards in-flight, but loss detection logic triggered by receiving an AC=
K (which is why we use max_ack_delay in the computations).  The bytes bei=
ng in flight are a necessary condition, not sufficient.</p>
<p>Loss detection marks a packet as lost when no ACK is received for it. =
This is predicated on an ACK being sent by the receiver, delayed or not, =
if the packet is received, which is only true for ack-eliciting packets.<=
/p>
<p>PADDING of ACK-only frames is a weird special case that causes infligh=
t to go up without being ack-eliciting. We had agreed in Montreal that if=
 someone did this they will need to either add a PING frame in there or h=
andle special conditions.</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/pull/2104#issuecomment-445109347">view it on GitHub</a>, o=
r <a href=3D"https://github.com/notifications/unsubscribe-auth/AWbkq02A4d=
2ocRpCoKt2rurnJ4d54SNvks5u2d2WgaJpZM4ZHOHW">mute the thread</a>.<img src=3D=
"https://github.com/notifications/beacon/AWbkq_WFCgB1-mrAUQx5fxfw3ohKCHBr=
ks5u2d2WgaJpZM4ZHOHW.gif" height=3D"1" width=3D"1" alt=3D"" /></p>
<script type=3D"application/json" data-scope=3D"inboxmarkup">{"api_versio=
n":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name"=
:"GitHub"},"entity":{"external_key":"github/quicwg/base-drafts","title":"=
quicwg/base-drafts","subtitle":"GitHub repository","main_image_url":"http=
s://assets-cdn.github.com/images/email/message_cards/header.png","avatar_=
image_url":"https://assets-cdn.github.com/images/email/message_cards/avat=
ar.png","action":{"name":"Open in GitHub","url":"https://github.com/quicw=
g/base-drafts"}},"updates":{"snippets":[{"icon":"PERSON","message":"@jana=
iyengar in #2104: \u003e I think this is an excellent reason to move the =
text about \"Generating Acknowlegements\" into transport, because having =
it in two places increases the chances of inconsistencies.\r\n\r\nAgreed.=
 It's on my todo for next week.\r\n\r\nThat's about what to do with ackin=
g PADDING packets. The question I'm raising is whether loss detection is =
tied to being in flight or to eliciting an ACK. I'm arguing that loss det=
ection is premised on bytes counting towards in-flight, but loss detectio=
n logic triggered by receiving an ACK (which is why we use max_ack_delay =
in the computations).  The bytes being in flight are a necessary conditio=
n, not sufficient.\r\n\r\nLoss detection marks a packet as lost when no A=
CK is received for it. This is predicated on an ACK being sent by the rec=
eiver, delayed or not, if the packet is received, which is only true for =
ack-eliciting packets.\r\n\r\nPADDING of ACK-only frames is a weird speci=
al case that causes inflight to go up without being ack-eliciting. We had=
 agreed in Montreal that if someone did this they will need to either add=
 a PING frame in there or handle special conditions.\r\n"}],"action":{"na=
me":"View Pull Request","url":"https://github.com/quicwg/base-drafts/pull=
/2104#issuecomment-445109347"}}}</script>
<script type=3D"application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/quicwg/base-drafts/pull/2104#issuecomment-4=
45109347",
"url": "https://github.com/quicwg/base-drafts/pull/2104#issuecomment-4451=
09347",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [quicwg/base-drafts] Make in_flight the criterion for decla=
ring loss (#2104)",
"sections": [
{
"text": "",
"activityTitle": "**janaiyengar**",
"activityImage": "https://assets-cdn.github.com/images/email/message_card=
s/avatar.png",
"activitySubtitle": "@janaiyengar",
"facts": [

]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \=
"quicwg/base-drafts\",\n\"issueId\": 2104,\n\"IssueComment\": \"{{IssueCo=
mment.value}}\"\n}"
}
]
},
{
"name": "Close pull request",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\=
": \"quicwg/base-drafts\",\n\"pullRequestId\": 2104\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/quicwg/base-drafts/pull/2104#issuecomment-4451=
09347"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 4213232=
22\n}"
}
],
"themeColor": "26292E"
}
]</script>=

----==_mimepart_5c09e61685f62_36563ff2186d45bc3137c2--

