Re: [hybi] Multiplexing extension spec draft 03
Greg Wilkins <gregw@intalio.com> Wed, 29 February 2012 00:03 UTC
Return-Path: <gregw@intalio.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 73B5221E806F for <hybi@ietfa.amsl.com>; Tue, 28 Feb 2012 16:03:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.543
X-Spam-Level:
X-Spam-Status: No, score=-2.543 tagged_above=-999 required=5 tests=[AWL=0.433, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
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 Y0km2jn4INqQ for <hybi@ietfa.amsl.com>; Tue, 28 Feb 2012 16:03:20 -0800 (PST)
Received: from mail-tul01m020-f172.google.com (mail-tul01m020-f172.google.com [209.85.214.172]) by ietfa.amsl.com (Postfix) with ESMTP id 7CA4C21E8051 for <hybi@ietf.org>; Tue, 28 Feb 2012 16:03:20 -0800 (PST)
Received: by obbeh20 with SMTP id eh20so3958632obb.31 for <hybi@ietf.org>; Tue, 28 Feb 2012 16:03:20 -0800 (PST)
Received-SPF: pass (google.com: domain of gregw@intalio.com designates 10.60.5.138 as permitted sender) client-ip=10.60.5.138;
Authentication-Results: mr.google.com; spf=pass (google.com: domain of gregw@intalio.com designates 10.60.5.138 as permitted sender) smtp.mail=gregw@intalio.com
Received: from mr.google.com ([10.60.5.138]) by 10.60.5.138 with SMTP id s10mr2537349oes.66.1330473800211 (num_hops = 1); Tue, 28 Feb 2012 16:03:20 -0800 (PST)
MIME-Version: 1.0
Received: by 10.60.5.138 with SMTP id s10mr2209728oes.66.1330473800107; Tue, 28 Feb 2012 16:03:20 -0800 (PST)
Received: by 10.60.55.166 with HTTP; Tue, 28 Feb 2012 16:03:20 -0800 (PST)
In-Reply-To: <CAH9hSJb1ewPO3EBgD78anD+=4XouToGR4X7C1wvWqonc2nYB6g@mail.gmail.com>
References: <CAH9hSJb1ewPO3EBgD78anD+=4XouToGR4X7C1wvWqonc2nYB6g@mail.gmail.com>
Date: Wed, 29 Feb 2012 11:03:20 +1100
Message-ID: <CAH_y2NFrvg-cjGAT-AsGS0B6+UvAjpvhhzwYa7jBQwQ+pVFOog@mail.gmail.com>
From: Greg Wilkins <gregw@intalio.com>
To: Takeshi Yoshino <tyoshino@google.com>
Content-Type: multipart/alternative; boundary="e89a8ff252ce3d075804ba0f120d"
X-Gm-Message-State: ALoCoQk1+I9tit3JhFav02CUj+niK2KpMmHJwHCcg99gysgBrZZdCFa+6sT3SqE6ZxO2UW3YvKdC
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing extension spec draft 03
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: Wed, 29 Feb 2012 00:03:21 -0000
Some comments 3. If WebSocket payload data is masked by a per-frame key, such masking is applied to frames for each logical channel separately. I'm not sure what it means to apply masking to a logical channel separately? Surely a mask is applied to the frame that carries it before the MUX extension interprets the payload? 5. Flow Control Each logical channel, including the implicitly created channel 1, is initially given a quota of bytes that may be transmitted in each direction without acknowledgement. It is illegal to send more bytes than the remaining send quota, and the receiver MUST _Fail the Logical Channel_ for any sender that does so. Should this not be a failure of the physical channel as it indicates a failure of the other ends MUX implementation? This send quota is replenished via control frames as the receiver processes the data. s/This/The/ 7. Multiplex Control Frames nice clarifications in this section! - specifically "Objectve channel ID" Is the text diagram a standard? I find the + - - - - - + lines confusing and would prefer to see: 0 1 2 3 4 5 6 7 +---------------+ | Objective | : channel ID : | (8-32) | +-----+---------+ | Opc | Opcdata | +-----+---------+ | Additional | : data : | (0-? | +---------------+ 7.1. Multiplex Control Opcodes 0 - AddChannel request (only from client) Create a new logical channel, exactly as if a new connection were received on a separate transport connection, s/exactly // s/a new logical channel/the objective channel/ probably need to state somewhere that it is an error to add and already added channel. 0 - uncompressed This is a bad name for this encoding scheme as it implies there is a compressed scheme (OK delta encoding is a compression... but you know what I mean). How about calling this "absolute" or "complete" or "plain" ? The initial quota for the new logical channel is 0, so the client may not send any data for this connection until the AddChannel response is received. Does this mean that control frames can be sent for a channel before the add channel response is received? 3 - DropChannel Can a dropped channel be readded later? 11. Fairness A multiplexing implementation MUST ensure reasonable fairness among the logical channels. This is accomplished in several ways: Receiver side o The receiver MAY limit the other peer's send quota of a logical channel by not replenishing the send quota to make sure that any logical channel cannot dominate its buffer space on the sender. s/on the sender// as it is the buffer space on the receiver that is of concern Also we should say that the receiver does not need to process frames from different logical channels serially. ie the processing of a message from a logical channel should not defer the processing of messages on other logical channels. o The sender MUST fragment a message into smaller frames when it's too big so that that logical channel will occupy the connection and the other logical channels get stuck for long time. Cumbersome. How about: The sender MUST fragment a large message into smaller frames to prevent a large message in a logical channel occupying the physical channel and thus delaying messages in other logical channels. o Logical channel frames that are sent SHOULD be limited in size (such as by refragmenting) when there is contention for the physical channel to minimize head-of-line blocking How is this different from the previous? 13. Nesting I think we should disallow nesting. Any intermediary that wants to MUX channels understands MUX, so it can flatten. cheers
- [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Tobias Oberstein
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Tobias Oberstein
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Tobias Oberstein
- Re: [hybi] Multiplexing extension spec draft 03 Julian Reschke
- Re: [hybi] Multiplexing extension spec draft 03 Greg Wilkins
- Re: [hybi] Multiplexing extension spec draft 03 Joakim Erdfelt
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Greg Wilkins
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Greg Wilkins
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 Takeshi Yoshino
- Re: [hybi] Multiplexing extension spec draft 03 John Tamplin
- Re: [hybi] Multiplexing extension spec draft 03 Arman Djusupov