- From: Roy T. Fielding <fielding@gbiv.com>
- Date: Fri, 20 Jul 2007 15:55:13 -0700
- To: Harald Tveit Alvestrand <harald@alvestrand.no>
- Cc: Jamie Lokier <jamie@shareable.org>, yngve@opera.com, HTTP Working Group <ietf-http-wg@w3.org>
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 UTC