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

Re: multiplexing -- don't do it

From: Peter Lepeska <bizzbyster@gmail.com>
Date: Wed, 4 Apr 2012 16:58:16 -0400
Message-ID: <CANmPAYE0LSa4_t9C663BBdnbRgAX-tXNqmjrQ0CFNTUv9Q6g=A@mail.gmail.com>
To: Patrick McManus <pmcmanus@mozilla.com>
Cc: Poul-Henning Kamp <phk@phk.freebsd.dk>, Willy Tarreau <w@1wt.eu>, "William Chan (?????????)" <willchan@chromium.org>, "Roy T. Fielding" <fielding@gbiv.com>, Mike Belshe <mike@belshe.com>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
As long as SPDY is sent over TCP, it also suffers from HOL problems, just
not as bad as pipelining.

I think SPDY (or whatever the HTTP 2.0 muxing protocol is) should framed in
such a way that if running over a protocol like SCTP, that solves the HOL
problems, we should be able to take advantage of it. Due to gzip
compression of headers, even if the transport allowed me to grab messages
out of order, I'd still have to wait for all packets prior in order to
decode the HTTP headers.

Peter

On Wed, Apr 4, 2012 at 9:07 AM, Patrick McManus <pmcmanus@mozilla.com>wrote:

> On Wed, 2012-04-04 at 07:02 +0000, Poul-Henning Kamp wrote:
> > In message <20120404054903.GA13883@1wt.eu>, Willy Tarreau writes:
> >
> > >> I'm starting to get data back, but not in a state that I'd reliably
> > >> release. That said, there are very clear indicators of intermediaries
> > >> causing problems, especially when the pipeline depth exceeds 3
> requests.
> >
> > I always thought that the problem in HTTP/1.x is that you can never
> > quite be sure if there is an un-warranted entity comming after at GET,
>
> its not uncommon to have the consumer RST the whole TCP session when
> asked to recv too far beyond the current request it is processing. For
> some devices "too far" appears to be defined as "any new packet". I
> presume some variation of this is where Will's data point comes from.
> (Often 3 uncompressed requests fit in 1 packet).
>
> That class of bug sounds absurd, but its really a pretty common pattern.
> As an example: hosts that fail TLS False Start (for which I understand
> second hand that Chrome needs to keep a black-list), react badly because
> there is TCP data queued when they are in a state that the expect their
> peer to be quiet. Same pattern.
>
> The lesson to me is that you want to define a tight set of functionality
> that is reasonably testable up front - and that's what you can depend
> widely on later. Using anything beyond that demands excessive levels of
> pain, complexity, and cleverness.
>
> (and all this pipelining talk as if it were equivalent to spdy mux is
> kind of silly. Pipelining's intrinsic HOL problems are at least as bad
> of an issue as the interop bugs.)
>
> -Patrick
>
>
>
Received on Wednesday, 4 April 2012 20:58:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:59 GMT