[hybi] Fwd: frame length encoding

Brian <theturtle32@gmail.com> Sun, 22 August 2010 20:05 UTC

Return-Path: <theturtle32@gmail.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 19E2C3A6958 for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 13:05:59 -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 ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dhSPyHiEuHqw for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 13:05:57 -0700 (PDT)
Received: from mail-iw0-f172.google.com (mail-iw0-f172.google.com [209.85.214.172]) by core3.amsl.com (Postfix) with ESMTP id 888C03A6801 for <hybi@ietf.org>; Sun, 22 Aug 2010 13:05:57 -0700 (PDT)
Received: by iwn3 with SMTP id 3so5501942iwn.31 for <hybi@ietf.org>; Sun, 22 Aug 2010 13:06:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=aw6sHnNH0PYOSDnQJjKVE4jbtY6phMp0zL4uEJ6qfMs=; b=X1lOTFadka40o6h398mvbjdeBn3ywGxVcsOYU5wE0ZnigTjRIaqnBY/wxDoJbA5vq2 BFbKPSpHCXIYQCip9Pk06qBrTb+bM95OPRtAf1bC5WEjCWkxZPQV1KvMsSPQ2h9+8/Sx iBFQt5kIkZnSYoTKAu/TNS3ZjLvTivb4rIQ/o=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=pC6xKLwdYQkpJz+m2x11sJZzAHcjp6NVzrIcmi2iUqrs8eyy0nlZbClpBLgKaiZNoa kNx06iTN/sZjXAOOZ6tT7IwIa0ledhTp7SFOPIimzSodNK5y+buYKw5RqvqY7lHphu+5 XZxT90RoX+GRcKTMmaz0vUdM8FbK+mXiaEQgM=
MIME-Version: 1.0
Received: by 10.231.39.69 with SMTP id f5mr5071159ibe.53.1282507591228; Sun, 22 Aug 2010 13:06:31 -0700 (PDT)
Received: by 10.231.158.82 with HTTP; Sun, 22 Aug 2010 13:06:30 -0700 (PDT)
In-Reply-To: <AANLkTik8GQRJYZV2ahJR2KSHSGXpyD2yQBTTDCra8RMm@mail.gmail.com>
References: <AANLkTimKbmcpgx8k0uXUWvCO=8w9pPrtV=3y4qh6363k@mail.gmail.com> <alpine.DEB.2.00.1008212037190.27211@tvnag.unkk.fr> <AANLkTinrsT+wV48nHvVW_1ChGYffkq7jisU2-PZnMyKg@mail.gmail.com> <alpine.DEB.2.00.1008212123460.27211@tvnag.unkk.fr> <20ef7ed5e135c57c1ee5a741658b9d98.squirrel@sm.webmail.pair.com> <1282423311.2014.6.camel@tng> <224b9ed365bd78fd5e316b8cb5f3f837.squirrel@sm.webmail.pair.com> <1282435214.2014.14.camel@tng> <AANLkTimo0MwZEMn1t1vrASfwC1bx82Q9Z_Ls3wVb-zUS@mail.gmail.com> <AANLkTimQxo0d9TW+ApKLfWrSwutMYL4MJBVRWtxP1sC5@mail.gmail.com> <AANLkTik8GQRJYZV2ahJR2KSHSGXpyD2yQBTTDCra8RMm@mail.gmail.com>
Date: Sun, 22 Aug 2010 13:06:30 -0700
Message-ID: <AANLkTikvvLiHkzyZNDT-9JbdgqhCz3Hr_q4Vd_eskFbv@mail.gmail.com>
From: Brian <theturtle32@gmail.com>
To: Hybi <hybi@ietf.org>
Content-Type: multipart/alternative; boundary="00032557543e65a071048e6f111a"
Subject: [hybi] Fwd: frame length encoding
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Sun, 22 Aug 2010 20:05:59 -0000

>
> Just because the JS API today passes the messages totally in RAM, there is
> no reason that it can be extended to support a stream-like API if processing
> larger messages becomes justified.  However, at the framing level, we have
> to have something in place such that v1.0 implementations written against
> this spec can interoperate with later extensions, so it seems prudent to
> make sure the protocol is sufficient for any reasonably forseeable needs.
>  There were several strong arguments that 32-bits isn't enough, and the next
> logical step up is 63/64-bits.
>

Yes.  What is "reasonable" is what I'm getting at.  Compression and
fragmentation seem reasonable... multiplexing seems like something that
should be handled by the subprotocol to me, as most of them won't need it
and how to multiplex seems more likely to depend on the subprotocol itself.

As for the arguments for 63/64 bits, I don't think they were that strong.  I
think it's more that fewer people felt like expending the energy to debate
them and keep the discussion on track in terms of what this protocol is for,
so the edge case people won.

If JavaScript-based browser clients are truly thought to be doing something
useful with large frames >4GB, then fine, though I doubt it.  Even an abuse
of WS like video streaming would use a series of shorter frames in practice.
 If that length requirement was envisioned for usage outside of JS and the
browser, then it's not appropriate.



>
> Personally, I would be perfectly happy with a 32-bit maximum frame length,
> and let senders fragment larger messages.  However, there were significant
> objections (see the discussions link from
> http://www.ietf.org/mail-archive/web/hybi/current/msg03399.html for
> details) about being required to fragment a message when its size was known,
> and the fact that it made "fire and forget" of sending the message contents
> with a single sendfile() call impossible (when larger than 4G).  Thus, it
> seemed likely the only way to gain consensus was to support a maximum frame
> length much larger than 32 bits.
>
>
Yes.  That whole sendfile() debate, from where I'm sitting, was completely
irrelevant to the discussion of a protocol meant to enable realtime
bi-directional communications with browser clients.

The purpose of this protocol is basically to enable the kinds of
communications that Comet attempts to solve by abusing the HTTP protocol,
and to open new frontiers to things we haven't considered doing in the
browser yet (binary frames etc).  Some things are useful and easy to throw
in.  Some things are just a distraction from the true purpose of the
protocol.  64-bit lengths is "easy to throw in" until a discussion of the
details consumes a full week+ of the working group's extremely valuable
time.  At this point, we need to pick something and put a bow on it so it
doesn't cost any more than it already has.


Brian