Re: [quicwg/base-drafts] PRIORITY frame on control stream referencing unopened request stream (#2502)

Kazuho Oku <notifications@github.com> Thu, 09 May 2019 19:01 UTC

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 95054120143 for <quic-issues@ietfa.amsl.com>; Thu, 9 May 2019 12:01:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 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, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 bIKh1O_0L_Mj for <quic-issues@ietfa.amsl.com>; Thu, 9 May 2019 12:01:44 -0700 (PDT)
Received: from out-6.smtp.github.com (out-6.smtp.github.com [192.30.252.197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D9AF120110 for <quic-issues@ietf.org>; Thu, 9 May 2019 12:01:42 -0700 (PDT)
Date: Thu, 09 May 2019 12:01:40 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1557428500; bh=5FM7PcBCAr4yub5QlwbyfqAPmhnYsR7/OuvuUDloc1w=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Vhtm1HVGISxAX78zcCQeq6ojPs6L0AzwRNlSgoVhNeQZ77HhUSNb8KooJ80ho9RS7 8iiOOGFhg0QTLnJCuV0zRjcZzdUa2EmZpEHBQfpLGuLKOyN1d9rdKA3OmIGXKqnAHT RKEEU4ky+pjY3lOTa71On5ra3grHvNy7jg87Lpag=
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK55FHJPJ3FG7EVQGFV24GVZJEVBNHHBR4DCTQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2502/491026561@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2502@github.com>
References: <quicwg/base-drafts/issues/2502@github.com>
Subject: Re: [quicwg/base-drafts] PRIORITY frame on control stream referencing unopened request stream (#2502)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cd47914daa73_6b8d3ffa0b8cd968107422"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/hSWgTUDw0SClSCSQ3Sz80DK4kX4>
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: Thu, 09 May 2019 19:01:48 -0000

@rmarx Thank you for your comments and for the fantastic research (maybe I should have said this earlier)! 

I think we are really discussing two issues here: a) how the server should behave when the client does not provide priority information at all, and b) when priority information is not available due to a packet loss. To resolve both the issues (I do share the concerns), maybe we should better have two different issues opened for each.

For _b_ (which IIUC is the original topic of this issue), I would argue the following.

As a general statement, mis-prioritization happens until the lossed packet is retransmitted and received. Therefore, the impact is small.

That said, if the client uses Firefox-like prioritization scheme (i.e. grouped by placeholders), it is fair to assume that unresolvable nodes appear only during the very early stages of the connection. During that time, there is higher probability of receiving a request that should be given higher priority than than the precedence requests (i.e. request for CSS arriving after request for HTML). That's very different from what you see in later moments (i.e. requests for things like images and async javascript files arrive, that require lower priority).

If the client uses Chrome-like prioritization scheme (i.e. daisy chaining), I now think that we should recommend the client to send a PRIORITY frame on the request stream to specify the parent node, _and also transmit the same information by sending a PRIORITY frame on a control stream_, then sending another PRIORITY frame to indicate that a sibling is converted to a child of the newly created node. By transmitting the same information on both streams, the server would never see an unresolvable node in the prioritization tree. So why not recommend clients do that, instead of trying to figure out how the server should compensate for the lack of the information?

-- 
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/2502#issuecomment-491026561