W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2014

Re: #540: "jumbo" frames

From: Greg Wilkins <gregw@intalio.com>
Date: Wed, 25 Jun 2014 12:23:40 +0200
Message-ID: <CAH_y2NEWTUjdsLr-tDbF7fRLkNWsojCR7imKMc-9fBU3cT1g7Q@mail.gmail.com>
To: "K.Morgan@iaea.org" <K.Morgan@iaea.org>
Cc: Mark Nottingham <mnot@mnot.net>, Poul-Henning Kamp <phk@phk.freebsd.dk>, Willy Tarreau <w@1wt.eu>, HTTP Working Group <ietf-http-wg@w3.org>, Martin Dürst <duerst@it.aoyama.ac.jp>
Jumbo frames could easily be achieve without and extension bit if we change
the frame header to:

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |R|                 Stream Identifier (31)                      |
    +-+-+-----------+---------------+---+---------------------------+
    |   Type (8)    |   Flags (8)   | R |     Length (14+)          |
    +-+-+-----------+---------------+---+---------------------------+
    |                   Frame Payload (0...)                      ...
    +---------------------------------------------------------------+

Where the length (14+) is the same variable length integer encoding used by
hpack.

This would support truly infinite frame sizes if desired, does not burn any
reserved bits and is not a hacked on extension, but just an specific length
encoding.

cheers





On 25 June 2014 11:35, <K.Morgan@iaea.org> wrote:

> On Wednesday,25 June 2014 06:11, mnot@mnot.net wrote:
> >
> > The simplest way to address this would be to un-reserve the first two
> bits of the length
> > <http://http2.github.io/http2-spec/#rfc.section.4.1>; that would get us
> back up to 64k,
> > letting Willy get to 35 Gbps. Given that 256k only got him to 40 Gbps,
> that seems like a
> > reasonable stopping point for HTTP/2.
>
> Bad idea IMO.  That would really paint HTTP/2 into a corner.  With no
> reserved bits left, there would never be a chance to go above 64K frames.
>  i.e. you could never " back-port bigger frames onto an existing protocol"
>
>
> > Doing more than 16 bits would take a lot more back-and-forth in the WG,
> > and is likely to encounter a lot of resistance from implementers, from
> what I've seen.
>
> We've been talking about jumbo frames for a week already and there hasn't
> been any resistance from "implementers".
>
> I'll point out again that jumbo frames are optional.  As Matthew points
> out, the proposed setting can simply be ignored.
>
>
> > WRT the "jumbo" frame (i.e., flagging that some prefix of the payload is
> actually an extension length)
> > -- this sort of hack is necessary to back-port bigger frames onto an
> existing protocol. Let's not do it out of the gate.
>
> Then make the frame length 64 bits and be done with it.  That's a lot of
> wasted bits though for those who just want to use 16K frames.
>
> So barring a change to 64 bits, you need the CONTINUATION hack or the
> "jumbo frame" hack.  Which hack is better?
>
> So far I've heard the following arguments in favour of "jumbo frames":
> - Willy: higher performance for large data sets
> - PHK: higher efficiency due to fewer system calls
> - Greg: easier to describe and understand (keith: less error prone)
> - "unlimited" HEADERS (albeit capped at some crazy large number)
>
> So far I've heard the following arguments in favour of CONTINUATION:
> - Greg: truly unlimited HEADERS
>
> 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.
>



-- 
Greg Wilkins <gregw@intalio.com>
http://eclipse.org/jetty HTTP, SPDY, Websocket server and client that scales
http://www.webtide.com  advice and support for jetty and cometd.
Received on Wednesday, 25 June 2014 10:24:13 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:14:31 UTC