Re: Live Byte Ranges

Craig Pratt <> Mon, 28 November 2016 21:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id CFEEA129587 for <>; Mon, 28 Nov 2016 13:11:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -7.674
X-Spam-Status: No, score=-7.674 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.497, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id vLvSJHcY6B76 for <>; Mon, 28 Nov 2016 13:11:07 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3D958129569 for <>; Mon, 28 Nov 2016 13:11:06 -0800 (PST)
Received: from lists by with local (Exim 4.80) (envelope-from <>) id 1cBT8r-000735-0d for; Mon, 28 Nov 2016 21:07:13 +0000
Resent-Date: Mon, 28 Nov 2016 21:07:13 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <>) id 1cBT8j-00072K-H0 for; Mon, 28 Nov 2016 21:07:05 +0000
Received: from ([]) by with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <>) id 1cBT8N-0000wL-5q for; Mon, 28 Nov 2016 21:06:55 +0000
Received: by with SMTP id d2so26831683pfd.0 for <>; Mon, 28 Nov 2016 13:06:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=subject:to:references:from:organization:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=CIb/kBLYphHV1yy0dWpeMBSgYvMU7RjGXw2Zix1GIhU=; b=YjjOAWNRs5aAiyuxcj3r/iwERATeHjM+ijaVKb4Zq59ElUvwAhvr34kCWLZ4wnTBGn exK2/vk2MqO9V8YeQeF6ef3p6QCKMLfSxbDOSRACyQx2K6cZToDuL0DR+g6SN8nF09+h o8PeHTuw9P30YhCgi+t0DZTv61pGKGlPqKX1FA64uQX5XmAogePj2Gi0/1A0AJPvXsd0 oEhOEJ+FLfY7GPisE3NyGpd+r9kAxLjZOvtAtNWO4Y/0H1SpSVI1anFbTH7Yc/v9rThC VI580091hadaUhHDrPg/0Tfz5iSk8pw37xdtGUtZSnY13AjoF1JaG5hKEytepfWETbSw t3tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=CIb/kBLYphHV1yy0dWpeMBSgYvMU7RjGXw2Zix1GIhU=; b=EglAPlXUPhgEIExu4gFC8EWCKApZPgWwoTUkUIVN/wthmc+2p3hUWbeTwctOtIg8si KiIc1XIJIyfnk8LEdczTeCfOdInpJ3svlD6yUP2qyPHI52l1geUshHyVEqhrSozYFnJ5 Qdt8Wu7JJNR1bGp5xVvWvBWPEp47Wx2bDH+QfjRF+luiO8p4akxcwEPdMtbR3ZlIGWuG wMGcCmh3YRa+PPBXeJms7/YW7bk99Dnamn27VaqiRVVLUXpc3Ay49kNWxEQbbD68qJzU wgM2IrGvNOgDGClr0eGbBQPe1PD1Sk0ruh6kJ+nmpGqYeKYM9wt4rPEk4jmMmvVWqN3g 43qQ==
X-Gm-Message-State: AKaTC03aoop++8epxtbQ4gALxIXXPjT3M3jgmQRwsnHwH1S6vreP/5xxBjzWVTPviIpY3g==
X-Received: by with SMTP id q80mr24104480pfj.26.1480367175641; Mon, 28 Nov 2016 13:06:15 -0800 (PST)
Received: from [] ( []) by with ESMTPSA id a66sm89379421pfa.64.2016. for <> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Nov 2016 13:06:14 -0800 (PST)
References: <> <>
From: Craig Pratt <>
Organization: Caspia Consulting
Message-ID: <>
Date: Mon, 28 Nov 2016 13:06:13 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Thunderbird/45.5.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/html; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.6
X-W3C-Hub-Spam-Report: AWL=-1.439, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1cBT8N-0000wL-5q 83656da019460f6f837bad998afddc71
Subject: Re: Live Byte Ranges
Archived-At: <>
X-Mailing-List: <> archive/latest/33026
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

Thanks much for the feedback.

Reply in-line.


On 11/28/16 11:52 AM, Poul-Henning Kamp wrote:
In message <>
, Patrick McManus writes:

To summarize briefly - this addresses the problem of addressing byte ranges
of dynamic (growing) content. A number of solutions have seen false starts
in this space previously, but this one has a shot at being compatible with
existing infrastructure.
Varnish will almost certainly implement whatever comes out of this.
I should add that I'm going to submit a patch to Rygel (the Gnome media streaming package) to support this draft as well.

Notes from our mumblings in the project:

The "Very Large Value" solution it is brittle in more ways than is
desirable, but try as we may, we don't see any simpler/better ways
of doing it without negotiation/hints.
Agreed. I wish there was a better way. Maybe the rust can be cleaned off of Range Units by filing some bugs against implementations that are making assumptions about Range Units. Even if it's not used/helpful here, it might open the door for some other applications.

We suggest to either put a "Quite Large" lower limit on "Very Large
Value", or better yet:  Make it a magic value large enough to not
be a problem relative to actual Range requests.  If we keep with
the 9's motif from the draft, we suggest 999999999999999999 which
doesn't needlessly provoke 64-bit sign issues.
I thought about the magic value approach. It's certainly more deterministic to use a Quite Large Magic Value (QLMV?) - and easier to specify and code. And it's entertaining to think up magic values (e.g. 2^63 - 42) (but agreed that all 9s does a better job of jumping out to us humans). I just couldn't suppress my engineering gag reflex at the whole concept. This reflex has some adjustment, but I'm presuming it's a common reaction.

I also didn't like the idea of forcing a limit. But 2^63 is a crazy-large number. At 50Mb/s, the representation could cover over 46000 years, according to my quick math (with 999999999999999999 covering a mere 5073 years). And there's nothing preventing the definition/addition of a VLMV now or later. I just can't help but wonder if a Registry of Magic Values would then be in order (there's that gag reflex again).

Anyway, I'm good either way so long as there's general consensus. I tried to cover the issue of values larger than 2^63 in the Security Considerations section. Perhaps a "should" or recommended QLMV/VLMVs would be a way to go? Other thoughts/opinions appreciated here.

Typo on page 3: "accessable"

Thanks. It'll be corrected in the next version. (Somehow "accessable" is in my mac's spelling dictionary)



craig pratt

Caspia Consulting