Re: Issue with "bytes" Range Unit and live streaming

"Roy T. Fielding" <fielding@gbiv.com> Thu, 21 April 2016 00:42 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 96E8912EFA0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 20 Apr 2016 17:42:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.917
X-Spam-Level:
X-Spam-Status: No, score=-7.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 1Q_dvVYJqoGR for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 20 Apr 2016 17:42:19 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A336912EF9F for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 20 Apr 2016 17:42:19 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1at2d0-00056w-2J for ietf-http-wg-dist@listhub.w3.org; Thu, 21 Apr 2016 00:37:54 +0000
Resent-Date: Thu, 21 Apr 2016 00:37:54 +0000
Resent-Message-Id: <E1at2d0-00056w-2J@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <fielding@gbiv.com>) id 1at2ct-00056B-IK for ietf-http-wg@listhub.w3.org; Thu, 21 Apr 2016 00:37:47 +0000
Received: from sub4.mail.dreamhost.com ([69.163.253.135] helo=homiemail-a95.g.dreamhost.com) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <fielding@gbiv.com>) id 1at2cr-0001Ya-Ed for ietf-http-wg@w3.org; Thu, 21 Apr 2016 00:37:47 +0000
Received: from homiemail-a95.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a95.g.dreamhost.com (Postfix) with ESMTP id 3D0B61E08F; Wed, 20 Apr 2016 17:37:11 -0700 (PDT)
Received: from [192.168.1.2] (ip68-228-71-159.oc.oc.cox.net [68.228.71.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: fielding@gbiv.com) by homiemail-a95.g.dreamhost.com (Postfix) with ESMTPSA id 094FB1E094; Wed, 20 Apr 2016 17:37:09 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: "Roy T. Fielding" <fielding@gbiv.com>
In-Reply-To: <5717EFB0.4050708@ecaspia.com>
Date: Wed, 20 Apr 2016 17:36:57 -0700
Cc: ietf-http-wg@w3.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <6953797D-40FA-45C3-9294-9A1B0578D58E@gbiv.com>
References: <57102718.7010900@ecaspia.com> <571041E0.5020401@lebeausoftware.org> <2D09D61DDFA73D4C884805CC7865E61142655F7B@GAALPA1MSGUSRBF.ITServices.sbc.com> <D3370313.258AE%goran.ap.eriksson@ericsson.com> <57114878.1030606@ecaspia.com> <43C1ECE7-139E-4FC8-A46D-83887261B7BC@gbiv.com> <6AB4CBAA-E79D-4DAC-818D-65383B85B81B@gbiv.com> <0356EBBE092D394F9291DA01E8D28EC2021CEBE9AC@SEM001PD.sg.iaea.org> <5714A316.1080609@ecaspia.com> <9E953B010F1E974399030905C5DCB2E7183D2D4B@ESESSMB101.ericsson.se> <5715438F.4030100@ecaspia.com> <9E953B010F1E974399030905C5DCB2E7183D3011@ESESSMB101.ericsson.se> <57160081.9050307@ecaspia.com> <9E953B010F1E974399030905C5DCB2E7183D33A3@ESESSMB101.ericsson.se> <5716A8F8.6010208@ecaspia.com> <9E953B010F1E974399030905C5DCB2E7183D3DC4@ESESSMB101.ericsson.se> <5717C89C.1010601@ecaspia.com> <9E953B010F1E974399030905C5DCB2E7183D4070@ESESSMB101.ericsson.se> <CACweHNCFi_x5k6sZ0n3u3oNpa2rE7i-08fh9xtqfZFe4SfjSwA@mail.gmail.com> <5717EFB0.4050708@ecaspia.com>
To: Craig Pratt <craig@ecaspia.com>
X-Mailer: Apple Mail (2.2104)
Received-SPF: none client-ip=69.163.253.135; envelope-from=fielding@gbiv.com; helo=homiemail-a95.g.dreamhost.com
X-W3C-Hub-Spam-Status: No, score=-6.7
X-W3C-Hub-Spam-Report: AWL=-0.075, BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1at2cr-0001Ya-Ed 0c8c825c0ef34b216a9f3d0e778cbda4
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Issue with "bytes" Range Unit and live streaming
Archived-At: <http://www.w3.org/mid/6953797D-40FA-45C3-9294-9A1B0578D58E@gbiv.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31539
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

> On Apr 20, 2016, at 2:08 PM, Craig Pratt <craig@ecaspia.com> wrote:
> 
> Reply in-line.
> 
> cp
> 
> On 4/20/16 1:14 PM, Matthew Kerwin wrote:
>> 
>> 
>> On 21/04/2016 5:37 AM, "Thorsten Lohmar" <thorsten.lohmar@ericsson.com <mailto:thorsten.lohmar@ericsson.com>> wrote:
>> >
>> > Hi Craig,
>> >
>> > > What *is* missing is the ability to get a continuous byte range on live content
>> > > that starts at an arbitrary offset and the ability to directly jump to the live
>> > > point.
>> >
>> > Yes, and there are two solutions to the issue:
>> > A. Enable it on HTTP Layer through the definition of a new range request method
>> > B. Enable working with existing HTTP procedures, i.e. client can workout the precise byte offsets.
>> 
>> C. Use a different URL (e.g. a ?start= query parameter). It's less optimal for caching, but it works today without any new specs.
>> 
> [cp] We can't use a different URI in our application (the UPnP CDS and DLNA RUIH guidelines only one URI per resource).
> 
> [cp] We can define a custom header. But (a) it appears that the feature we're describing has been requested many times over, (b) at least having an RFC enables caches to be implemented. Using a custom header or URI will require caching to be disabled by the origin server.
> 
> [cp] One point I haven't mentioned about caching with bytes-live: Since the bytes-live Range Unit is designed to work in concert with the bytes Range Unit (not superceded it), caching can still be performed by proxies that don't understand bytes-live. The read-through and hit ratio will be reduced. But there's still opportunities to cache.

This doesn't make any sense.  The live stream URI (whatever it is) always identifies
the current live stream head.  An HTTP cache cannot save that because each new request
expects the latest live stream.  What it can do is parallel cache the live stream's
representation under a different "past stream" URI (or an array of such) and include
instructions on how to use that within the live stream metadata.  Regardless, the live
stream HTTP response must be marked as non-cacheable to avoid filling up normal caches.

On balance, I think this is a poor use of HTTP.  The Apple live streaming protocol,
which is just a dynamically updated representation of a queue by reference, is
able to perform the same task without twisting backwards.  By indirectly referencing
the data streams, the primary queue can remain non-cacheable (until the stream dies
and is archived) without impacting (partial) requests on the referenced data streams.

....Roy