Re: [hybi] preliminary WebSockets compression experiments
Greg Wilkins <gregw@webtide.com> Tue, 27 April 2010 11:48 UTC
Return-Path: <gregw@webtide.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 817513A6896 for <hybi@core3.amsl.com>; Tue, 27 Apr 2010 04:48:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.027
X-Spam-Level:
X-Spam-Status: No, score=-0.027 tagged_above=-999 required=5 tests=[AWL=-1.027, BAYES_60=1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8g1peJIiL-9x for <hybi@core3.amsl.com>; Tue, 27 Apr 2010 04:48:17 -0700 (PDT)
Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by core3.amsl.com (Postfix) with ESMTP id E9F1C3A6968 for <hybi@ietf.org>; Tue, 27 Apr 2010 04:48:08 -0700 (PDT)
Received: by wyb35 with SMTP id 35so3541949wyb.31 for <hybi@ietf.org>; Tue, 27 Apr 2010 04:47:53 -0700 (PDT)
Received: by 10.216.172.5 with SMTP id s5mr1268336wel.30.1272368871972; Tue, 27 Apr 2010 04:47:51 -0700 (PDT)
Received: from [192.168.0.100] (host116-234-static.43-88-b.business.telecomitalia.it [88.43.234.116]) by mx.google.com with ESMTPS id z34sm4966515wbv.14.2010.04.27.04.47.50 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 27 Apr 2010 04:47:50 -0700 (PDT)
Message-ID: <4BD6CEE2.7020109@webtide.com>
Date: Tue, 27 Apr 2010 13:47:46 +0200
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: hybi@ietf.org
References: <q2z3f94964f1004231247zc7b60dc3l5fbb4748d129c3c@mail.gmail.com> <z2o2a10ed241004231448l7a63e329p98e04fbe1a750539@mail.gmail.com> <4BD59DA0.6060506@webtide.com> <k2m2a10ed241004260928q2448b8f6nae7c13db81a97579@mail.gmail.com>
In-Reply-To: <k2m2a10ed241004260928q2448b8f6nae7c13db81a97579@mail.gmail.com>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] preliminary WebSockets compression experiments
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Apr 2010 11:48:18 -0000
Mike Belshe wrote: > On Mon, Apr 26, 2010 at 7:05 AM, Greg Wilkins <gregw@webtide.com > <mailto:gregw@webtide.com>> wrote: > > Mike, > > some slightly off topic thinking out loud on my idea that websockets > should be able to eventually replace the framing layer of SPDY.... > > The problem that SPDY poses for efficient compression implemented in the > framing layer is that it's frames may contain both headers and > a content body. > > > The most efficient compression will always come from the entity which > knows the most about what it is compressing. Compressing headers > separately from other content compresses more efficiently than if you > mix compression of headers and data. (Imagine a gzip buffer with 32KB > of window where you first send 500B of headers and then 50KB of data > through it - by the time your next chunk of headers come through, all > state from the prior headers has been lost. And the data that you sent > through might have been compressed anyway!) > > I welcome you to test out this theory - I've done so and I know the > answer :-) As you can see, header-specific compression is a feature. I'm not disputing this. Yet it is still useful to have compression available when the source of the data does not compress it - otherwise this would be an argument for HTTP not supporting compression. If we are to have a multi-layered protocol then it would be desirable to avoid every layer having it's own compression mechanism. So my point was that since we appear to recognize that compression is valuable to have in the framing layer (to handle apps that do not compress), it would be great if we could design that with enough flexibility so that SPDY over websocket would not need to implement it's own compression. Ideally the framing compression would be flexible enough so that SDPY would be able to specify a content-specific compressor for header frames. Now the complexity of layers delegating compression to the framing layer may well be equal to the complexity of each layer implementing it's own framing. But I do think it worth while evaluating if this is true or not. > Roberto tried to convey why optional compression is a bad thing > sometimes. Again, I'm not really disputing the validity of Roberto's example. I understand that there are are intermediaries that act less than sensibly. However, I'm not sure that is sufficient reason to mandate a fixed compression algorithm. To do so, we would raise the complexity of the simplest client (and while I agree that is not by much, there is still a definite sentiment that we should keep it really simple). Also, if we are to support future compression algorithms (or content-specific ones), then we must support negotiated. In which case, there will be null compressors and lazy intermediaries will just negotiate a noop compressor. What Roberto's example does show, is that there in a genuine desire of intermediaries (even ones baked into the client computer) to inspect and add value to passing traffic. cheers
- Re: [hybi] preliminary WebSockets compression exp… Jamie Lokier
- Re: [hybi] preliminary WebSockets compression exp… Mike Belshe
- [hybi] preliminary WebSockets compression experim… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Mike Belshe
- Re: [hybi] preliminary WebSockets compression exp… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Roberto Peon
- Re: [hybi] preliminary WebSockets compression exp… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Roberto Peon
- Re: [hybi] preliminary WebSockets compression exp… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Roberto Peon
- Re: [hybi] preliminary WebSockets compression exp… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Jamie Lokier
- Re: [hybi] preliminary WebSockets compression exp… Greg Wilkins
- Re: [hybi] preliminary WebSockets compression exp… Greg Wilkins
- Re: [hybi] preliminary WebSockets compression exp… John Tamplin
- Re: [hybi] preliminary WebSockets compression exp… Mike Belshe
- Re: [hybi] preliminary WebSockets compression exp… Greg Wilkins
- Re: [hybi] preliminary WebSockets compression exp… Mike Belshe