Re: ACK Frame Issues
Jana Iyengar <jri@google.com> Tue, 12 September 2017 23:53 UTC
Return-Path: <jri@google.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B0B113318A for <quic@ietfa.amsl.com>; Tue, 12 Sep 2017 16:53:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 nR_Nfi6Pn0Ff for <quic@ietfa.amsl.com>; Tue, 12 Sep 2017 16:53:33 -0700 (PDT)
Received: from mail-pf0-x236.google.com (mail-pf0-x236.google.com [IPv6:2607:f8b0:400e:c00::236]) (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 11EDC1320C9 for <quic@ietf.org>; Tue, 12 Sep 2017 16:53:33 -0700 (PDT)
Received: by mail-pf0-x236.google.com with SMTP id q76so7377175pfq.2 for <quic@ietf.org>; Tue, 12 Sep 2017 16:53:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=zw39slNvjbXrY+A/ldkmKj/K/Fa3KAQyN+bANgph9l0=; b=cFtbOH4mpL3JwOJyRAkJ+LnmQA34pCiAYe+ngZ+TVO/k85XxqgZAjZcM0l7WsLxGzY SBKIG0OXZ1hgfGbFAA2wFx9nHE/vsnL7a3N8xwOZyBZ/+dLG3WblcJlpUqdMYkYj6+4u vrjnGqy2i8EHSCHAXv8voJK1gbPrj4LaiH7+TdbhfFPuCHQ0+4/cvJoKeaPVzc2RdR3u k9xgKjrXckdCOhEatBp5/zJ2YuaLiZVQdNaA+x96cHDMjjGHrbL0yJb9aMAyCWuwvbSF z30hRLALWB2W6GDypaYIVHzlLKNg13FcHAl1B8R/CEHBCs0bBNpQKMbip/AQBU2o6JOn PEAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=zw39slNvjbXrY+A/ldkmKj/K/Fa3KAQyN+bANgph9l0=; b=lJzdpn+Priad80MfmC0tKzeJKChoW3Id4bvXH+aTRK63lHSkPGAdRaJaCXfcUMWiTG IPB/FoItdaz1yPWdXqOT37WQP1tr8smlNZG6KjZvL38DKN7FgkJWESRPD7JBmXjWCq2c tVSionD8MgsYVnPZVKRgxws4R4zY+VYMdW1gilTJAX/CHjFW0ALjdUv5zuZQ0u2DgSQU b17PGfolLD8G7mgIDcxjDIDFLv6c4Jg+2njgsbTzUhpP6dcJweLzdqi+9LlLdu//t4FT Lh7D/gHkNUYonjCBrIBQOtavxksXfXEVE3ERgmjHxo4NCG4I88J40t6JenLmSDXawKPA KdGA==
X-Gm-Message-State: AHPjjUhodRp+X05X+bt5DzVIdoJ2Tpoehz9jCZ0SFVL8tsl4wIOZCOrm POZquyzsPDxLb/5q2gp+i3TzvUG3Inkcf79gxYehXwZRVVA=
X-Google-Smtp-Source: ADKCNb5VcVzgm7eyMsvE83VUSMEGtCpDEBI73/H6m9q/eZRt4O0bsdM902enIdjAWvk6F0ajuZyVYaKOwLn6+eDzgW0=
X-Received: by 10.99.104.196 with SMTP id d187mr16343851pgc.163.1505260411950; Tue, 12 Sep 2017 16:53:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.145.144 with HTTP; Tue, 12 Sep 2017 16:53:31 -0700 (PDT)
In-Reply-To: <5fafb10e-1421-537e-bf8a-5fdfdd19b439@huitema.net>
References: <CAM4esxQAyXmh2KOwQSrj-ihB0HCu07mOfjtJTY6yoYtQ4qMM5A@mail.gmail.com> <5fafb10e-1421-537e-bf8a-5fdfdd19b439@huitema.net>
From: Jana Iyengar <jri@google.com>
Date: Tue, 12 Sep 2017 16:53:31 -0700
Message-ID: <CAGD1bZYAiP_xh+RDpOnh9kLUi6WR6vg6cBt4kCzAyRSVapA=2Q@mail.gmail.com>
Subject: Re: ACK Frame Issues
To: Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c1404b226816e055906c083"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/oRYlViIh-KrUkWuCv-WXdsL9QH4>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Sep 2017 23:53:35 -0000
Related to point (2), I've filed #774 <https://github.com/quicwg/base-drafts/issues/774>. On Wed, Sep 6, 2017 at 2:47 PM, Christian Huitema <huitema@huitema.net> wrote: > > > On 9/6/2017 2:25 PM, Martin Duke wrote: > > ... > > (1) *The spec sorely needs more normative text.* > > ... > > (b) There are four ways to treat acks in flight on which the spec is > silent: > (i) Do not repeat them in subsequent acks > (ii) Repeat them only if they do not require additional ack blocks > (iii) Repeat them only if they require *neither *additional ack > blocks nor longer block lengths. > (iv) Always repeat them until acked > Offline, Jana suggested that (iv) is what Google does, but you'd never > guess that. I settled on (ii), for what it's worth. > > > Picoquic also does (vi). It provides redundancy, so if an ACK is lost the > next ACK will still acknowledge the received packets. > > ... > > (e) The spec is unclear if timestamps are sorted in order of arrival or > reverse order of arrival. At least it's unclear to me! BTW having to sort > new arrivals in both packet number and arrival order is unpleasant. > > > Picoquic does not attempt to sort arrivals, but maintain a SACK structure > similar to the "SACK dashboard" specified in TCP. > > > I don't think the spec should prohibit any of this behavior. However, some > normative text might indicate to implementors that they don't really need > to worry about some of this stuff. > > (2) *The relationship between timestamps and ack blocks needs a rethink* > > People are all over the map on this. On the implementer slack channel, a > lot of people are totally ignoring timestamps and don't think they're > useful. Jana seems to view as a purely advisory channel. On the other hand, > as issue #698 points out, a received timestamp means the packet has > arrived, and sending an ack block for it in the same frame seems redundant. > > > Yes. That syntax is wrong, because it creates a potential conflict. > > > Finally, timestamps are a report with a completely different syntax. > *Especially* if they are advisory, I believe there is a strong case for > just putting it in its own frame and eliminating some of the weird > dependencies (see (c) above) between largest_acked and the timestamp fields. > > > No. There would still be a conflict. For example, in Picoquic, receiving > at ACK erases the data related to the acknowledged packet -- including the > timestamps. If the proposed "timestamp frame" arrived after the ACK frame, > its information would be ignored because the packet was already marked > received and the data erased. > > > Personally, I would recommend the following: > (1) Move timestamps into a separate frame. > (2) A host that receives a timestamp frame MUST interpret a timestamp for > a packet as an acknowledgement for that packet. Packet recievers MAY omit > ack blocks for packets for which a timestamp is in flight. > (3) (possibly) make timestamps something negotiable (in each direction) at > the start of a connection. For example, a host may only want timestamps > from its peer if it is using delay-based congestion control. > > > My preference would be to have exactly one time stamp per ACK, > corresponding to the time at which the "largest acknowledged" packet was > received, and expressed as microseconds since the beginning of the > connection. 24 bits is probably OK, as long as the RTT is lower than 16 > sec. 32 bit would be fine for anything but inter-planetary communications. > > -- Christian Huitema > > -- > Christian Huitema > >
- Re: ACK Frame Issues Christian Huitema
- ACK Frame Issues Martin Duke
- Re: ACK Frame Issues Jana Iyengar