[hybi] Max frame size

Francis Brosnan Blázquez <francis@aspl.es> Wed, 22 June 2011 05:34 UTC

Return-Path: <francis@aspl.es>
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 D49FC11E80A3 for <hybi@ietfa.amsl.com>; Tue, 21 Jun 2011 22:34:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.584
X-Spam-Level: **
X-Spam-Status: No, score=2.584 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FH_HOST_ALMOST_IP=1.889, HOST_EQ_STATIC=1.172, HOST_EQ_STATICIP=1.511, HOST_MISMATCH_NET=0.311, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jJ8HxQ6mAZvG for <hybi@ietfa.amsl.com>; Tue, 21 Jun 2011 22:34:12 -0700 (PDT)
Received: from mail.aspl.es (196.Red-212-170-101.staticIP.rima-tde.net [212.170.101.196]) by ietfa.amsl.com (Postfix) with ESMTP id 347DB11E80A0 for <hybi@ietf.org>; Tue, 21 Jun 2011 22:34:10 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.aspl.es (Postfix) with ESMTP id 517E51170003 for <hybi@ietf.org>; Wed, 22 Jun 2011 07:34:08 +0200 (CEST)
X-Virus-Scanned: amavisd-new at aspl.es
Received: from mail.aspl.es ([127.0.0.1]) by localhost (dolphin.aspl.es [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wJalbJZEolYV for <hybi@ietf.org>; Wed, 22 Jun 2011 07:34:03 +0200 (CEST)
Received: from [192.168.0.153] (unknown [89.7.176.101]) (Authenticated sender: acinom) by mail.aspl.es (Postfix) with ESMTPA id 1DC851170001 for <hybi@ietf.org>; Wed, 22 Jun 2011 07:34:03 +0200 (CEST)
From: Francis Brosnan =?ISO-8859-1?Q?Bl=E1zquez?= <francis@aspl.es>
To: hybi@ietf.org
Content-Type: text/plain
Date: Wed, 22 Jun 2011 07:34:20 +0200
Message-Id: <1308720860.5393.18.camel@tot.local>
Mime-Version: 1.0
X-Mailer: Evolution 2.22.3.1
Content-Transfer-Encoding: 7bit
Subject: [hybi] Max frame size
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, 22 Jun 2011 05:34:12 -0000

Hi,

Current frame design allows to send a very big single frame size (63
bits). In terms of memory a websocket server will have problems with
this because he must buffer all content until he can deliver the entire
message to the app level (assuming message based API).

I think we need a way for servers (and possibly clients) to notify each
other which is the max frame size each part is willing to accept so each
site administrator can configure this according to its resources,
application type, number of connections, etc.

I think a simple header notified at the websocket handshake will provide
this valuable control to each party:

   Max-Frame-Size: 4096

This will cause each party to fragment application level messages if it
is found bigger than Max-Frame-Size.

In the same direction, if not provided Max-Frame-Size, it looks
reasonable to assume a default value for this header. Again, 4096 bytes
looks like a good value.

What do you think?