W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2007

Re: Suggestion for NEW Issue: Pipelining problems

From: Roy T. Fielding <fielding@gbiv.com>
Date: Fri, 20 Jul 2007 15:55:13 -0700
Message-Id: <EAE76589-B5CA-430C-B6BA-6C24BB50E493@gbiv.com>
Cc: Jamie Lokier <jamie@shareable.org>, yngve@opera.com, HTTP Working Group <ietf-http-wg@w3.org>
To: Harald Tveit Alvestrand <harald@alvestrand.no>

On Jul 19, 2007, at 7:01 PM, Harald Tveit Alvestrand wrote:
> actually pipelining (as far as I remember the debates - it is many  
> years ago now) was added in an effort to get HTTP to be a better- 
> behaved network citizen.

That was persistent connections.  Pipelining is keeping the outgoing
half of the connection in use while waiting for responses.  Persistent
connections have other benefits beyond congestion control, but that
was its primary reason for introduction.

> One interesting feature of one-TCP-connection-per-request is that  
> TCP congestion control really doesn't kick in until about packet 6  
> or so, after the slow-start phase is over - and when most TCP  
> connections are shorter than 6 packets, it means that a huge  
> percentage of the Internet traffic really is travelling the  
> Internet with no congestion at all - leaving the Internet  
> unprotected from another round of congestion collapse.

Hmm, I haven't seen that.  HTTP requests are typically smaller than the
3000 bytes you are likely to get in even the most congestion-controlled
window.  Pipelined requests actually increase congestion because any
messages left unsatisfied have to be sent again on a new connection.
Receiving several responses in parallel across multiple connections
does cause congestion, but that is a bug in TCP.  TCP is vulnerable
to trivial denial of service attacks because it doesn't share congestion
control across connections to the same host.  The fact that this was
exposed by the popularity of HTTP does not make is solvable by HTTP.

> It seems, however, that the Internet has survived the situation -  
> once the majority of traffic is (congestion-controlled)  
> filesharing, perhaps the not-so-nice HTTP sessions don't count for  
> that much after all....

They never did.  I think you are remembering discussions from 1994-95,
in which the north atlantic lines were maxed out on traffic.  That
problem was solved by the increase in caching with conditional GET
and 304 responses (about 35% of all responses by the end of 1995),
and by the gradual replacement of Mosaic's ridiculous implementation
of Accept headers.

....Roy
Received on Friday, 20 July 2007 22:55:18 GMT

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