Re: h2 proxy and connection flow control

Patrick McManus <mcmanus@ducksong.com> Thu, 21 August 2014 14:03 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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7BEAC1A02FF for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 21 Aug 2014 07:03:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.947
X-Spam-Level:
X-Spam-Status: No, score=-6.947 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.668, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 qL1X4TXv4krH for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 21 Aug 2014 07:03:21 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 060821A02E8 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 21 Aug 2014 07:03:20 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1XKSui-0003Pv-7b for ietf-http-wg-dist@listhub.w3.org; Thu, 21 Aug 2014 14:00:28 +0000
Resent-Date: Thu, 21 Aug 2014 14:00:28 +0000
Resent-Message-Id: <E1XKSui-0003Pv-7b@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <patrick.ducksong@gmail.com>) id 1XKSuL-0001cw-AO for ietf-http-wg@listhub.w3.org; Thu, 21 Aug 2014 14:00:05 +0000
Received: from mail-qc0-f181.google.com ([209.85.216.181]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <patrick.ducksong@gmail.com>) id 1XKSuJ-0003GX-2k for ietf-http-wg@w3.org; Thu, 21 Aug 2014 14:00:05 +0000
Received: by mail-qc0-f181.google.com with SMTP id x13so9180640qcv.26 for <ietf-http-wg@w3.org>; Thu, 21 Aug 2014 06:59:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=rwqPQu486K5BIWJGEQCIq9abbwfsx5NExd4B+Df3skI=; b=r1THfpT4lvV5DJPNbmoT2XfDut4liLVZt/C7CkmJSqCRqYAu5PZJ3K6eezdBwh8eoe AgEFzuNpQoe3A6xTJdb/QGJso0YcmA6uVrpNBNlsMG5OzBriq2j5Lsi7fSbvcM595t3N q2w+s8G7snMhJ3ixk4CvQUGbqZWr4mRK8Savr2Chwl4BNNkMYzCvCAdcEoBIsCnO2HFr 6frTeqyWlCNJwYH/z2046ha7Ozy6vPokk4MhmFO9YPsGYEqxpNg8BNeMP8fYr3IdFfHj OjLH0oEbScQfWAoJF3gmXpAMeeWcf7n4vSqAFnABzvPOCTvWwPd42h+DCKerRj+H8g6U qH6Q==
MIME-Version: 1.0
X-Received: by 10.224.71.198 with SMTP id i6mr90604908qaj.76.1408629577374; Thu, 21 Aug 2014 06:59:37 -0700 (PDT)
Sender: patrick.ducksong@gmail.com
Received: by 10.140.104.161 with HTTP; Thu, 21 Aug 2014 06:59:37 -0700 (PDT)
In-Reply-To: <CAPyZ6=+9sEFaaEBHSvhbzck6mLthatDVamMckYfnUXVMhVbiVg@mail.gmail.com>
References: <CAPyZ6=+9sEFaaEBHSvhbzck6mLthatDVamMckYfnUXVMhVbiVg@mail.gmail.com>
Date: Thu, 21 Aug 2014 09:59:37 -0400
X-Google-Sender-Auth: FuVmvQ4Lhkrc1zh2ZPs7D722Gb4
Message-ID: <CAOdDvNqX0H7hhxtx3ODniuYQU5wt9Qi91BDjOcENssi_m4PbQA@mail.gmail.com>
From: Patrick McManus <mcmanus@ducksong.com>
To: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Cc: HTTP <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="089e0160c4a0946b11050124218f"
Received-SPF: pass client-ip=209.85.216.181; envelope-from=patrick.ducksong@gmail.com; helo=mail-qc0-f181.google.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.748, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1XKSuJ-0003GX-2k f00573549ade6eb0427583ea3559e366
X-Original-To: ietf-http-wg@w3.org
Subject: Re: h2 proxy and connection flow control
Archived-At: <http://www.w3.org/mid/CAOdDvNqX0H7hhxtx3ODniuYQU5wt9Qi91BDjOcENssi_m4PbQA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/26688
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 Thu, Aug 21, 2014 at 9:39 AM, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
wrote:

>
>
> Since Browser's receive window is 0, Frontend Proxy cannot send
> more DATA for stream A to Browser.  Meanwhile, Frontend Proxy
> continues to receive DATA for stream B from Backend.  Since
> stream A's stream window is 0, Frontend Proxy cannot proceed and
> just buffer the received data and eventually Frontend Proxy's
> receive window for connection becomes 0.
>
> After this happens, Browser can still issue new request, but
> Backend cannot send response to Frontend Proxy because its recive
> window is 0.  This means that if Browser stalls one stream, it
> stalls all streams in entire session.
>

The proxy cannot receive more data because its resources (the session
window) are exhausted.

If it did receive more data where would it put it?

If it actually has room for more data then it should just increase its
session window with a window update.