Re: [hybi] Send quota value before receiving AddChannelResponse (was: Re: MUC: channel ID semantics)
"Arman Djusupov" <arman@noemax.com> Thu, 19 April 2012 10:13 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 BD83B21F8594 for <hybi@ietfa.amsl.com>; Thu, 19 Apr 2012 03:13:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.165
X-Spam-Level:
X-Spam-Status: No, score=-2.165 tagged_above=-999 required=5 tests=[AWL=0.433, 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 MmfkJ+Dut7mo for <hybi@ietfa.amsl.com>; Thu, 19 Apr 2012 03:13:25 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [64.34.201.8]) by ietfa.amsl.com (Postfix) with ESMTP id 8178F21F858A for <hybi@ietf.org>; Thu, 19 Apr 2012 03:13:25 -0700 (PDT)
Received: from ArmanPC1 by mail.noemax.com (IceWarp 9.4.1) with ASMTP (SSL) id DOG18328; Thu, 19 Apr 2012 13:13:28 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Gabriel Montenegro' <Gabriel.Montenegro@microsoft.com>, 'Takeshi Yoshino' <tyoshino@google.com>, 'John Tamplin' <jat@google.com>
References: <CAH9hSJZP8FhAGANSwPfvdMCQPyfRhG7tqPT68e6VY5ZCAEROTw@mail.gmail.com> <CABLsOLBsHXsj_A2sWa+b8KaFJBEFMHk0W268RyKzh7J0Y+ZxVQ@mail.gmail.com> <CAH9hSJZMrqDLJLr6RNLk84o1B2i3AVezUeGF9mWZ2Yu2Uv-feA@mail.gmail.com> <CA566BAEAD6B3F4E8B5C5C4F61710C1147FA4EA0@TK5EX14MBXW602.wingroup.windeploy.ntdev.microsoft.com>
In-Reply-To: <CA566BAEAD6B3F4E8B5C5C4F61710C1147FA4EA0@TK5EX14MBXW602.wingroup.windeploy.ntdev.microsoft.com>
Date: Thu, 19 Apr 2012 13:13:14 +0300
Message-ID: <002501cd1e15$0c8d8480$25a88d80$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0026_01CD1E2E.31DD0670"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQFDpAB3Ba5pDAvrAhMo3RFqWK7Q0QGeXeAIAYMcRbwA5LM+P5eUrvRQ
Content-Language: en-us
Cc: hybi@ietf.org
Subject: Re: [hybi] Send quota value before receiving AddChannelResponse (was: Re: MUC: channel ID semantics)
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: Thu, 19 Apr 2012 10:13:28 -0000
We are simply considering whether letting the client to send frames before the logical channel is accepted is worth it in order to remove this short RTT. This feature would also require that the sever buffers the frames of the logical channel until it is accepted. On the server side the procedure of adding logical channels is not certain to be fast. It may involve querying the database or establishing a new physical connection. For the duration of this operation the server would have to spend some amount of its resources despite it would be unclear whether the new logical channel is accepted or not. The best solution would be to have the server control this by using a default value for the initial quota during the physical channel handshake. For example, the server could set the quota explicitly to "0" during the physical channel handshake, in which case all logical channels (including first one) would be prohibited from sending any data until the channel is accepted and so all clients would have to wait for the first flow control message to arrive from the server side. Note that this flow control message may arrive in the same frame as the AddChannelResponse without any additional RTT. Practically we don't need to change much in the spec, we just need to be able to negotiate the default quotas during the physical channel handshake. Any additional quotas can be easily granted using the flow control messages that may arrive in the same frame as AddChannelRequest or AddChannelResponse. With best regards, Arman From: Gabriel Montenegro [mailto:Gabriel.Montenegro@microsoft.com] Sent: Thursday, April 19, 2012 8:41 AM To: Takeshi Yoshino; John Tamplin Cc: Arman Djusupov; hybi@ietf.org Subject: RE: Send quota value before receiving AddChannelResponse (was: Re: [hybi] MUC: channel ID semantics) In all previous discussions in this WG there has been relentless push to optimize any RTTs out of the protocol. Consistent with this is being able to use the lightweight channel setup (as is possible in SPDY) in which data transmission is possible without requiring the ack. If I'm the only one asking about this, perhaps the WG is no longer interested in such optimizations, but I'd still be interested in understanding the change of heart. From: Takeshi Yoshino [mailto:tyoshino@google.com] Sent: Wednesday, 18 April, 2012 9:50 To: John Tamplin; Gabriel Montenegro Cc: Arman Djusupov; hybi@ietf.org Subject: Re: Send quota value before receiving AddChannelResponse (was: Re: [hybi] MUC: channel ID semantics) On Wed, Apr 18, 2012 at 21:01, John Tamplin <jat@google.com> wrote: On Wed, Apr 18, 2012 at 4:15 AM, Takeshi Yoshino <tyoshino@google.com> wrote: You're right. In the latest spec, it's not explicitly specified what the value of send quota is until AddChannelResponse is received. There're several options we can take. a) specify the fixed value of send quota before AddChannelResponse in the spec b) add a new parameter "pre_handshake_quota" to multiplexing extension to negotiate the value of send quota before AddChannelResponse c) drop the feature to configure initial quota for each logical channel, and redefine the quota parameter as pre-handshake send quota for all logical channels Until we know the AddChannel was accepted, how can we send data anyway? This seems just like the initial handshake on a new connection -- you wouldn't consider sending that data until you knew the connection was accepted. Since we are avoiding TCP setup requirements, this will be much less latency than if the connection were created without multiplexing. I suppose it would be possible to send the data while keeping it buffered as an optimization, but since adding a channel should be infrequent compared to sending data on it, I don't see it as that important to optimize for. Yes. It's infrequent. If the information the impatient client want to send is small, it can also be just embeded into URL or subprotocol to avoid the additional RTT. If no one really needs this feature and has justification, I'm fine with keeping the same restriction (no transmission until AddChannelResponse) as no-mux connection. IIRC, Gabriel was interested in this optimization. Gabriel, do you have any comment about this?
- [hybi] Send quota value before receiving AddChann… Takeshi Yoshino
- Re: [hybi] Send quota value before receiving AddC… John Tamplin
- Re: [hybi] Send quota value before receiving AddC… Arman Djusupov
- Re: [hybi] Send quota value before receiving AddC… Takeshi Yoshino
- Re: [hybi] Send quota value before receiving AddC… Gabriel Montenegro
- Re: [hybi] Send quota value before receiving AddC… Arman Djusupov
- Re: [hybi] Send quota value before receiving AddC… Gabriel Montenegro
- Re: [hybi] Send quota value before receiving AddC… Patrick McManus
- Re: [hybi] Send quota value before receiving AddC… Greg Wilkins
- Re: [hybi] Send quota value before receiving AddC… Arman Djusupov
- Re: [hybi] Send quota value before receiving AddC… John Tamplin
- Re: [hybi] Send quota value before receiving AddC… Arman Djusupov
- Re: [hybi] Send quota value before receiving AddC… Takeshi Yoshino