[quicwg/base-drafts] Decoding Largest Acked and Reliability (#731)

Patrick McManus <notifications@github.com> Mon, 14 August 2017 23:51 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.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 E620F132453 for <quic-issues@ietfa.amsl.com>; Mon, 14 Aug 2017 16:51:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.799
X-Spam-Level:
X-Spam-Status: No, score=-4.799 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-2.8, 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 7nvuaBEp4oMh for <quic-issues@ietfa.amsl.com>; Mon, 14 Aug 2017 16:51:32 -0700 (PDT)
Received: from o5.sgmail.github.com (o5.sgmail.github.com [192.254.113.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B278A132451 for <quic-issues@ietf.org>; Mon, 14 Aug 2017 16:51:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=Mp6PMXmhrwYMaNhkrT2LFdqO48g=; b=XmZsJyzWzBsy+JPB mK/y7x5NxcTJZfJ/U/rZokxP9Hoyo+LeVsgRCsJUvXvsMm+ZAh+K9fVADe8X+QDv +ieN1ZeO34zVhGYpdmB/xmSSuvHYnQXBwwvc+EFlDOFm4kvMzrIhEmITvWaWS6cn oLe3ZG7fDtO2kg+IuXurwkvtW6k=
Received: by filter0470p1mdw1.sendgrid.net with SMTP id filter0470p1mdw1-31435-5992373E-18 2017-08-14 23:50:22.219882473 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [192.30.253.16]) by ismtpd0024p1mdw1.sendgrid.net (SG) with ESMTP id c4AB_778QzqlgEfDri-rOw for <quic-issues@ietf.org>; Mon, 14 Aug 2017 23:50:22.268 +0000 (UTC)
Date: Mon, 14 Aug 2017 23:50:23 +0000
From: Patrick McManus <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab1359100e72a6382af353293aa4e56234b25a19a592cf0000000115a9f93d92a169ce0ee98584@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/731@github.com>
Subject: [quicwg/base-drafts] Decoding Largest Acked and Reliability (#731)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5992373df12fa_546c3fcdc5233c3c1491c0"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mcmanus
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak36yFgh3xTNsGtlCa9FaJn/7gWG89TWBqXko+ OUmROy37re0/STE+wVbil9vXTPl5NVLjltmqcZQPRQ75JLAy6BSyTZ4+A6AkpzWZVN0xKl35K3PLjr K1orm8S+sC6y0XZfX0VmkrnuJlXYBYRYnP8+jeZaKaMQK4Qc9FIxFo94X/vPbj5qr5VJ5HLxaeOs7v k=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/-o-3_B-r2NfGwsyPoTHQnD2k52I>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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, 14 Aug 2017 23:51:34 -0000

In an ACK frame largest acked is "A variable-sized unsigned value". The text doesn't give a lot of guidance on exactly how its determined (other than its size), but presumably it uses the algorithm from 5.8.. except 5.8 clearly doesn't exactly apply because the packet number defined by 5.8 is "used as part of a cryptographic nonce for packet encryption. " which largest acked is not.

In any event, assuming a similar algorithm we would decode by " finding the packet number value that is closest to the next expected packet.".. which in the case of largest ack might be "largest previously received largest ack + 1".

So far, that's editorial. But, as is the case with packet envelope numbers, its certainly possible to mis-decode the number.. especially when using small encodings and reorderings occur. (and this is especially true with acknowledgment information which is actually retransmitted, unlike the packet envelope numbers themselves).

If you mis-interpret an envelope packet number its no big deal - the crypto will fail and you'll drop the packet. But if you mis-interpret a largest acked field then you mark as acked the wrong data. Perhaps data that never arrived and will now never be re transmitted. And you don't have a reliable protocol anymore. :(

oops?

-- 
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/731