Re: [hybi] frame length encoding
"Shelby Moore" <shelby@coolpage.com> Sun, 22 August 2010 11:31 UTC
Return-Path: <shelby@coolpage.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 0DFEE3A6869 for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 04:31:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.168
X-Spam-Level:
X-Spam-Status: No, score=-2.168 tagged_above=-999 required=5 tests=[AWL=0.431, BAYES_00=-2.599]
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 4a-ESTCh4vsO for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 04:31:11 -0700 (PDT)
Received: from www5.webmail.pair.com (www5.webmail.pair.com [66.39.3.83]) by core3.amsl.com (Postfix) with SMTP id 68F6D3A6860 for <hybi@ietf.org>; Sun, 22 Aug 2010 04:31:11 -0700 (PDT)
Received: (qmail 8339 invoked by uid 65534); 22 Aug 2010 11:31:44 -0000
Received: from 121.97.54.174 ([121.97.54.174]) (SquirrelMail authenticated user shelby@coolpage.com) by sm.webmail.pair.com with HTTP; Sun, 22 Aug 2010 07:31:44 -0400
Message-ID: <df4ec71d2b12d9ea3b9d8baead548c27.squirrel@sm.webmail.pair.com>
In-Reply-To: <77aecf89c6c8673f1b999f80fa04e005.squirrel@sm.webmail.pair.com>
References: <AANLkTimKbmcpgx8k0uXUWvCO=8w9pPrtV=3y4qh6363k@mail.gmail.com> <alpine.DEB.2.00.1008212037190.27211@tvnag.unkk.fr> <AANLkTinrsT+wV48nHvVW_1ChGYffkq7jisU2-PZnMyKg@mail.gmail.com> <alpine.DEB.2.00.1008212123460.27211@tvnag.unkk.fr> <20ef7ed5e135c57c1ee5a741658b9d98.squirrel@sm.webmail.pair.com> <1282423311.2014.6.camel@tng> <224b9ed365bd78fd5e316b8cb5f3f837.squirrel@sm.webmail.pair.com> <1282435214.2014.14.camel@tng> <AANLkTimo0MwZEMn1t1vrASfwC1bx82Q9Z_Ls3wVb-zUS@mail.gmail.com> <b95f074b65875865802f532bb5668ff2.squirrel@sm.webmail.pair.com> <AANLkTi=AXLFPSASV2zkBiUU=1StO=YSrKq_9AZ2ZnVHy@mail.gmail.com> <8cd6ecfebb4a073ecf94c8e1aa56e642.squirrel@sm.webmail.pair.com> <77aecf89c6c8673f1b999f80fa04e005.squirrel@sm.webmail.pair.com>
Date: Sun, 22 Aug 2010 07:31:44 -0400
From: Shelby Moore <shelby@coolpage.com>
To: shelby@coolpage.com
User-Agent: SquirrelMail/1.4.20
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] frame length encoding
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: shelby@coolpage.com
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: Sun, 22 Aug 2010 11:31:17 -0000
Just got back from 2-mile jog, nice way to process and focus thoughts... (due the fact that the brain solves the N-dimension space via annealing, so doing something entirely different can jolt your Newton gradient over a hill into a deeper N-space global minima) below for the key point... >>> The only thing that truly matters are what kinds of messages we want >>> to >>> handle with the protocol. My point is that there's no reason for a >>> websocket client or server to handle a single message >4GB. >> >> >> You won't have to. You will tell the other end your maximum frame size >> on >> the connection handshake, then the other end will re-fragment if >> necessary. >> >> >>> For my chat >>> server that I'm building, any incoming message larger than 64KB is >>> likely >>> to >>> be ill-intended, and that's a very generous threshold. Clearly the >>> threshold would be different for someone else's application. >> >> Apologies I forgot to make the above point in my prior reply. I could >> have >> been more concensus driven with that. > > [snip] > >> >> I do agree that I should not have made the point that you need to >> process >> 64-bit frames. That would not be a free market. Rather we must have >> re-fragmentation, so that no WS server has to be forced into any maximum >> size. > > Given the above point, those who are arguing against the CPU load to test > for value 126 and 127 to fork to 16-bit and 63-bit frame size of Option 2, > we instead could consider adding a byte to the header and give 1 to 32766 > sizes without any test. The end could set its maximum frame size to 32766 > on connection handshake, and then it never needs to perform that logic in > CPU. They just load 2 byte size field and use it. > > That eliminates the 16-bit size field of Option 2. It is extends the size > field of Option 1. > > That would cost us an extra byte on every frame, but the minimum frame > size is 3 already, and those who were arguing that point, said that > network speed will increase faster than CPU because there is no way to > parallelize (use multi-cores) for a serial channel that has no rewind > feature (unless you buffer and use pipelining perhaps?). This could be referred to as Option 1/15-bit. Note that although the re-fragmentation will still incur CPU overhead for large frames, the point was that this new option eliminates the CPU overhead when there wasn't going to be re-fragmentation (most frames' byte size smaller than 15-bit). And we must have the re-fragmentation any way, because some servers simply won't be able to handle large frame sizes for any number of possible reasons. So if we place important priority on the possibility that network speeds will outpace CPU speeds (due to multi-core point), then our choice boils down to either Option 1/15-bit or Option 1/7-bit. But 7-bits seems aweful small as a useful maximum size. So I think Option 1/15-bit is our only choice that will bring concensus? And the Option 1/15-bit is actually more efficient than Option 2, for frame size between 126 to 32767. It is equally efficient for > 32767. And it only costs 1 extra byte below 126 in size. And what happens if we don't do Option 1/15-bit and indeed network speed has a radical burst upward relative to single-core CPU speed? See my point about a possible radical shift in the realized market speed soon due to global financial rebalancing via hyper-inflation (networks here may have fast enough CPUs but overloaded pipes due to fact that pipes are not regulatory subsidized here like they are in the socialized "rich" countries): http://www.ietf.org/mail-archive/web/hybi/current/msg03454.html Btw, the above is an example of why insurance (surety about future) is a fraud. Statistics can not see long-tail events: http://goldwetrust.up-with.com/knowledge-f9/book-ultimate-truth-chapter-1-science-is-never-certain-t148.htm#3159 Some of that abstract discussion I did before this thread was relevant: http://www.ietf.org/mail-archive/web/hybi/current/msg03348.html > > Also what are we using the 0 size value for? Couldn't we add 1 to the size > field to get the size? > > Also for the special case where the maximum frame size is set on > connection handshake to 32767 (instead of 32766), no need to escape that > into an 8 byte size field.
- [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding gustav trede
- Re: [hybi] frame length encoding Willy Tarreau
- Re: [hybi] frame length encoding Scott Ferguson
- Re: [hybi] frame length encoding Roderick Baier
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Daniel Stenberg
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Daniel Stenberg
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Patrick McManus
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Patrick McManus
- Re: [hybi] frame length encoding Patrick McManus
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Brian
- Re: [hybi] frame length encoding Roberto Peon
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Roberto Peon
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding gustav
- [hybi] Fwd: frame length encoding Brian
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] Fwd: frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- [hybi] max frame size, was: frame length encoding Julian Reschke
- Re: [hybi] max frame size, was: frame length enco… John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] max frame size, was: frame length enco… gustav
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding Salvatore Loreto
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Shelby Moore
- [hybi] frame length encoding Brian
- Re: [hybi] frame length encoding Scott Ferguson
- Re: [hybi] frame length encoding Salvatore Loreto
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- [hybi] Fwd: frame length encoding Brian
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Scott Ferguson
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] frame length encoding Salvatore Loreto
- Re: [hybi] max frame size, was: frame length enco… Pieter Hintjens
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding John Tamplin
- Re: [hybi] max frame size, was: frame length enco… Scott Ferguson
- Re: [hybi] frame length encoding Brian
- Re: [hybi] frame length encoding Pieter Hintjens
- Re: [hybi] max frame size, was: frame length enco… Brian
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding gustav
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] frame length encoding Shelby Moore
- Re: [hybi] max frame size, was: frame length enco… Shelby Moore