Re: [quicwg/base-drafts] Possible HoL blocking due to co-mingling payload and metadata (header) address space. (#1606)

grmocg <> Thu, 26 July 2018 22:00 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 885A4131230 for <>; Thu, 26 Jul 2018 15:00:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Status: No, score=-8.009 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id UOo9G062FIB6 for <>; Thu, 26 Jul 2018 15:00:16 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id ED7F7130F86 for <>; Thu, 26 Jul 2018 15:00:15 -0700 (PDT)
Date: Thu, 26 Jul 2018 15:00:15 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1532642415; bh=bOf0h1ohARLtoQLU9BDiHZ0psK2H3DFiO6XkKUvQrEs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=d1VuFK9psPN0zGv24zJc5NMKhVfcG4/UgnIGuNrhtz25HAPrkuQ67cRc667dR0mVm LxPElbTKqNP5bacKqtn+5xKAHuD6rKxj7X16tZQxTt+wFID+UdUWtECwjy17ffz7El vZXBOwyh8d3fKfS0T9Mkity+LDMtn+FaqADY7Q58=
From: grmocg <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/1606/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Possible HoL blocking due to co-mingling payload and metadata (header) address space. (#1606)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b5a446fe2b_1d4f3fa7aecbe61c131236"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: grmocg
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.27
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 26 Jul 2018 22:00:19 -0000


HTTP's headers are important for caching, but may not be important for the initial streaming. This is still interesting for broadcasts-to-millions, since any hiccup on ingestion of the stream causes a hiccup for any follower/viewer of the stream.

I'm assuming we'd likely also be using a stream-group (i.e. a grouping of a bunch of HTTP requests/responses together). Within that stream-group (which is really better discussed in that issue), we can know that we're sending multiple responses for a particular request (for the playback side). Depending on the eventual interaction with stream-group and headers, a great many assumptions may be possible for the *requesting client*.

Any other client would not be able (unless there is some non-HTTP logic on the server) to make such similar assumptions, and would need more data in headers.

There are certainly a few ways to play with this:
1) assume that the headers are below offset X. Start payload at offset X.
2) Transmit a new frame-type which specifies the offset of the headers data until the receiver ack's t has received it.
3) Use different streams for each (this interacts in fun ways with flow-control/max streams). If you assume one of the bits was used to indicate metadata vs payload , that could be sufficient.
... and more.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: