http/2 flow control

William Chan (陈智昌) <willchan@chromium.org> Thu, 24 January 2013 22:23 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 91BE011E80A5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 24 Jan 2013 14:23:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.984
X-Spam-Level:
X-Spam-Status: No, score=-8.984 tagged_above=-999 required=5 tests=[AWL=0.693, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, 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 EKJ+1BysrOI9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 24 Jan 2013 14:23:25 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id CE5F311E8099 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 24 Jan 2013 14:23:24 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1TyVCI-0005lp-MJ for ietf-http-wg-dist@listhub.w3.org; Thu, 24 Jan 2013 22:23:02 +0000
Resent-Date: Thu, 24 Jan 2013 22:23:02 +0000
Resent-Message-Id: <E1TyVCI-0005lp-MJ@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <willchan@google.com>) id 1TyVC7-0005df-QK for ietf-http-wg@listhub.w3.org; Thu, 24 Jan 2013 22:22:51 +0000
Received: from mail-qa0-f44.google.com ([209.85.216.44]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <willchan@google.com>) id 1TyVC4-0001qL-79 for ietf-http-wg@w3.org; Thu, 24 Jan 2013 22:22:51 +0000
Received: by mail-qa0-f44.google.com with SMTP id o13so729505qaj.3 for <ietf-http-wg@w3.org>; Thu, 24 Jan 2013 14:22:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type; bh=eYceb6FibXhrQQphtCgqYEVh62ax3ah/erhr24e3LVU=; b=YVkx+MPgm8m46++7TnZEwhViG1CYGmmYJSnqe4cfFhRqQJRJla7tApy7SLheDftdwM yWwEfODm9KkEw8AjMOkSld5tRm0BR+CGBK44czQeFkd/T0l6y52l5hUSBrpOB/JsTGxT 5rVZHhH9WkhRxfSnB5vspkj2LzztxA4OfjZFrwnNIlaJJtGRWfIHKEK1lRudBPI4Jdjk 9UtYGtzThFfyfnU7FzFxW6I1Ngwo1kB+WS6f/sKBVF0Ze5OOgI5t2UDdsg9wgcKF3Kuq vod0HMz6gEP9u0WKlIrwPYV00QIOpV6LzEfBYHE+uQeDHky7fW2OMCtVTCKdtXFjZi6I +YLQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type; bh=eYceb6FibXhrQQphtCgqYEVh62ax3ah/erhr24e3LVU=; b=ST2HarA+TUkJSQq5H7K9gt/siKRCFINh69js0urUCxBNPscY+zh9nSr+N5+jzxOMNL 6vC75/N81H5tUrd/eWru7/OKEbpTgDAM/40pRfi4v42buzAHdS11MXNRkC13T97tXZZ2 QX/H2KFUkqTfE4D6zJNS2vyHZfNhq5ojtXGaE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type:x-gm-message-state; bh=eYceb6FibXhrQQphtCgqYEVh62ax3ah/erhr24e3LVU=; b=CKQqlKmwE+/nZGFLZo2xe6ypWtVLfM9ZtlNuUfvjSPGDDbTB/mwqe+iUsrHrvIoH/Q V17AgZi0pDwllP6yhRwkxLkfrHiD5zOi4AW2VIzQxah4HQIo6G4FRFKp7cBvRzwk19w8 5GGcyKqZV5maHGAgfAbtPqGVvaCrGBovQ1c+ZkkglAa9xJb5IxEikcZVq5rnISdHKE7w nkzWYThI35pXE3EsRR8xaykk23QwmpiQoUc+LFm8hwkyyqSf+2FqF8Wkfter3VhjVKZl 6I194qWyHuR67ZsC86iKTE6mIal+GOvYZ8Mgkq/VNJ7O6AWvO9XEaeDOTtfLcQaD0Rpy BjkA==
MIME-Version: 1.0
X-Received: by 10.224.70.205 with SMTP id e13mr3670132qaj.77.1359066142143; Thu, 24 Jan 2013 14:22:22 -0800 (PST)
Sender: willchan@google.com
Received: by 10.229.57.163 with HTTP; Thu, 24 Jan 2013 14:22:21 -0800 (PST)
Date: Thu, 24 Jan 2013 14:22:21 -0800
X-Google-Sender-Auth: TK1oV6ZYUle84V3ATdA_9ItCIyQ
Message-ID: <CAA4WUYgk-NPZ0bdYV3KysVED=OqFQ6Z0eE-7ePmmFdS2GMfjLA@mail.gmail.com>
From: "William Chan (陈智昌)" <willchan@chromium.org>
To: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: text/plain; charset="ISO-8859-1"
X-Gm-Message-State: ALoCoQlk51KhhiCt1UcVAqCzfFYe5+AtQL1QTO0I7JXAzGXMKYC2sTbJge17DaA1hUdSCGZbxKmR8XxEJSa2DX2xAb9XcrUxPZSZy9PUs1rEvCc15sFbAawFBZKwHLFpaZMFnnffwzVgVlez2XTC/nsmve41SammTUhRr7BjpAzyMSlH8uLzfbEfx55G5CBsJjPoLelkEvq6
Received-SPF: pass client-ip=209.85.216.44; envelope-from=willchan@google.com; helo=mail-qa0-f44.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.650, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1TyVC4-0001qL-79 dee3dc96e6da0c0734c84e5d74719bf9
X-Original-To: ietf-http-wg@w3.org
Subject: http/2 flow control
Archived-At: <http://www.w3.org/mid/CAA4WUYgk-NPZ0bdYV3KysVED=OqFQ6Z0eE-7ePmmFdS2GMfjLA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16184
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>

Given the long previous debates in flow control discussions on the
spdy-dev@ mailing list
(https://groups.google.com/d/topic/spdy-dev/JB_aQPNI7rw/discussion), I
thought it would be useful to write up a summary of lots (but not all)
of the discussions before we engage in the f2f interim meeting
discussions. Here's my summary:
https://docs.google.com/document/d/15LMnvVWSY-kF-ME4RZIFHN0FukViapjiefQMmQCnr14/pub.

It discusses the reasoning behind per-stream flow control windows, as
included in SPDY3 and in the current http2 draft. It discusses some
problems with it, and also tradeoffs between relying on transport
level flow control windows (TCP) and session level flow control
windows.

This document left out some other proposals to hopefully keep it simpler:
* Receiver sending a xon/xoff frame to instruct the sender to
resume/stop sending.
* Stream group flow control windows.

The latter is fairly advanced, and I think it is only pertinent if we
agree there is a need for session level flow control windows, since
stream group flow control windows subsume session level flow control
windows (session == a single stream group containing all streams).

One last thing on flow control. It's definitely possible, as Patrick
demonstrates in
http://bitsup.blogspot.com/2012/12/managing-bandwidth-priorities-in.html,
to use flow control facilities to control prioritization. It's my hope
that HTTP/2's prioritization facilities will suffice for that end, and
thus we won't try to use receive windows to control prioritization.

Cheers.