Re: [hybi] Simplify WebSocket multiplexing
"Arman Djusupov" <arman@noemax.com> Thu, 30 May 2013 14:38 UTC
Return-Path: <SRS0+3db7b28a961e272e=PP=noemax.com=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 A2D6421F87D2 for <hybi@ietfa.amsl.com>; Thu, 30 May 2013 07:38:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[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 Jft1yescz-2W for <hybi@ietfa.amsl.com>; Thu, 30 May 2013 07:38:10 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [74.208.113.37]) by ietfa.amsl.com (Postfix) with ESMTP id 77B3F21F8E6E for <hybi@ietf.org>; Thu, 30 May 2013 07:38:09 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; t=1369924684; x=1370529484; s=m2048; d=noemax.com; c=relaxed/relaxed; v=1; bh=EK9S2URlM2rDbMVgglzwFdqVN6Y=; h=From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References; b=ngo+K/c5vmQKV5btoj6nIZYlzKVubOWAuo/19U/IN/OmheCc6qfV6T3kyRb2GUMqopscYE2y1xBAztb7e1L1YhSrVUyWmU328qlb7EIPs6ewV2RSe+MqGDHu0J8eD1gd9DPChkKIf56eTf65l/9MnknEEGqupneAv+iT8ZaIYemcCoiGJVfGvOo0NuClivJf1XONlNThXXVtcn2enNeX3bf1rtg132LOhQasMioBXQn2aTUknm8D0Aj3o/mVyOvSJUUWJ01JLRSleaOKLyCpMK4iiig9iWNOHpk7KcasvHvQLDdtgF5dTnQyUHCn4UeGoYBfl5Z2wytdHoQOAayPyQ==
Received: from mail.noemax.com by mail.noemax.com (Noemax Mail Server) with ASMTP (SSL) id 201305301738030291; Thu, 30 May 2013 17:38:03 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Takeshi Yoshino' <tyoshino@google.com>, hybi@ietf.org
References: <CAH9hSJaUnFRve-JMUm1pzdxreHsd5R13gUa0s9_S2u1t6Y87rQ@mail.gmail.com>
In-Reply-To: <CAH9hSJaUnFRve-JMUm1pzdxreHsd5R13gUa0s9_S2u1t6Y87rQ@mail.gmail.com>
Date: Thu, 30 May 2013 17:38:02 +0300
Message-ID: <005001ce5d43$4bcb74e0$e3625ea0$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0051_01CE5D5C.7118ACE0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQJIpJn/mIepNG7p5bRkeMd7fgmhTpgpPOwQ
Content-Language: en-us
Subject: Re: [hybi] Simplify WebSocket multiplexing
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, 30 May 2013 14:41:46 -0000
Agree on dropping 1,2, 4. Flow control (6) cannot be removed, mux would not work without it. I would also simplify the initial handshake by removing the quota from the handshake. Let the server be required to send the first set of channel slots right after replying to the HTTP handshake, this will not cause any delays and there will be a unified initial quota mechanism for all channels including first logical channel. So the client sends a handshake requesting the mux extension, as reply it gets an HTTP response confirming the handshake and the set of new channel slots in the first frame. Another part of spec to simplify is the DropChannel close codes. There are too many codes that cover protocol violations. Since we are not designing a unit-test framework for bad implementations I think most of those are not needed. Any protocol violation should result in dropping the physical connection, there is simply no reason to continue communicating with a pier that does not adhere to the protocol and obviously is not compatible. Polite behavior in such cases can only be abused by a DoS attacker, where a malicious client keeps violating the protocol to force the remote endpoint to send "error reports", wasting its time and I/O threads. With best regards, Arman From: hybi-bounces@ietf.org [mailto:hybi-bounces@ietf.org] On Behalf Of Takeshi Yoshino Sent: Thursday, May 30, 2013 10:17 AM To: hybi@ietf.org Subject: [hybi] Simplify WebSocket multiplexing (Branching from the thread "Call for interest: multiplexing dedicated for WebSocket") It seemed that we had rough consensus on accelerating WebSocket dedicated multiplexing by simplifying it if we keep working on it. I'd like to hear your opinion on this in this separate thread. Below listed some points we could drop/simplify including both ones suggested in the thread and some I came up with now. 1) Header delta encoding in AddChannelRequest 2) Header delta encoding in AddChannelResponse 3) Channel slot 4) Only one mux control in one message 5) Use the length encoding for encoding mux channel ID 6) Drop flow control ---- My opinion is to do 1, 2 and 4.
- [hybi] Simplify WebSocket multiplexing Takeshi Yoshino
- Re: [hybi] Simplify WebSocket multiplexing Martin Sustrik
- Re: [hybi] Simplify WebSocket multiplexing Tobias Oberstein
- Re: [hybi] Simplify WebSocket multiplexing Arman Djusupov