- From: Jim Gettys <jg@freedesktop.org>
- Date: Mon, 19 Oct 2009 14:45:37 -0400
- To: "William A. Rowe, Jr." <wrowe@rowe-clan.net>
- CC: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>
William A. Rowe, Jr. wrote:
> Mark Nottingham wrote:
>> <http://trac.tools.ietf.org/wg/httpbis/trac/ticket/131>
>>
>> """
>> Clients (including proxies) SHOULD limit the number of simultaneous
>> connections that they maintain to a given server (including proxies).
>>
>> Previous revisions of HTTP gave a specific number of connections as a
>> ceiling, but this was found to be impractical for many applications. As
>> a result, this specification does not mandate a particular maximum
>> number of connections, but instead encourages clients to be conservative
>> when opening multiple connections.
>> """
>
> It really seems like this is ripe for a Connection: max=# tag recommendation.
> Wherein the application can recommend a number of parallel connections that
> 1) they support and 2) provide optimal user/application experience. But this
> would be out of scope of 2616bis :)
>
The problem is that congestion can occur anywhere in the path from
client to server, and therefore any information the server can give on
number of connections is incorrect. So this idea doesn't work.
(One of) the fundamental issues is that many/most implementations of
HTTP (or other application protocols, for that matter) do not understand
that in current implementations, it is extremely important to read the
data from the operating system so that you don't delay acks: otherwise,
TCP cannot run at anything near full speed.
We showed in the HTTP/1.1 paper that additional parallel connections did
not actually increase performance; fastest performance was achieved with
a single TCP connection. But for many bad implementations, doing so
will, without the implementers having to actually think or restructure
their code.
It may (or may not) be as pernicious (to others) than at the time 2616
was first issued, as in that era, buffering in edge router equipment was
very limited, and besides screwing yourself, you may be less evil than
then. But I've not seen any data (nor thought deeply) on how the
Internet has changed since then.
Exactly what the right recommendations to implementers should be, and
whether the spec should try to enforce such behavior is a different
discussion.
- Jim
Received on Monday, 19 October 2009 18:46:24 UTC