Re: HTTP/3 DATA_WITH_OFFSET frame

Dmitri Tikhonov <dtikhonov@litespeedtech.com> Thu, 18 February 2021 15:49 UTC

Return-Path: <dtikhonov@litespeedtech.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 572943A139B for <quic@ietfa.amsl.com>; Thu, 18 Feb 2021 07:49:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-com.20150623.gappssmtp.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 p9DLnzU9VMtC for <quic@ietfa.amsl.com>; Thu, 18 Feb 2021 07:49:01 -0800 (PST)
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (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 E04FD3A13AA for <quic@ietf.org>; Thu, 18 Feb 2021 07:49:00 -0800 (PST)
Received: by mail-qk1-x72f.google.com with SMTP id f17so2492887qkl.5 for <quic@ietf.org>; Thu, 18 Feb 2021 07:49:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=A5lRMEzM5tMs3TuwyGFjO/csII3xDBQeLp6zE2j+VDI=; b=WKO9pKqnwJvUEX9bVB2jyRNpZDGmdqOW/bKzWCMkjYINC31WP4G3k7qULsCjJ64Bt/ ko+tKve40Fxnh+T5eCogijOJl1Gj/d/BH1qV9B0X7YGmZg5tOopCapFds/bC8Dl2N5FR 6isIsePlqEWSgQVkk29Dil1DG/Sreaj87SA4kYX59mTtOIgu4ekd88WPsWqIA26vo9J+ 2jSenDWQtJ0otZLHw1YStIeHtIqDpKV/kr8TUoO/eY1cSkJIW1CGK5pfPsj4ezRfMsJR 2EIKIkmX5Of3+PNkRKDwk+Vclp/PRwzrW1bV+UsRqTtZYbvs5x4NqUp41KeTyruQnRQG e4vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=A5lRMEzM5tMs3TuwyGFjO/csII3xDBQeLp6zE2j+VDI=; b=taVpjZEohN0NvZuAmkQW6bAFbrdb7Brd9BeiQ7ubixwi3QOObZfwBylqISTl3e/xAf HAg8kgvP202hpE0+BgmQCoZ3rVH/s/mR5c2vbsuT7d2ElSBEbj5MKR+KTPdevdRiXpFT hQn6o+4uZC+uPmWKsbcRUveEcl7nol0ismV5QMzcurm617+tUyBTHr0cvIeUknApAWyo TdZw2E/+X1tO44Iy8OZ+DodASe7RtfNP4EsKzseFaUB+kj68bbe2khcuZJHY5kWjqpxQ AtHRNIXFlgDJgZVwQW/T1bR91jtiM3clJkT8BrehrjCSbJLtRyIaJ+O7F0FcIdlVIDAe Icog==
X-Gm-Message-State: AOAM530Ewy2O53ygbFv5tFYXravYEemXTxkhWVWBPZgGbhQSc/ldwFs1 sp/+y2Y8B/dQTNYOsX0MbUfJiA==
X-Google-Smtp-Source: ABdhPJx027TxQXu/Lwy1BTuWyw7LUCIr8V0XYfS+VyavSkgAsAd5sanW0e2fAGelRgfdEfcbXBgU0Q==
X-Received: by 2002:a37:8544:: with SMTP id h65mr4820974qkd.200.1613663339916; Thu, 18 Feb 2021 07:48:59 -0800 (PST)
Received: from okhta (ool-44c1d219.dyn.optonline.net. [68.193.210.25]) by smtp.gmail.com with ESMTPSA id j66sm4286898qkf.78.2021.02.18.07.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 07:48:59 -0800 (PST)
Date: Thu, 18 Feb 2021 10:48:57 -0500
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: Samuel Hurst <samuelh@rd.bbc.co.uk>
Cc: IETF QUIC WG <quic@ietf.org>, ietf-http-wg@w3.org
Subject: Re: HTTP/3 DATA_WITH_OFFSET frame
Message-ID: <20210218154857.GB145248@okhta>
Mail-Followup-To: Samuel Hurst <samuelh@rd.bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, ietf-http-wg@w3.org
References: <5c96284e-ea35-0454-3c03-225e9bb5efd9@rd.bbc.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <5c96284e-ea35-0454-3c03-225e9bb5efd9@rd.bbc.co.uk>
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/0ONsIg1ez-y7_THv4rUK1YCXMIs>
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: Thu, 18 Feb 2021 15:49:02 -0000

Hello Sam,

An interesting draft!

On Thu, Feb 18, 2021 at 03:09:54PM +0000, Samuel Hurst wrote:
> As part of these experiments, we discovered issues with maintaining
> synchronisation between senders and receivers using HTTP/3 DATA frames
> carried on an unreliable transport. In order to help mitigate this
> issue, I have come up with a new DATA_WITH_OFFSET extension frame [1]
> which is based on the H3 DATA frame but carries a HTTP representation
> offset in the header.
> 
> Outside of the multicast work, I discovered that such a frame could be
> more generally useful in terms of supporting multipart range requests in
> HTTP/3. My current understanding is that a HTTP/3 endpoint that supports
> range requests will perform single range requests fine, but I would
> imagine that performing a multipart range request with HTTP/3 would
> require both endpoints to use the existing multipart/byteranges media
> type in the body response. This means that endpoints aren't able to take
> advantage of features such as binary framing and header compression that
> HTTP/3 and QPACK give.

These are two different use cases: multicast over unreliable transport
and multipart range requests.  Have you implemented the latter?  As an
implementer, I would be curious to see how a receiver can take advantage
of such framing.  I imagine that several read cursors would have to be
maintained in case of missing STREAM frames and adjusted as more data
comes in.  Then there is the matter of potentially overlapping STREAM
frames due to retransmit.  Not that any of that can't be done, of
course, but it would be an undertaking...

> I've put together a short internet draft as a starting point. Section 3
> describes the extension frame itself, and section 4 describes how it is
> used with multipart range responses.

>From Section 3:

 " The purpose of the "DATA_WITH_OFFSET" frame is only to assist in
 " locating a particular slice of data carried as part of an HTTP
 " message payload, and not as a means to send data out of order.
 " Senders MUST send data in order, i.e. with increasing values in the
 " Offset field.

Why proscribe such use?  This may be an avenue for innovation or
optimization.

  - Dmitri.