Re: MAX_CONCURRENT_STREAMS=0 and PUSH_PROMISE

Roberto Peon <grmocg@gmail.com> Tue, 23 July 2013 22:22 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0D59D11E8161 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 23 Jul 2013 15:22:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.523
X-Spam-Level:
X-Spam-Status: No, score=-10.523 tagged_above=-999 required=5 tests=[AWL=0.075, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l6wF6ofcQyaJ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 23 Jul 2013 15:22:08 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 58A8411E814F for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 23 Jul 2013 15:21:57 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1V1kxm-0007Wo-HQ for ietf-http-wg-dist@listhub.w3.org; Tue, 23 Jul 2013 22:21:46 +0000
Resent-Date: Tue, 23 Jul 2013 22:21:46 +0000
Resent-Message-Id: <E1V1kxm-0007Wo-HQ@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1V1kxc-0007Ub-LZ for ietf-http-wg@listhub.w3.org; Tue, 23 Jul 2013 22:21:36 +0000
Received: from mail-ob0-f182.google.com ([209.85.214.182]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1V1kxb-0002Td-Pr for ietf-http-wg@w3.org; Tue, 23 Jul 2013 22:21:36 +0000
Received: by mail-ob0-f182.google.com with SMTP id va7so11271948obc.41 for <ietf-http-wg@w3.org>; Tue, 23 Jul 2013 15:21:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gO2+y9RxJdspYrmET+7n1Mjjnoh1xbxtgj+h3t+GOoY=; b=iokMO+xty8cI0jBe3R1YJYZ77P28CmfFY58mbAPj4/ONmA8byIcgTg8A62Drt1qnJp h7WsyTFhWgnxQZOIGT+phhKvfonBaVI0spavZ9jwR46U8gPgbOFFZmQVMD2OtnDbpsg4 BKM26PgOiA4FvyuceJeI/uJyqAQdjJwA79mMwAnnleSyAXlC2KNhSU+V5vHxtBGdbnFN bBE2FOpPgMUJ6F15N9TFW79a1nhEg87UCKQQHvaelDxT2LQuUzW3IDgU4owzABjGM/Hw PE1fnbKXstU8V0Sr9HfT5d9zfCCqKMVCOEown5t7DqDbj6KolRNHaczng5KasPoJuQTT uisQ==
MIME-Version: 1.0
X-Received: by 10.182.171.74 with SMTP id as10mr27006679obc.70.1374618069417; Tue, 23 Jul 2013 15:21:09 -0700 (PDT)
Received: by 10.76.91.229 with HTTP; Tue, 23 Jul 2013 15:21:09 -0700 (PDT)
In-Reply-To: <CABkgnnWx5d_3U+tFQYG68+NCGC3Q2Hfm_PD0hgALeawb+PY-ZA@mail.gmail.com>
References: <CA+KJw_5PcUxBiUnQ00=G2C4Q6MnaB=hpNDk+9eTeZMs3Lz-CpA@mail.gmail.com> <CAP+FsNf7YBDfO_=fW7nPHXdUi0F+0+4S2AUm_T2gHtqYhER8MA@mail.gmail.com> <20130723190419.GA25817@LK-Perkele-VII> <CAP+FsNc5tef8WRCaH-_6z5se=vVPscSQ3+GfEF0T02q8oKq6WA@mail.gmail.com> <CABkgnnWx5d_3U+tFQYG68+NCGC3Q2Hfm_PD0hgALeawb+PY-ZA@mail.gmail.com>
Date: Tue, 23 Jul 2013 15:21:09 -0700
Message-ID: <CAP+FsNfauVPhGZH31_LFeQKOuPF0KcYKp7U4qMBtDUsv-Ja-cQ@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, Gábor Molnár <gabor.molnar@sch.bme.hu>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="e89a8ff25454bac71b04e23535ff"
Received-SPF: pass client-ip=209.85.214.182; envelope-from=grmocg@gmail.com; helo=mail-ob0-f182.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.680, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1V1kxb-0002Td-Pr 289c3bf31530d1e39fa7a39183bac6fd
X-Original-To: ietf-http-wg@w3.org
Subject: Re: MAX_CONCURRENT_STREAMS=0 and PUSH_PROMISE
Archived-At: <http://www.w3.org/mid/CAP+FsNfauVPhGZH31_LFeQKOuPF0KcYKp7U4qMBtDUsv-Ja-cQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18893
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On Tue, Jul 23, 2013 at 3:13 PM, Martin Thomson <martin.thomson@gmail.com>wrote:

> On 23 July 2013 14:32, Roberto Peon <grmocg@gmail.com> wrote:
> > Even if push promises were limited by some configuration, changes to that
> > configuration can cause this condition to occur. Thus, clients must be
> able
> > to handle PUSH_PROMISE frames by at least discarding them.
>
> I'm a little concerned by the suggestion that PUSH_PROMISE can simply
> be discarded.  It creates a reservation for a stream, which
> necessarily creates state in the client.
>

Well, the alternative is to crash :)
And by discard, I mean RST the reserved stream.
RSTing a reserved stream that the client has no intention of listening to
seems reasonable.
Market forces will force servers to mostly not do stupid crud w.r.t.
sending PUSH_PROMISE when the client really won't use it.
I could imagine smart clients that, wishing to conserve bandwidth, still
want the server to use PUSH_PROMISE like things instead of inlining, but
are happy to leave the potential latency savings on the table.
Such clients want to see what the server is advertising, even when the
number of pushed streams is limited to zero.

Also, remember that a server may push a cache validation/invalidation...


> If, as you point out, the client could lift this limit from zero, is
> there some corresponding expectation that the client remembers all of
> these reserved streams so that they can enter the right state at the
> point that the server decides to exercise the reservation?  Without
> any limits on number or the time that a reservation can remain
> outstanding, the only rational response a client implementer has is to
> reset those streams, if they don't want unbounded state commitment
> (even if it is a relatively small allocation for each stream - 2 bits
> in the best case - anything greater than zero could be problematic).
>
>
I believe the client should remember everything it hasn't RST.


> We've done a lot to protect resources on a server, but I don't think
> that a client is able to limit the commitments it has to make in order
> to continue to use a connection.
>

Given the above, do you still feel that way? :)
-=R