Re: [quicwg/base-drafts] ACK of non-existent packet is illegal (#2302)

Marten Seemann <> Tue, 08 January 2019 01:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D4CCF130E4F for <>; Mon, 7 Jan 2019 17:33:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.064
X-Spam-Status: No, score=-8.064 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8kH70dQFeCZQ for <>; Mon, 7 Jan 2019 17:33:48 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 75084130E54 for <>; Mon, 7 Jan 2019 17:33:44 -0800 (PST)
Date: Mon, 07 Jan 2019 17:33:43 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1546911223; bh=8P9fVXRE4MjUkQwJHf3ySBrLpS4fj41DcK39tNIpj6Y=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=tqw1+mmaVcK06c4rQtEGmdQ/RxEYmMLaLcExyO8DcRzNnP/CfF3z2d+GwsF2VYmoJ sKqrREt3MoAifD0tBVQN4jlV9ujUq/LSPxR009kBurHtF8VZXig2yec3LSbdfVHz3D VqFlI/6Vh87m3VoHZ64r4aV0dl52Xn+ZzOsjivtQ=
From: Marten Seemann <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2302/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] ACK of non-existent packet is illegal (#2302)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c33fdf7a1be9_354a3f97d56d45b4105513"; 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
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 08 Jan 2019 01:33:50 -0000

marten-seemann commented on this pull request.

>  acknowledgment of its ACK frames, with the knowledge this could cause the sender
 to unnecessarily retransmit some data.  Standard QUIC {{QUIC-RECOVERY}}
 algorithms declare packets lost after sufficiently newer packets are
 acknowledged.  Therefore, the receiver SHOULD repeatedly acknowledge newly
 received packets in preference to packets received in the past.
+An endpoint SHOULD treat receipt of an acknowledgment for a packet it did not
+send as a connection error of type PROTOCOL_VIOLATION, if it is able to detect

Actually, I think of the reason phrase as giving more details about the error, e.g. when exceeding the stream limit, I'd send the error code STREAM_LIMIT_ERROR, and then the reason phrase might say "Peer tried to open stream 124, but stream limit was 116.".

If we say that all information should go into the reason phrase, then why do we have FLOW_CONTROL_ERROR, STREAM_LIMIT_ERROR, FINAL_OFFSET_ERROR, FRAME_ENCODING_ERROR and TRANSPORT_PARAMETER_ERROR? They're certainly just protocol violations of one sort or another.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: