Re: [hybi] An _idea_ on framing

John Tamplin <jat@google.com> Mon, 16 August 2010 13:34 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 3082B3A67FE for <hybi@core3.amsl.com>; Mon, 16 Aug 2010 06:34:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.788
X-Spam-Level:
X-Spam-Status: No, score=-105.788 tagged_above=-999 required=5 tests=[AWL=0.188, 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 vnztXTH8b2XW for <hybi@core3.amsl.com>; Mon, 16 Aug 2010 06:34:48 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id F31113A659B for <hybi@ietf.org>; Mon, 16 Aug 2010 06:34:46 -0700 (PDT)
Received: from hpaq5.eem.corp.google.com (hpaq5.eem.corp.google.com [172.25.149.5]) by smtp-out.google.com with ESMTP id o7GDZMuE017752 for <hybi@ietf.org>; Mon, 16 Aug 2010 06:35:22 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1281965722; bh=7eOExGm31lh2GpwFYpcXDG59i+g=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=USmM25o3TlAKXOvBRsecCIBGWT97H2PEKJP9v1YPDAOWUDMmlNVGhYDYd/TfMGsD1 9pq1pXAAKOX8ho/K/hr1w==
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=Dk5zGXI9nPxjuGA6hIpeB27oN175bVFk/H803LFpPiMYbKy62WvOB5DvBqYfPaTnR 7ZImn4mEw643hZDrv5Kmw==
Received: from gya1 (gya1.prod.google.com [10.243.49.1]) by hpaq5.eem.corp.google.com with ESMTP id o7GDYk27018946 for <hybi@ietf.org>; Mon, 16 Aug 2010 06:35:21 -0700
Received: by gya1 with SMTP id 1so2846665gya.10 for <hybi@ietf.org>; Mon, 16 Aug 2010 06:35:20 -0700 (PDT)
Received: by 10.151.44.10 with SMTP id w10mr5361520ybj.70.1281965712549; Mon, 16 Aug 2010 06:35:12 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Mon, 16 Aug 2010 06:34:52 -0700 (PDT)
In-Reply-To: <AANLkTimX99Um+Hh+q2m8ozqSFN1-PUDYP=U++qEOYXk1@mail.gmail.com>
References: <4BBE31D0-4B7B-4B68-8299-B306F15845DE@brandedcode.com> <AANLkTimX99Um+Hh+q2m8ozqSFN1-PUDYP=U++qEOYXk1@mail.gmail.com>
From: John Tamplin <jat@google.com>
Date: Mon, 16 Aug 2010 09:34:52 -0400
Message-ID: <AANLkTikGeXxPAnp-ZbqiWUFzcGs_+hO9k_aCa9NaRcFi@mail.gmail.com>
To: Greg Wilkins <gregw@webtide.com>
Content-Type: multipart/alternative; boundary="00151750d974eaf083048df0e62e"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] An _idea_ on framing
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: Mon, 16 Aug 2010 13:34:51 -0000

On Mon, Aug 16, 2010 at 8:22 AM, Greg Wilkins <gregw@webtide.com> wrote:

> your idea is the basis of the recent proposal from Ian Fette (as well
> as some others).
> If we wish to have meta data per frame, then I think having a
> meta-data length within a total frame length is a good way of
> achieving that.   However, I think we need to first agree that we need
> meta data per frame.
>

My feeling is that if we are going to try and get a base protocol out and
implemented quickly, which means leaving out use cases we know we want to
eventually support because we don't want to try and get consensus on them
now, then we need to make sure we have sufficient extensibility in the base
protocol so that we can add to it later without having to change existing
implementations.  The most recent proposal from Ian Fette has the following
extensibility provisions:

   - if no extensions are negotiated in the handshake, they will not be
   present in the framing
   - extensions may exchange arbitrary information in the handshake
   - two bits in the frame header are available for later definition for
   things that need to be very low overhead
      - if we decide the best way to support compression is on a per-frame
      basis, it seems very likely we would want to use one of these bits to
      indicate the frame has been compressed
   - 9 opcodes are available for definition in a future version of the
   standard
   - 4 opcodes are available for private use, either for experiments for
   future standardization or for permanent use if the same entity controls the
   complete path and both endpoints
   - an arbitrary amount of data may be included in each frame, in a format
   to be determined when the first extension is defined
   - additional control frame types may be defined by an extension

Regarding per-frame extension data, the case seemed to have been made
earlier that if extension data was required to exist outside of the frame,
that would require additional state to be kept for each connection.  For
example, imagine the base frame was not extended for multiplexing, then you
would have to have a concept of the current channel on a muxed connection.
 Alternating frames between two channels would require sending a "change
channel" message between each payload frame.  If instead we have per-frame
extension data, then the channel number of a message can be included in that
frame itself.

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