Re: proposed WINDOW_UPDATE text for session flow control windows

Martin Thomson <martin.thomson@gmail.com> Thu, 28 February 2013 01:36 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 3FA6421F8A5A for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 27 Feb 2013 17:36:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 B0xwrAo6zhpp for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 27 Feb 2013 17:35:59 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 17F4421F8BAF for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 27 Feb 2013 17:33:50 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UAsIw-00036V-Vp for ietf-http-wg-dist@listhub.w3.org; Thu, 28 Feb 2013 01:29:03 +0000
Resent-Date: Thu, 28 Feb 2013 01:29:02 +0000
Resent-Message-Id: <E1UAsIw-00036V-Vp@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1UAsIm-00033x-83 for ietf-http-wg@listhub.w3.org; Thu, 28 Feb 2013 01:28:52 +0000
Received: from mail-wi0-f181.google.com ([209.85.212.181]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1UAsIl-0000Jn-4o for ietf-http-wg@w3.org; Thu, 28 Feb 2013 01:28:52 +0000
Received: by mail-wi0-f181.google.com with SMTP id hm6so1474311wib.8 for <ietf-http-wg@w3.org>; Wed, 27 Feb 2013 17:28:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=zsMCT8bkFAvZgbclfHwbBGXDRtpDVexg6FVHsKAssrw=; b=O8yr0oINfhQvf4+WIgzz0r4VIao+5FCztcKp3z1crsaj9pei9NIHjtrETB1U1dGWxo C02RbQ6BH4EmEvnFgER0uWkpzrEN9l7emkEM0JId+rI5FPlXmq593t9U3u2DgZWv5IZ7 1265c+Zi7I4ZC/ZcoslBjwPsFaT8FHO3+5E0neovmRJclofPFcrVMSivmLAqjKdAJWnT eQxJL9Z1vTOuV+/dlmtD9JAy8wJdfnUQJKq2ZOPD2hgWD1nCLmcbYf+EPkALu+N6fMv6 KIHWrKE/6lq2/gPm534CLEZNXxc+jAWg/G2Ate02NPoT4Z2J+5dY7tdsaSOCO2cj61PW jndA==
MIME-Version: 1.0
X-Received: by 10.194.91.211 with SMTP id cg19mr7615430wjb.43.1362014904244; Wed, 27 Feb 2013 17:28:24 -0800 (PST)
Received: by 10.194.5.135 with HTTP; Wed, 27 Feb 2013 17:28:24 -0800 (PST)
In-Reply-To: <A89944B3-8BB6-4B09-AF80-4F2C683A14EF@mnot.net>
References: <CAA4WUYiH8tCF83=jsk_jsvhXkYvmJ+pPLFzhacAMq3O54z2YBw@mail.gmail.com> <CAOdDvNqCe3d7QerQaxiwdwJ+wC+4CGA4ZrLRYFY75nR2QFThog@mail.gmail.com> <CAA4WUYg2gn7Um1FZk3KBcP5aH=RpSCbYduFz3M+hZGQ_A4tsxQ@mail.gmail.com> <CAOdDvNqTNa=R1MzZe1mKZF34tW-=mhHnM_s_XPVzBBSEWHveVQ@mail.gmail.com> <CAA4WUYiW6xsT8g--1cL7HZTVYS_+5Y-WKpzfbx2JCLRqHXNgcQ@mail.gmail.com> <2595AFA8-9928-4511-B569-3DFC36B73C5C@mnot.net> <CAA4WUYg8ksyjKYmeX6YC3P1-iaRRSD_e5KDhpPw0d9i2CnvpSQ@mail.gmail.com> <CABkgnnU4=OYYZEkS7sfxWjXum+Mpx7RzUdJSzYa9a+UybESQYw@mail.gmail.com> <CAP+FsNcDxJeU=7+x8Jx5TO0hm_P2yCKPu7_tEZF0GEtjMbQ2Xg@mail.gmail.com> <CAA4WUYh1qU6HPbeZTsFTy7i5svxWS2dATgUNyaoGnzbMLkCELg@mail.gmail.com> <CABkgnnUH5_t4BesWz2K5gtR0k0+ve42k-EWEaObK_nteh9fOUw@mail.gmail.com> <CAP+FsNcZrQ072mQikMSnyFrKqN0yDYhh=-8G4848YxdO_M-_zw@mail.gmail.com> <CABkgnnU8Okqrq5POYZqDyFUoFzkQwjRAvQJQQ_jhCO9heaFYNA@mail.gmail.com> <CAP+FsNd5bCpcVg7Z9Q=D1goYZ2keGnxPmy2G79O+h5K6bSa=cA@mail.gmail.com> <CABkgnnWgNHHHuCSXNpDQSVbaBTp=ZYnPH+MX9-_CXvaj4VD83w@mail.gmail.com> <A89944B3-8BB6-4B09-AF80-4F2C683A14EF@mnot.net>
Date: Wed, 27 Feb 2013 17:28:24 -0800
Message-ID: <CABkgnnVm30edw=ZQbyq9zUbLqQfWMi_YS9Y4n5MjNQTeM5GESg@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Mark Nottingham <mnot@mnot.net>
Cc: Roberto Peon <grmocg@gmail.com>, =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <willchan@chromium.org>, Patrick McManus <mcmanus@ducksong.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Received-SPF: pass client-ip=209.85.212.181; envelope-from=martin.thomson@gmail.com; helo=mail-wi0-f181.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.653, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1UAsIl-0000Jn-4o 3fe5642ba7df726281e9b302cc1dc348
X-Original-To: ietf-http-wg@w3.org
Subject: Re: proposed WINDOW_UPDATE text for session flow control windows
Archived-At: <http://www.w3.org/mid/CABkgnnVm30edw=ZQbyq9zUbLqQfWMi_YS9Y4n5MjNQTeM5GESg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16918
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>

Just started out on this, taking Roberto's suggestion of having a
setting and a WINDOW_UPDATE flag.  A few minor points came up.

Disabling flow control for the session potentially has two different
mechanisms: settings and window update.  Is this OK, or would people
prefer to only have the WINDOW_UPDATE?  I think that for simple
implementations, the settings will be a more attractive prospect.

I've said that using SETTINGS to disable flow control has an effect on
both new *and existing* streams.  Again, this makes an attractive
option for implementations that don't want flow control.

Re-enabling flow control is an error.  Basically, we have no mechanism
to unambiguously identify when flow control starts.  I don't believe
that it is worthwhile to provide such a mechanism.

See https://github.com/http2/http2-spec/commit/d8013a3e1659696debc8773e9467b8ad829c49ee

On 25 February 2013 17:00, Mark Nottingham <mnot@mnot.net> wrote:
> Opening as:
>   https://github.com/http2/http2-spec/issues/44
> ... and marking as ready for the editors to have a kick at it.
>
> Regards,
>
>
> On 21/02/2013, at 10:00 AM, Martin Thomson <martin.thomson@gmail.com> wrote:
>
>> On 20 February 2013 14:52, Roberto Peon <grmocg@gmail.com> wrote:
>>> I'm afraid of simply sending a large window size, because I suspect that
>>> simple implementations will mess it up for objects > 31 bits in size.
>>
>> Yes. Absolutely.
>>
>>> If we don't have a SETTINGS thing, then we're requiring flow control for the
>>> first RT for any stream.
>>
>> Yes, that's the implication.  Though a client is always able to
>> disable flow control without consequence, because it speaks first,
>> before the server sends anything.  It's only servers that need to
>> worry about having it on briefly.  The consequences are minimal - they
>> just don't receive as many packets as they possibly could - but then
>> that is always true for two reasons: TCP INIT CWD and the time it
>> takes to send the WINDOW_UPDATE.
>>
>>> I like the flag solely because it is difficult to do by accident, unlike
>>> using zero (which is technically fine otherwise)
>>
>> I don't believe in accidents, but I see your point.
>>
>>> The other thing to consider is when, if ever, one can transition from
>>> flow-control disabled to requiring its use again.
>>> Even if we don't allow this, it will require text explaining it.
>>
>> I thought about this.  The obvious choice is to start again from zero
>> when a WINDOW_UPDATE comes in.  The problem is knowing (at the
>> receiver end) when counting started.  Once you stop counting, that's
>> the real difficulty.  I believe that once it's off, flow control will
>> need to stay off.
>
> --
> Mark Nottingham   http://www.mnot.net/
>
>
>