Re: Lost initial MAX_PUSH_ID is unfortunate

Lucas Pardue <lucaspardue.24.7@gmail.com> Wed, 28 August 2019 19:27 UTC

Return-Path: <lucaspardue.24.7@gmail.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 45AB61200A3 for <quic@ietfa.amsl.com>; Wed, 28 Aug 2019 12:27:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.747
X-Spam-Level:
X-Spam-Status: No, score=-1.747 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 4s00D7jf5FU1 for <quic@ietfa.amsl.com>; Wed, 28 Aug 2019 12:27:38 -0700 (PDT)
Received: from mail-vs1-xe2e.google.com (mail-vs1-xe2e.google.com [IPv6:2607:f8b0:4864:20::e2e]) (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 88F61120041 for <quic@ietf.org>; Wed, 28 Aug 2019 12:27:38 -0700 (PDT)
Received: by mail-vs1-xe2e.google.com with SMTP id j25so733000vsq.12 for <quic@ietf.org>; Wed, 28 Aug 2019 12:27:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S3ZRvIX3qXnuYQLJ8hdVz1cluGz/dBmpWJUQDufif18=; b=UStAq1vJZH/3PPLzCq+3tGxHOfHTj95L+IjeaK9xmSmwxXZqRd+Kk8vPRz7vy+J5UQ QemV3xpPntooyVHYfWuWJpB26Q8LokNe6FxO0HsHQeOUSyLTSjlAh+q/+L2FQJPm9xpl wUqtopho9fTP/22feFevxj904xw7aDbL3nTV6SanLI8bn3rfSyNfW6vRctR4+Tzn6mz3 gAkzSDWBsBh+/Ox1wwmDoaSXYskEjVQQb9M93WprU+rZCtzG4UBtH+BnstbeL7eWjq+X U7mmw28NxAVP6sJxIAvXHsxVWIr1ExXfe7USP3rA7uwN6+TjmlpGtu3OxSItp7hGZeog 1hig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S3ZRvIX3qXnuYQLJ8hdVz1cluGz/dBmpWJUQDufif18=; b=AhqIRI0NFlB/ahcGkMXQlksUucIYQj66th7NDlucQU6dzj02il2a3VUBSXyoq28GP4 djEAgwjd7DUln7dMg28Gdb25HkA4/blWy/xc7gwAKSagr5dFleRTU9BC2E9pH4YfsgUB WyrfVlhT4DAzDYw43TtWam8gLIGOU2k7FXZnuCQyMZzWqZCspoGjDZuw2zvoe0RLq31d l/OJm2dWl7TCq+RSH79m3v9IG35ql3lAtA/BfiIj3KE+DFTV1eHm3fUFsZHQfrop6sDZ 0ZN5LEuESniG+tRBYIBeoir6v1wbTYa9Yaj28/0nVKWEeyV1gSxgH044aAvBWO5gz7Ir bIxA==
X-Gm-Message-State: APjAAAUquBX5Y9vpD4vMcrHG1sCR5b+7eJUx3OJUdgoZ9q8NXMATbabq w2OCoI1CoQ6YY4QFMdkfnKkF9SVVOINVUoUYaKUq0A==
X-Google-Smtp-Source: APXvYqwm6DcJdk33FzKY/smwsHNqDx2A2iQsF/bWRTHkUzSXqFVijvRWa+vr0p49NFSTTpp0Z5sHhJwsBsbdFe87zxI=
X-Received: by 2002:a67:d48f:: with SMTP id g15mr3542043vsj.143.1567020457495; Wed, 28 Aug 2019 12:27:37 -0700 (PDT)
MIME-Version: 1.0
References: <CAJ_4DfSE4_2GR5peGeRuWnixgdc9ucGiXtab=c0fXbqedFHsgA@mail.gmail.com> <1931a6f6-a25f-478e-b150-a200e0c3c69e@www.fastmail.com> <CACdeXiLM6q0AZWEWAwfBL5J=zAPkFiXfr+_=OU0cS-uuqW9wxQ@mail.gmail.com>
In-Reply-To: <CACdeXiLM6q0AZWEWAwfBL5J=zAPkFiXfr+_=OU0cS-uuqW9wxQ@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Wed, 28 Aug 2019 20:27:26 +0100
Message-ID: <CALGR9oavwv9n1+EH6zmzCwQkbfTh=bvag0NfeiN9UsvP-e-Wtw@mail.gmail.com>
Subject: Re: Lost initial MAX_PUSH_ID is unfortunate
To: Nick Harper <nharper=40google.com@dmarc.ietf.org>
Cc: QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b9a231059132614d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/KltVlkRRcBFEkvDRIJRsLqzBPTA>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 28 Aug 2019 19:27:40 -0000

Lets take an extreme case, the client sends an initial max push ID of 1. On
the first request the server sends a push promise - now its out of credit
when chances are it wanted to push more than one thing. So it's back to
"waiting" for a MAX_PUSH_ID or just giving up on push. The server needs all
the logic to manage this exhaustion case.

I think we are ok with what we have. But if we want off the wall ideas:
allow MAX_PUSH_ID frames on request streams before HEADERS (solving the
sequencing problem) and relax the rules for connection errors on limit
decrement.

On Wed, 28 Aug 2019, 19:39 Nick Harper, <nharper=40google.com@dmarc.ietf.org>
wrote:

>
>
> On Tue, Aug 27, 2019 at 8:00 PM Martin Thomson <mt@lowentropy.net> wrote:
>
>> On Wed, Aug 28, 2019, at 08:48, Ryan Hamilton wrote:
>> > In some testing we've been doing, we realized that if the packet
>> > containing the initial MAX_PUSH_ID frame is lost (or reordered until
>> > after the first request) then the server is unable to push responses.
>> > This is a bit unfortunate. We could, of course, bundle the MAX_PUSH_ID
>> > with all packets that send a new request until the MAX_PUSH_ID is
>> > ACK'd. This feels a tad inelegant and I wondered if there's any
>> > appetite for an alternative.
>>
>> I don't think that this is great justification for that sort of change.
>> We explicitly removed head of line blocking from the processing of
>> SETTINGS.  In practice, I suspect that this situation also results in no
>> access to QPACK also.
>>
>> Performance might suffer, but at least you can send something sensible in
>> a round trip when you would otherwise (with h2 for instance) be twiddling
>> thumbs.
>>
>> Why can't we have the best of both worlds? If we put this signal in the
> crypto handshake, the application protocol can guarantee that it arrives
> before any STREAM frames, and we don't introduce any more head of line
> blocking because the connection is already blocked on the crypto handshake
> messages to derive 0-RTT or 1-RTT application data keys.
>