Re: [hybi] Framing Take VI (a compromise proposal)

John Tamplin <jat@google.com> Wed, 18 August 2010 15:27 UTC

Return-Path: <jat@google.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 74FD63A6947 for <hybi@core3.amsl.com>; Wed, 18 Aug 2010 08:27:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.816
X-Spam-Level:
X-Spam-Status: No, score=-105.816 tagged_above=-999 required=5 tests=[AWL=0.160, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 XXxufTAD3fsd for <hybi@core3.amsl.com>; Wed, 18 Aug 2010 08:27:13 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id D7EA73A6915 for <hybi@ietf.org>; Wed, 18 Aug 2010 08:27:12 -0700 (PDT)
Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id o7IFRjBH015593 for <hybi@ietf.org>; Wed, 18 Aug 2010 08:27:45 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1282145265; bh=bnhrKwJr7HXSSbgAWFd2V7Q/Vc8=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=jgF6eqZP+qfs2yMgF9AXh9s8GxAqwEefE5o5ENgUCm7THXArg9Mv00sryuq8cqFev s6BBfJcfM/tsDhOAXoX2w==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:from:date:message-id: subject:to:cc:content-type:x-system-of-record; b=jLq0U4UeUBDiblXSSh6i/UaraxAFSGxhqjMsMOz9eq67iEZwJE8mzK4bJBPGN8ht3 mOo5TS292BLHXfrw0ds7A==
Received: from gyd5 (gyd5.prod.google.com [10.243.49.197]) by wpaz13.hot.corp.google.com with ESMTP id o7IFQMGM023463 for <hybi@ietf.org>; Wed, 18 Aug 2010 08:27:44 -0700
Received: by gyd5 with SMTP id 5so337361gyd.10 for <hybi@ietf.org>; Wed, 18 Aug 2010 08:27:44 -0700 (PDT)
Received: by 10.151.40.2 with SMTP id s2mr572997ybj.138.1282145262414; Wed, 18 Aug 2010 08:27:42 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Wed, 18 Aug 2010 08:27:21 -0700 (PDT)
In-Reply-To: <AANLkTimNOyc-XO5SrYKgt4mpHdFc2pzsr2X1VS8ScwTO@mail.gmail.com>
References: <AANLkTi=TBXO_Cbb+P+e2BVfx69shkf8E1-9ywDh_Y+Kz@mail.gmail.com> <AANLkTimJOGWgV6rx5JJYSJMC26OzQzskzVtkYz0L_EAg@mail.gmail.com> <op.vhe7qtmu64w2qv@anne-van-kesterens-macbook-pro.local> <AANLkTimqvQGJab-XdMuRFE8M2eB_xn_ipJZoNDuc28R2@mail.gmail.com> <4C66F67C.2080406@caucho.com> <AANLkTikY_ujn4rxuEPTidktL4Rwc1RizGBaa0-dpAhJP@mail.gmail.com> <4C6B3F76.2090207@caucho.com> <AANLkTimNOyc-XO5SrYKgt4mpHdFc2pzsr2X1VS8ScwTO@mail.gmail.com>
From: John Tamplin <jat@google.com>
Date: Wed, 18 Aug 2010 11:27:21 -0400
Message-ID: <AANLkTik+vC7w9MtB55xd0HRU9-h5YM62WxNg4aOjs28H@mail.gmail.com>
To: Scott Ferguson <ferg@caucho.com>
Content-Type: multipart/alternative; boundary="0015174ff1aaeb6522048e1ab44d"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] Framing Take VI (a compromise proposal)
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: Wed, 18 Aug 2010 15:27:15 -0000

On Tue, Aug 17, 2010 at 11:15 PM, John Tamplin <jat@google.com> wrote:

> ... I would also be willing to say that the TML be included in a
> multiplexing extension, as that will be the primary use-case (as I see it,
> anyway).
>

I remembered now why I thought it should go in the base protocol.  Imagine
we have endpoints that only speak v1.0 of the protocol, which does not
include multiplexing.  They write their messages in single frames, so don't
have to deal with fragmentation while sending (but do on the receiving end
of course).

Later, we define a multiplexing extension.  Some intermediate network
decides to use the multiplexing extension to coalesce all these small
WebSocket messages going through their network.  To do that without
impacting latency, they need to fragment large messages so you don't wind up
starving the small messages.  At the exit point of their network, they demux
the packets back into separate streams.  However, unless they want a serious
buffering problem at the exit node, they don't want to defragment the
messages there, so they send it to the ultimate receiver still fragmented.
 If the TML is not included in the first fragment of the base protocol, then
the receiver has to reallocate/copy the buffer because it doesn't know how
big it is going to be.  Even if the MUX extension defined some way to pass
the TML to the end node, it would have to be modified to support this
extension even though it doesn't actually care about multiplexing.  Instead,
having the TML included in the first fragment in the base protocol means
these receivers can avoid buffer management problems even without knowing
anything about the MUX extension.

-- 
John A. Tamplin
Software Engineer (GWT), Google