Re: [Hls-interest] LL-HLS: status-code expected in the response to the PRELOAD request

Mark Nottingham <mnot@mnot.net> Mon, 17 August 2020 23:37 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: hls-interest@ietfa.amsl.com
Delivered-To: hls-interest@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C1AD83A1451 for <hls-interest@ietfa.amsl.com>; Mon, 17 Aug 2020 16:37:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=FZGUNUhy; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=CWnVGFVy
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 A-d5Ei6s_a1O for <hls-interest@ietfa.amsl.com>; Mon, 17 Aug 2020 16:36:58 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 670ED3A1442 for <hls-interest@ietf.org>; Mon, 17 Aug 2020 16:36:58 -0700 (PDT)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id CBDA85C00BD; Mon, 17 Aug 2020 19:36:57 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Mon, 17 Aug 2020 19:36:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm3; bh=J zGcBBnttkUkk1IMarrZFdsJX0PhL/2bIoud/WnlPwI=; b=FZGUNUhyaBbcMq45N yKwY8uTfY9efQGQeuXsW/yPEZ4ZAPxqLp8cxpKnOFcO3GKc7oQH4SG46zgK0GhUR 4AyYEcNoZun6tYERs+XjkG9tyllEED3saDPJAZt+WkcPleC30QanMoO2p9XiwYr2 wLUDYvkBepflrISMgu/3jNgiDFHzNQODyCZZSYc6gnY957dNV+3gZH8DVysFFA5Q 2EN9UPMUmeZ3jrtFICcr9pyF243S7YKT798Qr1jG6RXTv5/GSNoNwqySSMY2dWzO Ks4rGRIipQAbpjcakoTg+fWEv2dBS50zPV8nu8fGj7IS7U5bct/C99aK1RAn6qDx wbh8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=JzGcBBnttkUkk1IMarrZFdsJX0PhL/2bIoud/WnlP wI=; b=CWnVGFVy96JfpB/VJZpWd50u5LypF2lBpcArBByV9PIJPQhdUKF4XckHg lASfD3EQcRbDq7FAmusYgEQnzN0ozMj+fkfQ1P5gjqNjIQps0OhHYvEE5EWf3DQR yrZ1smiR63hHYzn7QlT25nTkSrmAXmC7k5Dnw0vgSK7NC+GKSRy5rZnY6cFnwPlk BpTORL7yWeIG2VfjR68hkG0akxCeqLhu7MSDiFcdm2K5nnGQL8l9S2FpLw7D/rBu G/JnuBTjBQ4LojNF0qONCsbwenlEZ0IGQCWNTtvM0akxJf8Q2+SMot3czGCgxJG5 DPpWj8aEWaJuZVOR+OTJqqcFwdDeg==
X-ME-Sender: <xms:mBQ7X5s0J_KsvjBOw7NWTCAaF6e2WnvMF6fU6FS9hnWaUuXBaxNHAw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedruddthedgvddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtggfuhfgjfffgkfhfvffosehtqh hmtdhhtdejnecuhfhrohhmpeforghrkhcupfhothhtihhnghhhrghmuceomhhnohhtsehm nhhothdrnhgvtheqnecuggftrfgrthhtvghrnhepfeegvdfgjeegvdetuedukeevfefhhe elieevjeejkefhffehkeejieekjedtheejnecuffhomhgrihhnpehivghtfhdrohhrghdp mhhnohhtrdhnvghtnecukfhppeduudelrddujedrudehkedrvdehudenucevlhhushhtvg hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmnhhothesmhhnohhtrdhn vght
X-ME-Proxy: <xmx:mBQ7XyfEzoTdrKYwBHJsOjLphiZ8-SBBNQgB39u0WpSwEY310YBiZA> <xmx:mBQ7X8zmmO0E81t4fq9tHEkR5sF1EyMKXYf4hQf502SKejco3rJSbQ> <xmx:mBQ7XwP5aHoGzdEgn0bLdsXejj40wmh0KWnj_-Bp6mHteNOsFjdJvg> <xmx:mRQ7X7kB9--QvHO-eYQD5o3U8Z8hSr8V64mWT80Dh77-eWr0gMtV5g>
Received: from [192.168.7.30] (119-17-158-251.77119e.mel.static.aussiebb.net [119.17.158.251]) by mail.messagingengine.com (Postfix) with ESMTPA id E1512328005E; Mon, 17 Aug 2020 19:36:55 -0400 (EDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
Date: Tue, 18 Aug 2020 09:36:54 +1000
Cc: "hls-interest@ietf.org" <hls-interest@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <8F443C0A-CD2D-406B-91BE-DF84A1E4D2E1@mnot.net>
References: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
To: "Law, Will" <wilaw=40akamai.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/XUqtw3uAP1ddxJLcvVUfx0s0nwY>
Subject: Re: [Hls-interest] LL-HLS: status-code expected in the response to the PRELOAD request
X-BeenThere: hls-interest@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussions about HTTP Live Streaming \(HLS\)." <hls-interest.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hls-interest/>
List-Post: <mailto:hls-interest@ietf.org>
List-Help: <mailto:hls-interest-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Aug 2020 23:37:02 -0000

Hi Will,

Not sure it's exactly applicable to your use case, but does this help?
  https://tools.ietf.org/html/rfc8673#section-2.2

Cheers,


> On 18 Aug 2020, at 9:30 am, Law, Will <wilaw=40akamai.com@dmarc.ietf.org> wrote:
> 
> Hello
>  
> I am requesting a clarification on the expected server response status code when a client makes an open-ended range request against a media segment when playing back LL-HLS.  Consider the following media playlist snippet:
>  
> #EXTINF:4.000,
> v1_1-7727.m4s
> #EXT-X-PROGRAM-DATE-TIME:2020-07-28T17:37:48.771Z
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="64267@0",INDEPENDENT=YES
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="63033@64267"
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="57810@127300"
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="60558@185110"
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="68575@245668"
> #EXT-X-PART:DURATION=0.500,URI="v1_1-7728.m4s",BYTERANGE="60880@314243"
> #EXT-X-PRELOAD-HINT:TYPE=PART,URI="v1_1-7728.m4s",BYTERANGE-START=375123
>  
> To start-up, the client would issue 6 GET range-requests , starting at the independent part The server would respond with a 206 response for each and a content-range response header indicating the range being returned.
>  
> The next request would be for the PRELOAD-HINT part. This would be a GET request with a “range: 375123-“. The client is indicating it wants to receive this object starting at offset 375123 and continuing to the end of the segment.
>  
> How should the origin (or proxy server) respond to this PRELOAD request? Three possible options
> 	• It holds back any response until the end of segment, returning at that time a 206 response with a content-range of 375123 – T/T+1 (where represents total size of segment). This would ruin the low latency behavior for the client.
> 	• It starts an immediate response, signaling 206 with content-range: 375123 - */*. This is actually forbidden by the RFC’s, which indicate that the last-byte-pos cannot hold a value of “*”. 
> 	• It starts an immediate response, signaling a 200 response and if serving H1 to a proxy server which then serves H2 to the client, a "Transfer-Encoding: chunked" response header. 
>  
> Option [3] looks to be the most correct however it raises the question of  whether a 200 response (chunked-transfer or not) implies to the client that is has received the complete object i.e starting at offset 0 instead of offset 375123. As a CDN, we need to build a behavior that is robustly supported by all HTTP clients and not just a particular class of application. The proxy-server cannot tell if is serving a LL-HLS client or some other client, therefore we need a consistent behavior when it is asked for an open-ended range request against an object of unknown size.
>  
> So the questions are:
> 	• Is a 200 status-code expected in the response to the PRELOAD request?
> 	• If so, are there other clients or applications on the internet that would break if we did so for all open-ended range requests against objects of unknown size (outside of the application space of LL-HLS)?
>  
> Cheers
> Will
>  
>  
>  
> -- 
> Hls-interest mailing list
> Hls-interest@ietf.org
> https://www.ietf.org/mailman/listinfo/hls-interest

--
Mark Nottingham   https://www.mnot.net/