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

Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com> Tue, 18 August 2020 04:53 UTC

Return-Path: <pieter-jan.speelmans@theoplayer.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 EA4DA3A1749 for <hls-interest@ietfa.amsl.com>; Mon, 17 Aug 2020 21:53:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=theoplayer-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 Lr1qDQCABF_N for <hls-interest@ietfa.amsl.com>; Mon, 17 Aug 2020 21:52:59 -0700 (PDT)
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (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 6DF2A3A174D for <hls-interest@ietf.org>; Mon, 17 Aug 2020 21:52:59 -0700 (PDT)
Received: by mail-io1-xd2a.google.com with SMTP id g13so5662951ioo.9 for <hls-interest@ietf.org>; Mon, 17 Aug 2020 21:52:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=theoplayer-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AlHckG1nGMBwGDMg+dlpUfDu7TtL5Jx52YbKVztyozw=; b=Ltob6m8ZjKmt7B1wgmhC7sAk9Tqnk/w02zZ84vafGiG8J6XMQyF9ufe+SvP2+ocK5Y e7ASSVErViyNKhMAgqxySMgKSDe9sVphFXbLFpL6pAaapWHq/ZTSEtbzHZleCQ0zVvMm 27uad32Mnj+NCp3OLPVvme6X+zH1MJLDxQvlIRtSZrsTxs8Wi2006iZjsvyPqjO6xrAR dQntAi+25ahHW3fxTMcs0DvUFYCzM6cd6SRl6+Q6CeIdXL7+GnQ0JbGscjGrZZ7b/D+O or31JFZjPvnJy05PuCOAUO4xuqb5fqGOeB9uApYhi5MkVVoWZzXxfSOsgpVaX9B/BSoi jtBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AlHckG1nGMBwGDMg+dlpUfDu7TtL5Jx52YbKVztyozw=; b=oghyv0EO0wRWgplXf/USsRIrJnWcyWbPxWtSIEgNGrY6HDQkL6tcvpgjthGMDI4uxH AUv7f6c/0nvLRnV5GWvDVXWquUUQBu03Kj7EtEutGe6X5UF2iENlQG72xyDfglBeC8D/ RxwdqDnFyXOgCRusBfTRKhJ0J0waiCzny+VwZgN3CljP/LeUeUAv7YTnDhoiIpQmN2Zr 16cU6HAUhDc5/n++0hIc+hwqIvfGfDZNn5VxLChELkPCpDwKZL4lgyb+t9BOlSc5GUu4 MC7AyIHnXhtW/QkXrmSBS5fTvtzjuhwltb8Nr5J1ov9lzz9Z8/pUidxM6lB5EYDjqpBm opKw==
X-Gm-Message-State: AOAM533LPmp4vY7+16WS/RBQ0+UV32tCimU29g6gdmBkM1UJ4FIkaHnp 45ZkqjVYNS4DJphTM7GhJZiWS2YfrqBV30kt6Q+eOlvQdpocO3hv6ijl6rxDTVYsmUlbkWCDb7H WSLV05EGl5dNWOZUL0zaalN8=
X-Google-Smtp-Source: ABdhPJzyxLIQjxQAdYS3obvOpky2kM7vIWyYxAUZAZdk84AjKLN++FJ8bvnjWtsDO6DI5GEHdZ4qsm9qebWZbDPvjkE=
X-Received: by 2002:a5d:91d4:: with SMTP id k20mr15382627ior.9.1597726378516; Mon, 17 Aug 2020 21:52:58 -0700 (PDT)
MIME-Version: 1.0
References: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
In-Reply-To: <05DC4355-8B2D-4A1F-A223-7B4E9DE1EF63@akamai.com>
From: Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com>
Date: Tue, 18 Aug 2020 06:52:22 +0200
Message-ID: <CAAqSTpmAp9YQ=x7CmEQsNQaGGOMD0WA1UD0_0FevJW1gkhO38w@mail.gmail.com>
To: "Law, Will" <wilaw=40akamai.com@dmarc.ietf.org>
Cc: "hls-interest@ietf.org" <hls-interest@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003d84b405ad1fa998"
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/lLPWb4vF8jJk5AhoK_5-dgFC8_E>
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: Tue, 18 Aug 2020 04:53:04 -0000

Hi all

Related to that:

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.

An optimisation we have considered from a client side would be to identify
those 6 range requests would actually fold together in one larger range
request (and potentially the request for the preload hint as well). Folding
the first six requests together should be OK according to normal HTTP
flows.

What would be the expected behaviour however if the preload-hint request
also gets collapsed into this or simply the asset v1_1-7728.m4s would be
requested without a range request at all?

Best regards,
Pieter-Jan



*Pieter-Jan Speelmans*CTO

*THEO Technologies NV*
*w *| www.theoplayer.com
Philipssite 5, Bus 1. 3001 Leuven, Belgium
<https://d2oj23ymxjbl3l.cloudfront.net/>
Leuven (Belgium) - New York (US) - San Francisco (US) - Singapore (SG) -
Barcelona (ES)
BTW: BE 0847.829.290, RPR: Leuven


On Tue, Aug 18, 2020 at 1: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
>
>    1. 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.
>    2. 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 “*”.
>    3. 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:
>
>    1. Is a 200 status-code expected in the response to the PRELOAD
>    request?
>    2. 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
>

-- 
*Legal Notice *
You can find the latest terms and policies of THEO 
Technologies under www.theoplayer.com/terms 
<http://www.theoplayer.com/terms> including our "GENERAL TERMS AND 
CONDITIONS". In the absence of a signed agreement between you and THEO 
Technologies, by replying to this email these terms apply to the relevant 
transaction between us.   
The contents of this email message and any 
attachments are intended solely for the addressee(s) and contain 
CONFIDENTIAL and/or privileged information and are legally protected from 
disclosure. If you are not the intended recipient of this message, please 
immediately alert the sender by reply email and then delete this message 
including any attachments and you are hereby notified that any use, 
dissemination, copying, or storage of this message or its attachments is 
strictly prohibited. 
Full security of emails over the internet cannot be 
ensured. Despite our efforts it is your responsibility to provide for your 
protection.
Global HQ: THEO Technologies NV, Philipssite 5 bus 1, 3001 
Heverlee, Belgium - BE 0847.829.290 - CEO: Steven Tielemans