Re: [hybi] Multiplexing: Pre-AddChannelResponse quota
"Arman Djusupov" <arman@noemax.com> Fri, 22 June 2012 08:20 UTC
Return-Path: <arman@noemax.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C803621F85E0 for <hybi@ietfa.amsl.com>; Fri, 22 Jun 2012 01:20:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.426
X-Spam-Level:
X-Spam-Status: No, score=-2.426 tagged_above=-999 required=5 tests=[AWL=0.172, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 TVxbbDMcJpXq for <hybi@ietfa.amsl.com>; Fri, 22 Jun 2012 01:20:22 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [64.34.201.8]) by ietfa.amsl.com (Postfix) with ESMTP id 414FB21F8675 for <hybi@ietf.org>; Fri, 22 Jun 2012 01:20:22 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; t=1340353226; x=1340958026; s=m1024; d=noemax.com; c=relaxed/relaxed; v=1; bh=K7AJNy4v11be2EDZcMO4IWZAHX8=; h=From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References; b=sK7//Z3aP1imi3D/Ka34lhD22hg9VfLARTCmF//CsQUXWoilAKHFTPg/ViQTmjXRBgfXBB8oDo6Qv6/9gYHC/hULo1pgzsr4ytlwqmG1mR0W10kjyku+vZKlb+bdMpnO/XDQovx7xCTQA1Gt6xhAFK2iiZ8dumIElPDg7V0lBQs=
Received: from mail.noemax.com by mail.noemax.com (IceWarp 10.4.1) with ASMTP (SSL) id GOQ42024; Fri, 22 Jun 2012 11:20:24 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Takeshi Yoshino' <tyoshino@google.com>
References: <CAH9hSJZUAHQzDm4ofq6onc620SNretLQDOcjSnr2eQ0YA9yFdQ@mail.gmail.com> <002f01cd3cc4$4791b380$d6b51a80$@noemax.com> <20120607034440.GD26406@jl-vm1.vm.bytemark.co.uk> <CAH9hSJZWMgvQMNLapZAg_CS0vri=jZbfPLpLhfninjzG+JxxmA@mail.gmail.com> <CAH9hSJbChf6NPUqraaeEeLnDO=YyYja4SkwZJsWRfM5VUwZ59Q@mail.gmail.com> <002001cd4a14$53eb66f0$fbc234d0$@noemax.com> <CAH9hSJbz9HQrN67=Jf6bEmJikTGEViNEqjDP8XbHKrPKhYD19Q@mail.gmail.com> <001301cd4acf$d8c5cda0$8a5168e0$@noemax.com> <CAH9hSJYzbfUKMjuV3J1-tdapV59N5aewO-nAMLMexzF2f6KosA@mail.gmail.com> <6A3569A8-C253-4363-B00C-F336B0CA3128@noemax.com> <CAH9hSJayEAqJEE7=KdYuq669HOaG76kS9AVwUMUYaPKLtO=zEw@mail.gmail.com> <000301cd503d$0aff8f00$20fead00$@noemax.com> <CAH9hSJaNpAV2WYqRr7Pf47=auvADPHusx9ipUDLvAZRhRp7iuA@mail.gmail.com>
In-Reply-To: <CAH9hSJaNpAV2WYqRr7Pf47=auvADPHusx9ipUDLvAZRhRp7iuA@mail.gmail.com>
Date: Fri, 22 Jun 2012 11:20:05 +0300
Message-ID: <002101cd504f$d8a20e30$89e62a90$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0022_01CD5068.FDEF4630"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQHbEEjWH8q2xL+U7IgUz4ieagM0MAIpCHL8APvLbp8B3rSIHAHfCnvqAiE9EN8B8r7HPACD0WVjAIKfMBgB696tEgIeY34vAi4tHFcCuqrLZJZC/LbQ
Content-Language: en-us
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing: Pre-AddChannelResponse quota
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jun 2012 08:20:26 -0000
Good idea. Hmm, actually this model can also work without the server assigning channel IDs. The server simply needs to provide an initial quota to the slot and then we have to allow the server to send FC frames to the client's logical channel before the handshake is complete. So as soon as server receives an AddChannelRequest and learns the channel ID, it would be sending normal FC frames to the client. This way the FC would also work as usual both before and after the handshake. The only difference from the current spec is that the channel should be considered as established once an AddChannelRequest received by the server. FC for the logical channel should start from the moment when the server learns channel ID. If the server sends a FC frame as soon as it receives an AddChannelRequest, it should arrive to the client before the client uses all initial quota, so the transmission should not stop. If there is a delay in communication it would happen only due to the initial quota being too small for the transmission rate. But such delays are inevitable both before and after handshake. It depends entirely on the link speed and amount of quota granted. This way the client would be able to transmit as much as the server can receive without waiting for an AddChannelResponse. I like this idea, it is simple and would work fine. With best regards, Arman From: Takeshi Yoshino [mailto:tyoshino@google.com] Sent: Friday, June 22, 2012 9:18 AM To: Arman Djusupov Cc: Jamie Lokier; hybi@ietf.org Subject: Re: [hybi] Multiplexing: Pre-AddChannelResponse quota As we're going to add, say, NewChannelQuotaUpdate command which replenishes new channel quota, another idea is assigning a channel ID by the server on NewChannelQuotaUpdate. This way, the server can give pre-handshake quota to each potential channel slot by the same manner as post-handshake quota assignment. Pre-handshake quota can be carried over seamlessly. Takeshi On Fri, Jun 22, 2012 at 3:05 PM, Arman Djusupov <arman@noemax.com> wrote: Hello Takeshi, This will result in the protocol having two different stages of communication. One stage before the handshake during which flow control should be based on the common quota, and a second stage after the end-of-pre-handshake-data frame is received during which flow control is based on the logical channel quota. I'm ok with this solution, but I have the impression that this is a bit of overkill. It will be difficult to implement in a high concurrency multithreaded environment. I can't say if there are any practical problems until I try implementing it. But there might be difficulties that are not evident now. In general it's becoming a bit more complex than simply working with a self-assigned initial quota. With best regards, Arman From: Takeshi Yoshino [mailto:tyoshino@google.com] Sent: Thursday, June 21, 2012 3:27 PM To: Arman Djusupov Cc: Jamie Lokier; hybi@ietf.org Subject: Re: [hybi] Multiplexing: Pre-AddChannelResponse quota On Tue, Jun 19, 2012 at 4:06 PM, Arman Djusupov <arman@noemax.com> wrote: For reasons of simplicity and API limitations, browsers may simply always level the quota along the channels, or they might prefer to slightly delay sending the AddChannelRequest to check what is the size of the first message being sent so that the AddChannelRequest with IQ_X = message size is sent along with the first message, to avoid an extra roundtrip. Considering the concern Jamie showed, how about sending some FlowControl frame variant indicating the end of pre-handshake data after pre-handshake frames? The client consumes total pre-handshake data quota it has for the new channel as it like. And then, sends the end-of-pre-handshake-data frame. It can be after or before receiving AddChannelResponse for the request. The server knows how much pre-handshake data quota has been spent for the new channel attempt by summing the data size of frames before the end-of-pre-handshake-data frame. Delaying AddChannelRequest is fine but not so flexible enough to address the concern Jamie showed.
- [hybi] Multiplexing: Pre-AddChannelResponse quota Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Jamie Lokier
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Jamie Lokier
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Jamie Lokier
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Arman Djusupov
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Jamie Lokier
- Re: [hybi] Multiplexing: Pre-AddChannelResponse q… Takeshi Yoshino