Re: [hybi] sample implementation of my most recent proposal posted

Greg Wilkins <gregw@webtide.com> Tue, 31 August 2010 22:24 UTC

Return-Path: <gregw@webtide.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 824013A684D for <hybi@core3.amsl.com>; Tue, 31 Aug 2010 15:24:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.756
X-Spam-Level:
X-Spam-Status: No, score=-1.756 tagged_above=-999 required=5 tests=[AWL=0.221, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
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 lOJo0wa2I56X for <hybi@core3.amsl.com>; Tue, 31 Aug 2010 15:24:10 -0700 (PDT)
Received: from mail-fx0-f44.google.com (mail-fx0-f44.google.com [209.85.161.44]) by core3.amsl.com (Postfix) with ESMTP id 657783A6839 for <hybi@ietf.org>; Tue, 31 Aug 2010 15:24:10 -0700 (PDT)
Received: by fxm18 with SMTP id 18so4959496fxm.31 for <hybi@ietf.org>; Tue, 31 Aug 2010 15:24:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.239.172.67 with SMTP id z3mr461021hbe.92.1283293480223; Tue, 31 Aug 2010 15:24:40 -0700 (PDT)
Received: by 10.239.186.139 with HTTP; Tue, 31 Aug 2010 15:24:39 -0700 (PDT)
In-Reply-To: <20100831181536.GB3272@1wt.eu>
References: <AANLkTin2xesaAgrj1zPUJVspiurhg6w3oNA6ZwWNvEHv@mail.gmail.com> <AANLkTikbj9SzZZTWpDj77-jfoT3MJ9eTKYXDwHR2ykGZ@mail.gmail.com> <AANLkTi=BB=638Sw8ZmVFdDrmALHCMncyCgLcRcuDVWcL@mail.gmail.com> <20100831181536.GB3272@1wt.eu>
Date: Wed, 01 Sep 2010 08:24:39 +1000
Message-ID: <AANLkTimYHTe+T5GQXt4ZgMiw=d5YAW1SaXAeUY4SSVak@mail.gmail.com>
From: Greg Wilkins <gregw@webtide.com>
To: Willy Tarreau <w@1wt.eu>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] sample implementation of my most recent proposal posted
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: Tue, 31 Aug 2010 22:24:11 -0000

On 1 September 2010 04:15, Willy Tarreau <w@1wt.eu> wrote:
> On Tue, Aug 31, 2010 at 01:45:35PM -0400, John Tamplin wrote:
>> On Tue, Aug 31, 2010 at 1:19 PM, Pieter Hintjens <ph@imatix.com> wrote:
>> > If the use case for fragmentation is streaming of arbitrarily long
>> > messages whose size is unknown upfront (which is the only real use
>> > case that's been cited afair, with reference to HTTP chunking)
>>
>> The other main use case is for multiplexing, where you don't want
>> other logical channels blocked behind one sending a very large frame,
>> so you need to be able to fragment that frame.  Certainly, you could
>> define fragmentation within the mux payload, but it seems cleaner if
>> it can just reuse the fragmentation support defined in the base
>> protocol.
>
> That's one point where I agree with what was said by Shelby, we should
> not confuse fragmentation of the connection stream caused by multiplexed
> data streams and fragmentation of messages caused by unknown (or too
> long) message lengths.


The extension mechanism we need in the framing layer should be for
extensions that cannot be done in the data layer, such as:
  + tagging frames with channel ID's for multiplexing
  + telling the framing layer hints like total message size for more
efficient buffering.

If there is a use-case for arbitrary long meta-data associated with a
message, then I think that should be sent as part of the message body
(eg as a mime message), so that can be fragmented the normal way.

So perhaps we should define another op-code for a mime message that
has headers (hopefully length rather than CRLF encoded) and data, and
can be fragmented normally.   Having this defined will help stop
misuse of the frame extension mechanism.


cheers