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

Thorsten Lohmar <thorsten.lohmar@ericsson.com> Mon, 18 April 2016 15:16 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 9DB4C12D8E8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 18 Apr 2016 08:16:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.906
X-Spam-Level:
X-Spam-Status: No, score=-7.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=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, T_KAM_HTML_FONT_INVALID=0.01] 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 Hjn_N80vykTC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 18 Apr 2016 08:16:25 -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 7D65F12D80B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 18 Apr 2016 08:16:25 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1asAq8-0001Zr-6K for ietf-http-wg-dist@listhub.w3.org; Mon, 18 Apr 2016 15:11:52 +0000
Resent-Date: Mon, 18 Apr 2016 15:11:52 +0000
Resent-Message-Id: <E1asAq8-0001Zr-6K@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <thorsten.lohmar@ericsson.com>) id 1asAq1-0001Z6-Gz for ietf-http-wg@listhub.w3.org; Mon, 18 Apr 2016 15:11:45 +0000
Received: from sesbmg22.ericsson.net ([193.180.251.48]) by maggie.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <thorsten.lohmar@ericsson.com>) id 1asApy-0001py-08 for ietf-http-wg@w3.org; Mon, 18 Apr 2016 15:11:45 +0000
X-AuditID: c1b4fb30-f79d86d0000062a1-af-5714f9105200
Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 22.88.25249.019F4175; Mon, 18 Apr 2016 17:11:12 +0200 (CEST)
Received: from ESESSMB101.ericsson.se ([169.254.1.195]) by ESESSHC012.ericsson.se ([153.88.183.54]) with mapi id 14.03.0248.002; Mon, 18 Apr 2016 17:10:49 +0200
From: Thorsten Lohmar <thorsten.lohmar@ericsson.com>
To: Craig Pratt <craig@ecaspia.com>, "K.Morgan@iaea.org" <K.Morgan@iaea.org>, "fielding@gbiv.com" <fielding@gbiv.com>
CC: Göran Eriksson AP <goran.ap.eriksson@ericsson.com>, "bs7652@att.com" <bs7652@att.com>, "remy@lebeausoftware.org" <remy@lebeausoftware.org>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>, "rodger@plexapp.com" <rodger@plexapp.com>, "julian.reschke@gmx.de" <julian.reschke@gmx.de>, "C.Brunhuber@iaea.org" <C.Brunhuber@iaea.org>
Thread-Topic: Issue with "bytes" Range Unit and live streaming
Thread-Index: AQHRlqXePiSODXLlvEqDPRCmmHhjTJ+KGy8AgADHwACAAGFaAIAAD+8AgAAGnQCAAAUNgIAD9nbA///9bQCAAH8nUA==
Date: Mon, 18 Apr 2016 15:10:49 +0000
Message-ID: <9E953B010F1E974399030905C5DCB2E7183D2D4B@ESESSMB101.ericsson.se>
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>
In-Reply-To: <5714A316.1080609@ecaspia.com>
Accept-Language: de-DE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.148]
Content-Type: multipart/alternative; boundary="_000_9E953B010F1E974399030905C5DCB2E7183D2D4BESESSMB101erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPIsWRmVeSWpSXmKPExsUyM2K7ma7AT5Fwg00nJCwm/f3JaLF75kom i+bJ29gs5m3ztzjcMovJYvPDN6wWbXN2MFlMbjjAbrF/ax+jA6fHy/45jB479il6rLnfx+7x 4WOcx//msyweLfOPsXvsWnSazePovP2sARxRXDYpqTmZZalF+nYJXBnfzk1kLzg7m7FiUX8H YwPjtVbGLkZODgkBE4kfd1qZIWwxiQv31rN1MXJxCAkcYZRYfaeXFSQhJLCEUWLNRpsuRg4O NqCGfW/kQcIiAuUSzydsZQapZxZ4yCSxomsjWL2wgK3EnNl72EDqRQTsJJ5fUYWoz5L4/+QT 2F4WAVWJJ/NamUBsXgFfiXsXGqBW7WOWaOtwALE5BbQlTu2bB1bPKCArsWHDebA7mQXEJW49 mc8EcbOAxJI956HuF5V4+fgfK4StJNG45AkrRH2+xJJb59khdglKnJz5hGUCo+gsJKNmISmb haQMIq4ncWPqFDYIW1ti2cLXzBC2rsSMf4dYkMUXMLKvYhQtTi1Oyk03MtJLLcpMLi7Oz9PL Sy3ZxAiM9oNbfhvsYHz53PEQowAHoxIPbwK7SLgQa2JZcWXuIUYJDmYlEV6DH0Ah3pTEyqrU ovz4otKc1OJDjNIcLErivNmR/8KEBNITS1KzU1MLUotgskwcnFINjF13ZmT8Fat9v1ap9PiF VVcrSwNuHbeJYOh8lFEwK+rAy+aymgM6tvOz67hkUuRW3IrO//MrT+wFo7rx3JqpN3bv+371 quwD6yOPrtiud1lhfUX68BuJKyc0eAX/uVxh3p3Td2bLi5qOw6vMPK3jJsfmvH/zKKiIM8J+ ftrOnV3eysp/Tm2T/qLEUpyRaKjFXFScCAATw1a98gIAAA==
Received-SPF: pass client-ip=193.180.251.48; envelope-from=thorsten.lohmar@ericsson.com; helo=sesbmg22.ericsson.net
X-W3C-Hub-Spam-Status: No, score=-6.2
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1asApy-0001py-08 3e098ee2f90149d96b4993cc1ed7b114
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/9E953B010F1E974399030905C5DCB2E7183D2D4B@ESESSMB101.ericsson.se>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31493
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>

Hi Craig, all,

My colleague Göran asked me some question around the problem and I would like to raise these questions directly to you. Of course, there are some alternative solutions available, where the client can work out the different things from a manifest. But you seem to look for a simple solution, which works with non-segmented media on a single HTTP session.

When I understood it correctly, an HTTP server is making a live stream available using HTTP. A normal live stream can be opened with a single HTTP request and the server can serve data "from the live point" either with or without HTTP chunked delivery. The server cannot give a Content-Length, since this is an ongoing live stream of unknown size.

Your use-case seem to be about recording of content. Client should access content from the recorded part, but should be able to jump to the live-point. I assume that you are not looking into sliding window recordings (i.e. timeshift). I assume that the a single program is continuous recording and the HTTP object is growing until the end of the live session, correct?

In any case, how does the client know "good" byte range offsets (i.e. service access points) to tune into the recording? Or is the assumption, that the client can synchronize to the media stream from any byte range?

How should the client know, which byte ranges are already available on the server? When the client is playing back from the recorded part and would like to skip 5min forward, how does the client know, whether a normal range request is needed or whether the client should as for the live point? What type of HTTP Status code should be provided, when the range request is not yet available of the server?

Can you please clarify the questions?

BR,
Thorsten



From: Craig Pratt [mailto:craig@ecaspia.com]
Sent: Monday, April 18, 2016 11:04 AM
To: K.Morgan@iaea.org; fielding@gbiv.com
Cc: Göran Eriksson AP; bs7652@att.com; remy@lebeausoftware.org; ietf-http-wg@w3.org; rodger@plexapp.com; julian.reschke@gmx.de; C.Brunhuber@iaea.org
Subject: Re: Issue with "bytes" Range Unit and live streaming

On 4/18/16 12:34 AM, K.Morgan@iaea.org<mailto:K.Morgan@iaea.org> wrote:

On Friday,15 April 2016 22:43, fielding@gbiv.com<mailto:fielding@gbiv.com> wrote:

Oh, never mind, now I see that you are referring to the second number being

fixed.



I think I would prefer that be solved by allowing last-byte-pos to be empty, just

like it is for the Range request.  I think such a fix is just as likely to be

interoperable as introducing a special range type (same failure cases).



....Roy



+1000



A very similar idea was proposed before [1] as an I-D [2] by Rodger Coombs. We've also brought this up informally with other members of the WG.



Alas, in our experience range requests don't seem to be a high priority :(  For example, the problem of combining gzip with range requests is still unsolved [3].



[1] https://lists.w3.org/Archives/Public/ietf-http-wg/2015AprJun/0122.html

[2] https://tools.ietf.org/html/draft-combs-http-indeterminate-range-01

[3] https://lists.w3.org/Archives/Public/ietf-http-wg/2014AprJun/1327.html
[cp] Yeah, it's unfortunate that no solutions have moved forward for this widely-desired feature. I can only assume that people just started defining proprietary solutions - which is unfortunate. I'll try to be "persistent"... ;^J

[cp] As was mentioned, the issue with just arbitrarily allowing an open-ended Content-Range response (omitting last-byte-pos) is that there's no good way for a client to indicate it can support reception of a Content-Range without a last-byte-pos. So I would fully expect many clients to fail in "unpredictable ways" (disconnecting, crashing, etc).

[cp] I see that the indeterminate length proposal you referenced in your first citation introduces a "Accept-Indefinite-Ranges" header to prevent this issue. But I think this brings with it some other questions. e.g. Would this apply to any/all Range Units which may be introduced in the future? How can a Client issue a request that starts at the "live point"? It feels like it has one hand tied behind its back.

[cp] If I could, I would prefer to go back in time and advocate for an alternate ABNF for the bytes Range Unit. Seeing as that's not an option, I think using this well- and long-defined Range Unit extension mechanism seems like a good path forward as it should not create interoperability issues between clients and servers.

[cp] And I would hope adding a Range Unit would have a low/lower bar for acceptance. e.g. If a Range Unit fills a useful role, is well-defined, and isn't redundant, it seems reasonable that it should be accepted as it shouldn't impact existing HTTP/1.1 semantics. In fact, the gzip case (referenced in your third citation) seems like a perfect application of the Range Unit (better than bytes-live). If there's interest, I'll write up an RFC to demonstrate...






This email message is intended only for the use of the named recipient. Information contained in this email message and its attachments may be privileged, confidential and protected from disclosure. If you are not the intended recipient, please do not read, copy, use or disclose this communication to others. Also please notify the sender by replying to this message and then delete it from your system.

--


craig pratt

Caspia Consulting

craig@ecaspia.com<mailto:craig@ecaspia.com>

503.746.8008