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

Roger Pantos <rpantos@apple.com> Wed, 19 August 2020 20:17 UTC

Return-Path: <rpantos@apple.com>
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 A09883A0DE9 for <hls-interest@ietfa.amsl.com>; Wed, 19 Aug 2020 13:17:29 -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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 7fJDB5ABBBBu for <hls-interest@ietfa.amsl.com>; Wed, 19 Aug 2020 13:17:28 -0700 (PDT)
Received: from nwk-aaemail-lapp02.apple.com (nwk-aaemail-lapp02.apple.com [17.151.62.67]) (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 015CA3A0DE7 for <hls-interest@ietf.org>; Wed, 19 Aug 2020 13:17:27 -0700 (PDT)
Received: from pps.filterd (nwk-aaemail-lapp02.apple.com [127.0.0.1]) by nwk-aaemail-lapp02.apple.com (8.16.0.43/8.16.0.42) with SMTP id 07JKFg33053447 for <hls-interest@ietf.org>; Wed, 19 Aug 2020 13:17:27 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : content-type : mime-version : subject : date : references : to : in-reply-to : message-id; s=20180706; bh=GtHGXPENnl4T2piuMfzMWWi6QxaW6lZ2f6hlAORIJ1g=; b=vxooeXm6VIJBSkwwSS2U1R9WG+sIjg6IXvkd5eKGrWWuikZZkZa+L5E7RHYyFE+ng6L0 ooJzffeV7gTWZI/lRKkYA1Ed5pQIgysI7F/w5eTbAHeykPVkGfOmC/XhSZKYoNmJlUC/ GRZgUEl+0471kQMe23juyoVZoikJTTbtn2HCTE5XKNM+7X9jvxV9FFnqHdsKOMRC4se2 7dSdfRO9Z4BMKVqSanSoI5HXjyYyJ7gj5vJxNATT2k0pCk4abTZ3704z47fbqTY3jykK TakFq4A2X37i+o+/2rSo5MaSRovefSosV8ZP3yLXPrawwbSFEXe0l76pcpi9UnT2YFZ4 yA==
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by nwk-aaemail-lapp02.apple.com with ESMTP id 32xc9hd249-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for <hls-interest@ietf.org>; Wed, 19 Aug 2020 13:17:27 -0700
Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) with ESMTPS id <0QFB010ASV13AG00@rn-mailsvcp-mta-lapp02.rno.apple.com> for hls-interest@ietf.org; Wed, 19 Aug 2020 13:17:27 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) id <0QFB00P00U9TLO00@rn-mailsvcp-mmp-lapp03.rno.apple.com> for hls-interest@ietf.org; Wed, 19 Aug 2020 13:17:27 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 5d843af0366bb2427274d1181edabdda
X-Va-E-CD: d7717d3ed5ffa743b607363abe9f35f6
X-Va-R-CD: 4b91e582f367bf8837880807a8b2216b
X-Va-CD: 0
X-Va-ID: f49fbb72-9187-44c3-9598-8cf0d80efb39
X-V-A:
X-V-T-CD: 5d843af0366bb2427274d1181edabdda
X-V-E-CD: d7717d3ed5ffa743b607363abe9f35f6
X-V-R-CD: 4b91e582f367bf8837880807a8b2216b
X-V-CD: 0
X-V-ID: 92f6d89f-6e49-4b59-81b5-f7d1366379d0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-08-19_13:2020-08-19, 2020-08-19 signatures=0
Received: from localhost (unknown [17.234.34.105]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) with ESMTPSA id <0QFB00YI2V124J00@rn-mailsvcp-mmp-lapp03.rno.apple.com> for hls-interest@ietf.org; Wed, 19 Aug 2020 13:17:26 -0700 (PDT)
From: Roger Pantos <rpantos@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_A4EF5016-0D34-466F-AE54-0992D5C72C54"
MIME-version: 1.0 (Mac OS X Mail 14.0 \(3653.0.3\))
Date: Wed, 19 Aug 2020 13:17:26 -0700
References: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
To: "hls-interest@ietf.org" <hls-interest@ietf.org>
In-reply-to: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
Message-id: <47DC8FD2-685F-4816-A9D2-02214E96E3C0@apple.com>
X-Mailer: Apple Mail (2.3653.0.3)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-08-19_13:2020-08-19, 2020-08-19 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/SvNOcyGYGoTy_6T__uF_TG7wBEA>
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: Wed, 19 Aug 2020 20:17:30 -0000


> On Aug 17, 2020, at 4:30 PM, 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. 
>  

Note that when using H2 (or H3) that there is a fourth option, which is to return 206 and not supply any Content-Length header at all. This (I believe) became the expected behavior when HTTP/2 removed support for chunked transfer encoding: https://httpwg.org/specs/rfc7540.html#HttpSequence


Roger Pantos
Apple Inc. 

> 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 <mailto:Hls-interest@ietf.org>
> https://www.ietf.org/mailman/listinfo/hls-interest <https://www.ietf.org/mailman/listinfo/hls-interest>