HTTP/3 Prioritization: kickstarting the discussion (again)
Robin MARX <robin.marx@uhasselt.be> Wed, 03 July 2019 16:17 UTC
Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D7EBE120254 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Jul 2019 09:17:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.449
X-Spam-Level:
X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=uhasselt.be
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 zulHbVXUU0AM for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Jul 2019 09:17:29 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACDDE12028C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 3 Jul 2019 09:09:55 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1hihmn-0001Y5-G7 for ietf-http-wg-dist@listhub.w3.org; Wed, 03 Jul 2019 16:07:09 +0000
Resent-Date: Wed, 03 Jul 2019 16:07:09 +0000
Resent-Message-Id: <E1hihmn-0001Y5-G7@frink.w3.org>
Received: from uranus.w3.org ([128.30.52.58]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <robin.marx@uhasselt.be>) id 1hihml-0001XH-8U for ietf-http-wg@listhub.w3.org; Wed, 03 Jul 2019 16:07:07 +0000
Received: from www-data by uranus.w3.org with local (Exim 4.89) (envelope-from <robin.marx@uhasselt.be>) id 1hihmk-0007y4-CV for ietf-http-wg@listhub.w3.org; Wed, 03 Jul 2019 16:07:07 +0000
Received: from titan.w3.org ([2603:400a:ffff:804:801e:34:0:4c]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <robin.marx@uhasselt.be>) id 1higDd-0007Sn-Rk for ietf-http-wg@listhub.w3.org; Wed, 03 Jul 2019 14:26:45 +0000
Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <robin.marx@uhasselt.be>) id 1higDX-0002hp-E2 for ietf-http-wg@w3.org; Wed, 03 Jul 2019 14:26:45 +0000
Received: by mail-lj1-x22a.google.com with SMTP id r9so2665015ljg.5 for <ietf-http-wg@w3.org>; Wed, 03 Jul 2019 07:26:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uhasselt.be; s=google; h=mime-version:from:date:message-id:subject:to; bh=M4N/hMtLyVsggnagS/G1Orvz58CS1FkUwOfBg5TxjNw=; b=KEM/OOkRj9WvXymNpAni6XlM43UlO1gTygaohxQn/p6gJKEejPZqbbbxQ8vbt7PqFR ZTo7t9Q98adQ7QwQ6TJ7HOnhQ8KUXZDcjiyEWL72bKsVJaTaGSza7Qww37Nc7w01ch9s N3wEiCxNZtRYDLbYt6yQWTGmT/2O8KC0Qx58Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=M4N/hMtLyVsggnagS/G1Orvz58CS1FkUwOfBg5TxjNw=; b=r7WE3n4FioprHfQTn1Mn/9jl2Hg85aljORRvizZRaQ4EwrOSjBJ+bA/yIYJIj2QDnk c1fU397c/2+8nGiViglG3ULkSuLSE5RFUDicbaC1XeJAqAd09cEqzhGiCU6+qtcR+M9v HTVFqf8BI5fRRmxtFUgbVODEsYv6mocevJnA1JA9SQ/WWdBAyk2LqfXa3Dae7XbOFIK2 M95Z/n2z7/prszO5UXLIOpdU7MV+6fjcmwa8uO0d2ZHye7BULPxlwus5KRubkWmBDf8u 3CIRBVEgGHtJeOKyDP3Azf3Xy8x6MKipOw2tv39+DdQwcqFSO7YdMhOW8ZNkPoRXENvq 5oZA==
X-Gm-Message-State: APjAAAXj6F3eS8P0bwKIzTQB5cYgT99NUjHJ5u/x2WN6hshvDN7ZLnuQ IVF/a7rmZiZk34CEreHOOWpPaQniKJPy42fQuSqRJ/USUMM=
X-Google-Smtp-Source: APXvYqxL8fDu7/5A9BORm4G/2MjopzxAnKcOoOBJo6u7y68gaJYRPRWYMdEmX14ZftpKtikmjoPtmiLixoHGzQ8/pr0=
X-Received: by 2002:a2e:98d7:: with SMTP id s23mr10387883ljj.179.1562163975833; Wed, 03 Jul 2019 07:26:15 -0700 (PDT)
MIME-Version: 1.0
From: Robin MARX <robin.marx@uhasselt.be>
Date: Wed, 03 Jul 2019 16:26:02 +0200
Message-ID: <CAC7UV9YW5xFc+C28QtLBfDOPcLZ+DEViR__GRuc9Kx8GhUaYOg@mail.gmail.com>
To: ietf-http-wg@w3.org
Content-Type: multipart/mixed; boundary="000000000000dd1046058cc7a421"
Received-SPF: pass client-ip=2a00:1450:4864:20::22a; envelope-from=robin.marx@uhasselt.be; helo=mail-lj1-x22a.google.com
X-W3C-Hub-Spam-Status: No, score=-4.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1higDX-0002hp-E2 be84f72561b404a0b0c6e805d7df26bd
X-caa-id: 57acdde9c7
X-Original-To: ietf-http-wg@w3.org
Subject: HTTP/3 Prioritization: kickstarting the discussion (again)
Archived-At: <https://www.w3.org/mid/CAC7UV9YW5xFc+C28QtLBfDOPcLZ+DEViR__GRuc9Kx8GhUaYOg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/36745
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
Hello everyone, As I expect most of you know, there has been quite a bit of talk over at the QUIC / HTTP/3 working group recently on what to do with the dependency tree / prioritization system from HTTP/2 in H3. There are two major issues: - There a a few subtle HOL-blocking issues in porting the system to H3 due to the way streams work in QUIC - Quite a few people feel H2's approach is overly complex and can/should be simplified For now, the QUIC wg has taken the stance to try and stay as close to H2 as possible (e.g., exclusive priorities had been removed before, but are now back in the editor's draft of HTTP/3). The QUIC wg wishes to see more real implementation experience and experimental results for new proposals before considering them. It also feels this issue is best discussed in the httpbis wg. And thus we come to this email. We have been recently running some prioritization experiments for a variety of schemes and proposals using our own HTTP/3 implementation in the Quicker project. We have discussed our findings in a paper, which you can find in attachment and also on https://h3.edm.uhasselt.be. The paper attempts to provide a rather extensive discussion of the issues with H2's setup, H3's approaches so far and the alternative proposals that have been made. As I appreciate not everyone has the time to read all of that, our main findings are: 0) The current proposal (which should be "draft-21" soon) for HTTP/3 works well in practice, though the semantics of the "orphan placeholder" might still need to be tweaked a bit. 1) Simpler setups are also perfectly viable. The main contender, from Patrick Meenan ( https://github.com/pmeenan/http3-prioritization-proposal/blob/master/README.md) would be a good candidate for this. 2) However, there is no single scheme that produces ideal results for all web pages (e.g., the scheme that is best for page A can perform really badly for page B). So dropping everything for a single, simpler approach is potentially sub-optimal. Similarly, the current approach of browsers of just using a single scheme for all pages might need revision. 3) Ideally, we should thus allow the scheme to be tweaked per-page, either via a mechanism where the server indicates the optimal scheme to the client (which we propose in the paper), or where the client communicates additional metadata to the server (e.g., resource is blocking/non-blocking, can be processed progressively, ...) to make server-side prioritization easier (Kazuho Oku is working on a proposal for this, but doesn't feel it's ready to share here yet). 4) In order to make progress on H3, it's probably best to stick with the draft-21 approach (potentially with a few more small tweaks) and define a new approach as an extension or implement it at the higher HTTP layer (i.e., as HTTP headers, rather than H3 frames). However, would that then find enough adoption fast enough... While I'll be the first to admit our study isn't terribly extensive or fully realistic (we tested 40 pages in lab settings without a real browser), I still feel our results are enough to have a basis to continue the discussion on. We of course encourage others to share their results as well. Some more background information can be found here as well: https://github.com/quicwg/wg-materials/blob/master/interim-19-05/priorities.pdf I'm a bit unsure what the best questions are to ask at this point, but some attempts: - Are implementers willing to implement 2 completely different approaches (1 for H3, 1 for H2)? - Are (browser) implementers willing to consider supporting multiple schemes (specific trees)? - Are (server) implementers willing to create/support more complex (user-driven) server-side prioritization config/APIs? - How important is it to move to a simpler (and thus less flexible) setup? - Should this be a blocker for HTTP/3 or not? Looking forward to your feedback. With best regards, Robin -- Robin Marx PhD researcher - web performance Expertise centre for Digital Media T +32(0)11 26 84 79 - GSM +32(0)497 72 86 94 www.uhasselt.be Universiteit Hasselt - Campus Diepenbeek Agoralaan Gebouw D - B-3590 Diepenbeek Kantoor EDM-2.05
- HTTP/3 Prioritization: kickstarting the discussio… Robin MARX
- Re: HTTP/3 Prioritization: kickstarting the discu… Patrick Meenan
- Re: HTTP/3 Prioritization: kickstarting the discu… Wesley Oliver
- Video/call/realtime/gaming/ streaming guaranteed … Wesley Oliver
- Re: HTTP/3 Prioritization: kickstarting the discu… Dmitri Tikhonov
- Re: HTTP/3 Prioritization: kickstarting the discu… Wesley Oliver
- Re: HTTP/3 Prioritization: kickstarting the discu… Robin MARX
- Re: HTTP/3 Prioritization: kickstarting the discu… Nick Harper