Re: [apps-discuss] I-D Action: draft-nottingham-http-browser-hints-00.txt

Brian Pane <brianp@brianp.net> Fri, 20 May 2011 09:52 UTC

Return-Path: <brianp@brianp.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BDB80E074E for <apps-discuss@ietfa.amsl.com>; Fri, 20 May 2011 02:52:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.527
X-Spam-Level:
X-Spam-Status: No, score=-3.527 tagged_above=-999 required=5 tests=[AWL=-0.550, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7C1++ahWaJSf for <apps-discuss@ietfa.amsl.com>; Fri, 20 May 2011 02:52:35 -0700 (PDT)
Received: from mail-vw0-f44.google.com (mail-vw0-f44.google.com [209.85.212.44]) by ietfa.amsl.com (Postfix) with ESMTP id 26A96E070C for <apps-discuss@ietf.org>; Fri, 20 May 2011 02:52:34 -0700 (PDT)
Received: by vws12 with SMTP id 12so3055674vws.31 for <apps-discuss@ietf.org>; Fri, 20 May 2011 02:52:34 -0700 (PDT)
Received: by 10.220.198.198 with SMTP id ep6mr1273281vcb.29.1305885153067; Fri, 20 May 2011 02:52:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.220.192.201 with HTTP; Fri, 20 May 2011 02:52:12 -0700 (PDT)
X-Originating-IP: [216.243.35.32]
In-Reply-To: <EB487AB6-E24F-4C2A-8550-6B5A7EF411FC@mnot.net>
References: <20110517042149.2176.20778.idtracker@ietfa.amsl.com> <1603FA8A-5BBC-4574-815A-2E13850F1D52@mnot.net> <20110517053416.GB26443@1wt.eu> <FC3C8827-D071-4EE8-B7DA-CBA7E26ACF1B@mnot.net> <BANLkTikp68JoF7xAm=s8QaE6JTL9JGUc_Q@mail.gmail.com> <EB487AB6-E24F-4C2A-8550-6B5A7EF411FC@mnot.net>
From: Brian Pane <brianp@brianp.net>
Date: Fri, 20 May 2011 02:52:12 -0700
Message-ID: <BANLkTimNHrTT0pTjqq-bs1RLdkGO-Pbiaw@mail.gmail.com>
To: Apps Discuss <apps-discuss@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"
Subject: Re: [apps-discuss] I-D Action: draft-nottingham-http-browser-hints-00.txt
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 May 2011 09:52:35 -0000

On Thu, May 19, 2011 at 5:51 PM, Mark Nottingham <mnot@mnot.net> wrote:

> Also, header compression only works well if you have many requests
> on a connection; IME we're not there yet.

My experience has been that the number of requests per site (scheme+authority)
often is large enough to make header compression interesting, but that number
divided by ~6 (a modern browser's connection parallelism) usually isn't.  Thus I
see header compression being viable in combination with another change: hinting
to the client that it should use pipelining and a smaller number of connections.
But yes, at that point we're halfway to reinventing SPDY.

> Also, there is more in the draft than just reducing request header sizes; while
> that might be the most beneficial case for you, I actually started the draft for
> the pconn-ip behaviour.

The pconn-ip hint looks good.  The only complication I can think of is that the
client implementer will have to decide whether to manage the maximum size
of its persistent connection pool on a per-IP-addr or per-site basis.  E.g., if
static.example.com and images.example.com resolve to the same address,
a typical browser today might open N concurrent connections to static and
another N connections to images.  If the client honors the pconn-ip hint for
both those sites, it needs to decide on a suitable number of concurrent
connections.  Some possibilities that come to mind are:
  N (may reduce concurrency)
  Some fixed number P > N
  M*N, where M is the number of sites that resolve to the same addr
        (that the client knows about)
None of those is really ideal, though.

Finally, some notes on max-conns: I think it's a good hint, as it leads server
side applications away from having to use tricks like domain sharding.  And
for servers that can handle a lot of concurrent connections, the ability to tell
the client that it's okay to open some very large number of persistent
connections
reduces the need to come up with a pipeline hinting standard.  The catch, I
think, is that the clients most in need of a hint to increase their connection
limit are specific old browser versions, still in widespread use, that
aren't likely
to ever be updated with support for a new browser hint standard.

-Brian