Re: [hybi] Max frame size

Ian Fette (イアンフェッティ) <ifette@google.com> Wed, 22 June 2011 09:03 UTC

Return-Path: <ifette@google.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 CABD511E809A for <hybi@ietfa.amsl.com>; Wed, 22 Jun 2011 02:03:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.676
X-Spam-Level:
X-Spam-Status: No, score=-104.676 tagged_above=-999 required=5 tests=[AWL=-0.666, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4, SARE_HTML_USL_OBFU=1.666, USER_IN_WHITELIST=-100]
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 5OLqnpSp-4hB for <hybi@ietfa.amsl.com>; Wed, 22 Jun 2011 02:03:52 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by ietfa.amsl.com (Postfix) with ESMTP id AF49C11E8098 for <hybi@ietf.org>; Wed, 22 Jun 2011 02:03:51 -0700 (PDT)
Received: from wpaz9.hot.corp.google.com (wpaz9.hot.corp.google.com [172.24.198.73]) by smtp-out.google.com with ESMTP id p5M93os8022631 for <hybi@ietf.org>; Wed, 22 Jun 2011 02:03:50 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1308733430; bh=YbKgVe3X6icgtahcrjMbDil2veE=; h=MIME-Version:Reply-To:In-Reply-To:References:Date:Message-ID: Subject:From:To:Cc:Content-Type; b=PVbt+mpzUWHOH5/x/G/5lY7zE2O++yhwGK5tqYjTICMK0vfYPUmNam5rZdevEGLr+ /Q9YiqYjd6U8Ni9VR+TNA==
Received: from iyn35 (iyn35.prod.google.com [10.241.52.99]) by wpaz9.hot.corp.google.com with ESMTP id p5M93ms6007786 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <hybi@ietf.org>; Wed, 22 Jun 2011 02:03:49 -0700
Received: by iyn35 with SMTP id 35so659581iyn.24 for <hybi@ietf.org>; Wed, 22 Jun 2011 02:03:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=ZQsHjLQWbqT7aJvNfFxE1KUrB8wu6Yzo1Org1VbiCog=; b=TcwC4hHbPVADDOrnfwN0K95rLf/grLPInuEM4eUdiVbNm73ypx6FqQ3f8swxS6xWtf OfKMBymTjjYMdDy6/LTg==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; b=GdYoQJsQfO39o4x0i/9fp2eZQ81l7Imd5wdbxu3CABSHYNW/iihwFJUtGrAn+hWqA6 GkOubnC04d/R/oshTvSg==
MIME-Version: 1.0
Received: by 10.231.60.73 with SMTP id o9mr445752ibh.33.1308733427584; Wed, 22 Jun 2011 02:03:47 -0700 (PDT)
Received: by 10.231.33.8 with HTTP; Wed, 22 Jun 2011 02:03:47 -0700 (PDT)
In-Reply-To: <4E01ADE7.7050800@jp.sony.com>
References: <1308720860.5393.18.camel@tot.local> <4E01ADE7.7050800@jp.sony.com>
Date: Wed, 22 Jun 2011 02:03:47 -0700
Message-ID: <BANLkTinBH_UAj7kA5uKVJ2Rvg329xxfbCCrxYPTW-MhH_=-HwA@mail.gmail.com>
From: "Ian Fette (イアンフェッティ)" <ifette@google.com>
To: Norio Kobota <norio.kobota@jp.sony.com>
Content-Type: multipart/alternative; boundary="0015176f0d280e90e004a6493fe4"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] Max frame size
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: ifette@google.com
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 09:03:52 -0000

We spent almost a year before we got to the point on agreeing on framing.
We're now in last call. It's not the time to re-open such lengthy
conversations based on individual preferences (e.g. you're not saying
anything the group hasn't already considered).

As for negotiation, that's a very complex topic, which, while interesting,
is not necessary for the base protocol to function. I would suggest that if
you're interested you propose text for an extension that would handle
negotiation of such parameters as optimal/max frame sizes etc.

-Ian

On Wed, Jun 22, 2011 at 1:55 AM, Norio Kobota <norio.kobota@jp.sony.com>wrote:

> Hi,
>
> I think that 63 bits-length is too big for single frame, too.
> But there is no need to provide any header in handshake.
>
> The websocket frame format has a FIN bit for fragment message.
> So we can use this bit when we want to send very long message.
>
> I think that the websocket frame format can be more simple.
>
> +-+-+-+-+-------+-+-----------**--+---------------------------**----+
> |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
> |I|S|S|S|  (4)  |A|     (7)     |             (16)              |
> |N|V|V|V|       |S|             |   (if payload len==126)       |
> | |1|2|3|       |K|             |                               |
> +-+-+-+-+-------+-+-----------**--+---------------------------**----+
> | Masking-key, if MASK set to 1 | Masking-key (continued)       |
> +-----------------------------**--+---------------------------**----+
> |          Payload Data...                                      |
> +-----------------------------**------------------------------**----+
> |          Payload Data (continued)                             |
> +-----------------------------**------------------------------**----+
> or
> +-+-+-+-+-------+-+-----------**--+---------------------------**----+
> |F|R|R|R| opcode|M| reserve     |    Payload length             |
> |I|S|S|S|  (4)  |A| (7)         |    (16)                       |
> |N|V|V|V|       |S|             |                               |
> | |1|2|3|       |K|             |                               |
> +-+-+-+-+-------+-+-----------**--+---------------------------**----+
> | Masking-key, if MASK set to 1 | Masking-key (continued)       |
> +-----------------------------**--+---------------------------**----+
> |          Payload Data                                         |
> +-----------------------------**------------------------------**----+
> |          Payload Data (continued)                             |
> +-----------------------------**------------------------------**----+
>
> Regards, nori
>
>
> (2011/06/22 14:34), Francis Brosnan Blázquez wrote:
>
>> 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?
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> hybi mailing list
>> hybi@ietf.org
>> https://www.ietf.org/mailman/**listinfo/hybi<https://www.ietf.org/mailman/listinfo/hybi>
>>
>>
>>
> ______________________________**_________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/**listinfo/hybi<https://www.ietf.org/mailman/listinfo/hybi>
>