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>,
 =?ISO-8859-1?B?R+Fib3IgTW9sbuFy?= <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>

--e89a8ff25454bac71b04e23535ff
Content-Type: text/plain; charset=ISO-8859-1

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

--e89a8ff25454bac71b04e23535ff
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Tue, Jul 23, 2013 at 3:13 PM, Martin Thomson <span dir=3D"ltr">&=
lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.tho=
mson@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">On 23 July 2013 14:32, Rob=
erto Peon &lt;<a href=3D"mailto:grmocg@gmail.com">grmocg@gmail.com</a>&gt; =
wrote:<br>

&gt; Even if push promises were limited by some configuration, changes to t=
hat<br>
&gt; configuration can cause this condition to occur. Thus, clients must be=
 able<br>
&gt; to handle PUSH_PROMISE frames by at least discarding them.<br>
<br>
</div>I&#39;m a little concerned by the suggestion that PUSH_PROMISE can si=
mply<br>
be discarded. =A0It creates a reservation for a stream, which<br>
necessarily creates state in the client.<br></blockquote><div><br></div><di=
v>Well, the alternative is to crash :)</div><div>And by discard, I mean RST=
 the reserved stream.</div><div>RSTing a reserved stream that the client ha=
s no intention of listening to seems reasonable.</div>
<div>Market forces will force servers to mostly not do stupid crud w.r.t. s=
ending PUSH_PROMISE when the client really won&#39;t use it.</div><div>I co=
uld imagine smart clients that, wishing to conserve bandwidth, still want t=
he server to use PUSH_PROMISE like things instead of inlining, but are happ=
y to leave the potential latency savings on the table.</div>
<div>Such clients want to see what the server is advertising, even when the=
 number of pushed streams is limited to zero.</div><div><br></div><div>Also=
, remember that a server may push a cache validation/invalidation...</div>
<div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex">
<br>
If, as you point out, the client could lift this limit from zero, is<br>
there some corresponding expectation that the client remembers all of<br>
these reserved streams so that they can enter the right state at the<br>
point that the server decides to exercise the reservation? =A0Without<br>
any limits on number or the time that a reservation can remain<br>
outstanding, the only rational response a client implementer has is to<br>
reset those streams, if they don&#39;t want unbounded state commitment<br>
(even if it is a relatively small allocation for each stream - 2 bits<br>
in the best case - anything greater than zero could be problematic).<br>
<br></blockquote><div><br></div><div>I believe the client should remember e=
verything it hasn&#39;t RST.</div><div>=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">

We&#39;ve done a lot to protect resources on a server, but I don&#39;t thin=
k<br>
that a client is able to limit the commitments it has to make in order<br>
to continue to use a connection.<br></blockquote><div><br></div><div>Given =
the above, do you still feel that way? :)</div><div>-=3DR=A0<br></div></div=
><br></div></div>

--e89a8ff25454bac71b04e23535ff--

