Re: [hybi] frame length encoding

Salvatore Loreto <salvatore.loreto@ericsson.com> Sun, 22 August 2010 22:12 UTC

Return-Path: <salvatore.loreto@ericsson.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 D953E3A6881 for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 15:12:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.379
X-Spam-Level:
X-Spam-Status: No, score=-103.379 tagged_above=-999 required=5 tests=[AWL=-1.665, BAYES_00=-2.599, HTML_FONT_FACE_BAD=0.884, HTML_MESSAGE=0.001, USER_IN_WHITELIST=-100]
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 aRDSwH2Z417F for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 15:12:15 -0700 (PDT)
Received: from mailgw9.se.ericsson.net (mailgw9.se.ericsson.net [193.180.251.57]) by core3.amsl.com (Postfix) with ESMTP id 28FB33A68D0 for <hybi@ietf.org>; Sun, 22 Aug 2010 15:12:14 -0700 (PDT)
X-AuditID: c1b4fb39-b7b91ae000001aef-02-4c71a0dfd656
Received: from esealmw128.eemea.ericsson.se (Unknown_Domain [153.88.253.124]) by mailgw9.se.ericsson.net (Symantec Mail Security) with SMTP id 21.84.06895.FD0A17C4; Mon, 23 Aug 2010 00:12:47 +0200 (CEST)
Received: from esealmw128.eemea.ericsson.se ([153.88.254.176]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Mon, 23 Aug 2010 00:12:48 +0200
Received: from mail.lmf.ericsson.se ([131.160.11.50]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Mon, 23 Aug 2010 00:12:48 +0200
Received: from nomadiclab.lmf.ericsson.se (nomadiclab.lmf.ericsson.se [131.160.33.3]) by mail.lmf.ericsson.se (Postfix) with ESMTP id 3F0CF2574; Mon, 23 Aug 2010 01:12:47 +0300 (EEST)
Received: from nomadiclab.lmf.ericsson.se (localhost [127.0.0.1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id 05BD64FD0B; Mon, 23 Aug 2010 01:12:47 +0300 (EEST)
Received: from Salvatore-Loretos-MacBook-Pro.local (localhost [127.0.0.1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id 9CF7E4ECF5; Mon, 23 Aug 2010 01:12:45 +0300 (EEST)
Message-ID: <4C71A0DC.1090208@ericsson.com>
Date: Mon, 23 Aug 2010 00:12:44 +0200
From: Salvatore Loreto <salvatore.loreto@ericsson.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6
MIME-Version: 1.0
To: John Tamplin <jat@google.com>
References: <AANLkTimKbmcpgx8k0uXUWvCO=8w9pPrtV=3y4qh6363k@mail.gmail.com> <20100820192927.GA32620@1wt.eu> <4C6EEA55.2050205@hs-weingarten.de> <AANLkTinHqxUOZaVANFpC52t8FfgNw2L5_A-s9Az3Fm7p@mail.gmail.com> <AANLkTinvkxMP8FYz9xjDu_Kt9FfzYotgsqXUDB4MZMEo@mail.gmail.com> <AANLkTim3KRq1arso7wN_b+1TH3sWabYW6uFu7AbYw6-P@mail.gmail.com> <AANLkTikhhajho895WyEoJMwMk9GJ98kA0Mjy5qr4apC8@mail.gmail.com> <AANLkTi=kdk6BRvza_7bpoLNTFzUkjcRRijGLMe_NGXZV@mail.gmail.com> <AANLkTi=VE298Tg+qyfufhzMswE5pBxtPZhA0t2k=sf2A@mail.gmail.com> <4C717048.5020309@ericsson.com> <4C717B28.4070009@caucho.com> <4C717E1A.5000404@ericsson.com> <AANLkTimtNN1oW2TB30cS1Ew9pSxWNNsY9FH7Eu4EpQMb@mail.gmail.com> <4C719640.6070808@caucho.com> <AANLkTiki7n2yu-6kATnntspEM1NYQ2uC0N3cDMWdKG+C@mail.gmail.com>
In-Reply-To: <AANLkTiki7n2yu-6kATnntspEM1NYQ2uC0N3cDMWdKG+C@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------010707080707040304030300"
X-Virus-Scanned: ClamAV using ClamSMTP
X-OriginalArrivalTime: 22 Aug 2010 22:12:48.0478 (UTC) FILETIME=[279B1FE0:01CB4247]
X-Brightmail-Tracker: AAAAAA==
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] frame length encoding
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: Sun, 22 Aug 2010 22:12:17 -0000

On 8/22/10 11:48 PM, John Tamplin wrote:
> On Sun, Aug 22, 2010 at 5:27 PM, Scott Ferguson <ferg@caucho.com 
> <mailto:ferg@caucho.com>> wrote:
>
>         I still think it is a mistake to increase the size of the
>         overwhelming majority of frames to make things easier for the
>         less-frequent (and larger, so that the extra overhead is
>         negligible) frames, but I am tired of arguing about it.  If
>         this is what people want then let's go with it.
>
>
>     I think the compact frame (LEN 00 = 0 byte length) would give you
>     that efficiency because the compact frame only uses 2 bytes total
>     for the header and length:
>
>
>      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
>     +---+-+-+-------------+-+-------+
>     |00 |T|F| length(7)   |R|OPCODE |
>     |   |M|I|             |E|       |
>     |   |L|N|             |S|       |
>     +---+-+-+-------------+-+-------+
>
>     Where length(7) is the payload length and the payload immediately
>     follows the header.
>
>
> The problem with this is we only have a single reserved bit, which is 
> highly unlikely to be sufficient when we get to extensions.  That 
> means if those extensions are commonly used, we will be paying the 
> extra byte anyway and be doing it in a more awkward way.
>
>     If we were willing to trade some extra complexity for extension
>     bits, we could even reuse the TML and FIN bits for the compact
>     header, because those bits aren't needed for small frames. So the
>     compact (2 byte) header might be:
>
>
> If you are concerned about latency, you might well want to flush the 
> buffer with a small frame, with more fragments to follow when the 
> dynamic content is generated.
>
>     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
>     +---+---------------+---+-------+
>     |00 | length(8)     |RES|OPCODE |
>     |   |               |   |       |
>     |   |               |   |       |
>     +---+---------------+---+-------+
>
>     I'm not sure if it's a good idea because it does make the compact
>     frame a special case, but it frees up some extra reserved bits.
>
>
> I think it is a false economy, because you only have 3 reserved bits 
> in this form, while 8 in the others.  If you assign a 4th reserved 
> bit, you now have to come up with a new way of representing it in the 
> short frame, so those extra reserved bits are less useful than the 
> others.  Also, given the complaints about complexity for simpler 
> things, I can't imagine having MORE/CMLP bits be dependent on the 
> length-length bits would go over well.
>
> I still think option #2 is the best compromise, and a number of people 
> agreed (and a number disagreed).
(as individual)
Hi John,

I know your preferences... but this is just an alternative/compromise if 
we can find a larger consensus
> If that option isn't deemed acceptable and having 4 length steps is 
> preferred,
(as individual)

it could be just a possible compromise among who wants 32 and who 64.
Then we do not need to use all 4 length steps, but also keep 1 step for 
future definition...
> I would rather just eat the extra byte for small frames and go with 
> the suggestion above, having headers of 3, 4, 6, and 10 bytes with 8 
> reserved bits between the defined flags and the opcode, as in:
>
>     * More - 1 bit
>     * CMLP - 1 bit
>     * LenLen - 2 bits
>     * Reserved - 8 bits
>     * Opcode - 4 bits
>     * Length - 2^LenLen bytes
>     * CML - 8 bytes - present only if CMLP=1
>     * Payload - Length bytes
>
(as individual)

+1
I like this proposed order.

cheers
/Sal

> Otherwise, as before.
>
> -- 
> John A. Tamplin
> Software Engineer (GWT), Google


-- 
Salvatore Loreto
www.sloreto.com