- From: ??? <willchan@chromium.org>
- Date: Wed, 25 Jun 2014 23:50:48 -0400
- To: Mike Belshe <mike@belshe.com>
- Cc: Roberto Peon <grmocg@gmail.com>, Willy Tarreau <w@1wt.eu>, Patrick McManus <pmcmanus@mozilla.com>, Jason Greene <jason.greene@redhat.com>, Nicholas Hurley <hurley@todesschaf.org>, Mark Nottingham <mnot@mnot.net>, K.Morgan@iaea.org, Poul-Henning Kamp <phk@phk.freebsd.dk>, Greg Wilkins <gregw@intalio.com>, IETF HTTP WG <ietf-http-wg@w3.org>, Martin Dürst <duerst@it.aoyama.ac.jp>
- Message-ID: <CAA4WUYhajqRRGdz=nrHnNGuzWMJFvHPFCoQFGEU1H27cAbDLBw@mail.gmail.com>
On Wed, Jun 25, 2014 at 4:19 PM, Mike Belshe <mike@belshe.com> wrote: > > > > On Wed, Jun 25, 2014 at 1:12 PM, Roberto Peon <grmocg@gmail.com> wrote: > >> >> >> >> On Wed, Jun 25, 2014 at 12:59 PM, Willy Tarreau <w@1wt.eu> wrote: >> >>> Hi Roberto, >>> >>> On Wed, Jun 25, 2014 at 12:47:11PM -0700, Roberto Peon wrote: >>> > The benefit to jumbo frames is solely that one can do fewer >>> sendfile/splice >>> > calls, at the cost of more framing complexity, >>> >>> If we just use a single bit to indicate whether the advertised length is >>> shifted or not, I don't think we can call that "more framing complexity", >>> and I would personally be fine with this (as with anything that allows >>> to pass 1MB or so of data I guess). >>> >>> >> Look at this from a hardware engineer's perspective. This bit changes how >> you must structure hardware buffers in order to parse things properly. >> This requires far more complexity for a hardware implementation, and >> would reduce the chance that we get acceleration in HW for HTTP2. >> >> >>> > and at the cost of having >>> > naive implementations (especially server implementations) do things >>> that >>> > would affect performance/latency such that HTTP2 would be a downgrade. >>> > Patrick mentions this, and it is a large motivator here-- getting the >>> > muxing wrong, as is much more likely to happen with larger frame sizes, >>> > means poor latency. >>> >>> Well, a naive implementation will not do any muxing at all, that's the >>> most complex part to deal with in my opinion. I think that anyone who's >>> able to implement the muxing correctly will not have any trouble with >>> >>> len <<= (8 * R); >>> >> >> That isn't what we've seen, however. We've seen that implementations get >> that muxing is an important part of the protocol, however the implication >> that small frames is essential to being able to respond quickly to a change >> in circumstance is not. >> Large enough frames might require a receiver to close the connection (as >> we've seen from HTTP) when it is uninterested in a response when the >> bandwidth is lower, for instance. Using smaller frames vastly decreases the >> chance that this needs to be done, and simplifies the receiver's >> implementation. >> >> >>> >>> And for senders, it does not change anything, they continue to send the >>> reserved bit to zero and nothing changes over the wire. >>> >>> > Experimentation with this seems reasonable as an extension. >>> >>> I suspect that we're going to rediscover the benefits of TCP's window >>> scaling :-/ >>> >>> >> Given that the frame size has nothing to do with RTTs or flow control, I >> think that is orthogonal and completely different :) >> > > > +1 to everything Roberto stated here. > +1 PS: Sorry for the lame, late, terse response. I am too busy for more for now, and everyone else already wrote all the content I would have written, although I may have phrased things differently. This is clearly a decision about tradeoffs, and different people prioritize different things (responsiveness vs throughput, etc) differently. My position remains unchanged from what I've previously voiced. > > Mike > > > > > >> >> -=R >> >> >>> Regards, >>> Willy >>> >>> >> >
Received on Thursday, 26 June 2014 03:51:16 UTC