Re: Stream State and PRIORITY Frames
Scott Mitchell <scott.k.mitch1@gmail.com> Wed, 18 January 2017 17:18 UTC
Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 3A01F1294CD for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2017 09:18:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.219
X-Spam-Level:
X-Spam-Status: No, score=-10.219 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.199, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rW_PgSoEUVRc for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2017 09:18:34 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3972C12943E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 18 Jan 2017 09:18:33 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1cTtq6-0003E5-Eo for ietf-http-wg-dist@listhub.w3.org; Wed, 18 Jan 2017 17:16:02 +0000
Resent-Date: Wed, 18 Jan 2017 17:16:02 +0000
Resent-Message-Id: <E1cTtq6-0003E5-Eo@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <scott.k.mitch1@gmail.com>) id 1cTtq3-0003DJ-5z for ietf-http-wg@listhub.w3.org; Wed, 18 Jan 2017 17:15:59 +0000
Received: from mail-lf0-f46.google.com ([209.85.215.46]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <scott.k.mitch1@gmail.com>) id 1cTtpw-0002vo-Jc for ietf-http-wg@w3.org; Wed, 18 Jan 2017 17:15:53 +0000
Received: by mail-lf0-f46.google.com with SMTP id k86so17452969lfi.0 for <ietf-http-wg@w3.org>; Wed, 18 Jan 2017 09:15:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ErWjWFCG0ciDZbFMx01bNDiEuqSlltkFf/2M0r6yXME=; b=E8qWokG23iJrhWmfq8IZwHVtmzPD+futIwB6FuA/4z8Iu2x/4FsWbuHxWn5xxsBi9j trbswYSywE/y19KT0i9y836QwVh3Ov3KUVgmFr2o6GJB+XYXWayTdYZpe4CEIu1sN+vW vTWpxJX3yMrxgbs1uGepHA3df8/PagRjBAp381+pkVMTt++NZqxNnc6ptD4sHFFSHMuF 1UcgqKhysuC5U+vmec/5NnEBRd7ZF9wk+lLuxLHUZfHf/mQ0hI9HT4bswkoSJv0tMhsI Imvg+tfT5gwSpkDV1r0IQgZiNQj4LbGX4CYAyz98PCoF+ciqlBJQTUl9a+T4vhZCpg+j eNzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ErWjWFCG0ciDZbFMx01bNDiEuqSlltkFf/2M0r6yXME=; b=JvKBGNgAHl2w0dw710KSvFYmcNXpPUTSXmzfnHzLX20U0TnvsXNXSjbgplGL4/IVJ+ hM4HouPOLEF+jXkoUhXjaK/+zrtvd2SMa/72G1EgE6sSmvGVnLxbohUBftuRiNeXH+LB rMlTXvuflH0K6v76Yp0OLhxEp1HM8dFkWLfac/jkAEDKYckciwRVM8aME8aG7bQqrSyP oPlnzWJ9Nx5dlkGgCOUV24+jeEBYU6yGDs9X9JW5WGErI9G41VWP88x172YphOInspOM V7WdwdLdihPuRctvD25vA+ayUQ6wQL+krun1HpokPYa1cd1WuJdQ/J7B42xHgq4mLHW/ wQuA==
X-Gm-Message-State: AIkVDXKub99ZQkOhSk03EwTIQEJ9ugTnxZbbudagzO+DEGu/MSqhJijTjahb+ZgC4c4MfQ79xqm0CATWeYGV1g==
X-Received: by 10.46.20.78 with SMTP id 14mr1984605lju.23.1484759725579; Wed, 18 Jan 2017 09:15:25 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.18.200 with HTTP; Wed, 18 Jan 2017 09:15:24 -0800 (PST)
In-Reply-To: <CA+3+x5HBQswdhFKKNFFHN+t5yaqNufSk_artC1iUwwOvCipZGQ@mail.gmail.com>
References: <CAFn2buAYWHQSWhhoKZ2GKbqXR1A+tScjkAwZmOuQ9gV9jMp2bA@mail.gmail.com> <CAPyZ6=Kh3n+RJi=RqgFBojgRDpfJ=nbr0i4kvO20ET0Kt7UA8Q@mail.gmail.com> <CABkgnnWmPdDXVS+CvmChRjyqkJooSKgy6KdUdN+9nGzOyJazhg@mail.gmail.com> <CAFn2buDrHtB1z16iTWE945bU_qhxTypr05A=5B_nrQoyQijyOw@mail.gmail.com> <CA+3+x5HBQswdhFKKNFFHN+t5yaqNufSk_artC1iUwwOvCipZGQ@mail.gmail.com>
From: Scott Mitchell <scott.k.mitch1@gmail.com>
Date: Wed, 18 Jan 2017 09:15:24 -0800
Message-ID: <CAFn2buBtQY+0xRsUxGZJUCCP1JWdiHvOaFOXyReaVCDKm6UgQw@mail.gmail.com>
To: Tom Bergan <tombergan@chromium.org>
Cc: Martin Thomson <martin.thomson@gmail.com>, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="f403045fbf100520290546619055"
Received-SPF: pass client-ip=209.85.215.46; envelope-from=scott.k.mitch1@gmail.com; helo=mail-lf0-f46.google.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=1.077, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1cTtpw-0002vo-Jc 3b18b5aacbe5004e88cc808ad7023446
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Stream State and PRIORITY Frames
Archived-At: <http://www.w3.org/mid/CAFn2buBtQY+0xRsUxGZJUCCP1JWdiHvOaFOXyReaVCDKm6UgQw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/33317
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, Jan 17, 2017 at 10:10 PM, Tom Bergan <tombergan@chromium.org> wrote: > On Tue, Jan 17, 2017 at 2:43 PM, Scott Mitchell <scott.k.mitch1@gmail.com> > wrote: > >> From my perspective I would like to see two clarifications: >> >> 1. It is clear to me that PRIORITY doesn't impact state. However Section >> 5.1.1 states "first use of a new stream identifier" which makes no >> reference to stream state. If stream state is important/implied here better >> to be specific about it. I don't think the one-off example below this text >> is sufficient to convey the intended implications of this statement. >> >> 2. Section 5.1.2 states "Streams in either of the 'reserved' states do >> not count toward the stream limit." which seems to conflict with section >> 8.2.2 "A client can use the SETTINGS_MAX_CONCURRENT_STREAMS setting to >> limit the number of responses that can be concurrently pushed by a >> server.". These two statements appear to contradict each other. Since >> SETTINGS_MAX_CONCURRENT_STREAMS is really the only mechanism to limit >> resources due to server push I'm assuming section 5.1.2 is overly >> restrictive. >> > > This is surprising (to me, at least) but I don't believe there is a > contradiction. You can send an infinite number of PUSH_PROMISEs without > hitting SETTINGS_MAX_CONCURRENT_STREAMS. A pushed stream doesn't count > against the concurrent stream limit until you've sent the response HEADERS > on that pushed stream. > If you don't include RESERVED streams in the count for SETTINGS_MAX_CONCURRENT_STREAMS then how do you limit the amount of RESERVED streams, and how does your peer know about this limit? I have imposed an implementation specific metric in the past, but this seems less preferable than relying on something in the RFC that the peer is aware of. Either way having infinite of something doesn't work in practice. Because of the asymmetry of stream creation in h2 it makes more sense to me to clarify how streams should be counted toward SETTINGS_MAX_CONCURRENT_STREAMS. For example: Creating a stream in the "reserved" state will consume resources on the client and therefore SHOULD be counted against SETTINGS_MAX_CONCURRENT_STREAMS advertised by the client. The server MUST be prepared to accept a RST_STREAM frame from the client in response to PUSH_PROMISE frame (if this limit is exceeded or at any time). > See the related question I asked previously: > https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html > > Interesting. https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0601.html > If you limit server push by applying a stream limit, then you prevent it from being used in time for the client to use it. I understand the rational/motivation but practically speaking there will have to be some limit imposed on PUSHed streams. The client can send a RST_STREAM in response to a PUSH_PROMISE at any time. So I'm not sure why having the server pretend like a limit doesn't exist improves the situation. Pretending a limit doesn't exist may result in additional network traffic that is avoidable. > On Tue, Jan 17, 2017 at 2:27 PM, Martin Thomson <martin.thomson@gmail.com> >> wrote: >> >>> On 18 January 2017 at 01:37, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> >>> wrote: >>> > If my understanding is correct, this only refers to the new stream ID >>> used >>> > by HEADERS, and PUSH_PROMISE frames which open or reserve streams. The >>> > example text following that statement uses HEADERS which opens new >>> stream. >>> > PRIORITY frame does not change stream state, and there is no reason to >>> close >>> > all unused streams lower than bearing stream ID. That said, I agree >>> that >>> > this is not crystal clear in the document. In practice, this is >>> probably >>> > rather rare case. >>> >>> This is, I think, the expectation. >>> >>> I think that we probably want to clarify the point by explicitly >>> saying that PRIORITY doesn't affect stream states. We say that it can >>> be sent in any state, but we don't also mention that important point. >>> Do people here agree that an erratum on this point is appropriate >>> here? >>> >> >> >
- Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Benedikt Christoph Wolters
- Re: Stream State and PRIORITY Frames Tatsuhiro Tsujikawa
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Matthew Kerwin
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Martin Thomson
- Re: Stream State and PRIORITY Frames Daurnimator
- Re: Stream State and PRIORITY Frames Tom Bergan
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Kazuho Oku
- Re: Stream State and PRIORITY Frames Amos Jeffries
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Patrick McManus
- Re: Stream State and PRIORITY Frames Cory Benfield
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames laike9m
- Re: Stream State and PRIORITY Frames Scott Mitchell
- Re: Stream State and PRIORITY Frames Tom Bergan
- Re: Stream State and PRIORITY Frames Scott Mitchell