Re: [hybi] hum #3: Message

John Tamplin <jat@google.com> Fri, 06 August 2010 14:17 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 C703D3A6A4F for <hybi@core3.amsl.com>; Fri, 6 Aug 2010 07:17:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.826
X-Spam-Level:
X-Spam-Status: No, score=-105.826 tagged_above=-999 required=5 tests=[AWL=0.150, 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 UevqDTUTNQFA for <hybi@core3.amsl.com>; Fri, 6 Aug 2010 07:17:11 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id AE8AF3A69F2 for <hybi@ietf.org>; Fri, 6 Aug 2010 07:17:11 -0700 (PDT)
Received: from wpaz29.hot.corp.google.com (wpaz29.hot.corp.google.com [172.24.198.93]) by smtp-out.google.com with ESMTP id o76EHgBP026852 for <hybi@ietf.org>; Fri, 6 Aug 2010 07:17:42 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1281104262; bh=aDwt03e8WVMW3rAXOwTldPer5tI=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Content-Type; b=CpS8FBFHNsVqYVMSpbFWv1xEmiBIcKvVcFLtFmx/TvxpxnZg6dvS/zNK7z5ooOVxR fhHCE2saSosWGk0AgFt7w==
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:content-type:x-system-of-record; b=V8zc0MGhoFFpvpcppNhpyMjzq0RNIryIvzFJNPNXqWPcdJkf8qgLiAAlvC8ycVBGG C9Xb9dlO6pmcM54MQa+Wg==
Received: from yxm34 (yxm34.prod.google.com [10.190.4.34]) by wpaz29.hot.corp.google.com with ESMTP id o76EHfL5021716 for <hybi@ietf.org>; Fri, 6 Aug 2010 07:17:41 -0700
Received: by yxm34 with SMTP id 34so3302822yxm.21 for <hybi@ietf.org>; Fri, 06 Aug 2010 07:17:41 -0700 (PDT)
Received: by 10.150.116.8 with SMTP id o8mr14371755ybc.266.1281104261481; Fri, 06 Aug 2010 07:17:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Fri, 6 Aug 2010 07:17:19 -0700 (PDT)
In-Reply-To: <4C5C07D6.1030208@noemax.com>
References: <4C5AE93D.4040803@ericsson.com> <Pine.LNX.4.64.1008051758290.5947@ps20323.dreamhostps.com> <AANLkTik0kbh14s2JZARY2MFh0iNGV7H+B4Px4yG+wX44@mail.gmail.com> <71BCE4BF-D3F6-4F94-BE76-306BDF6A2E67@apple.com> <Pine.LNX.4.64.1008051930160.5947@ps20323.dreamhostps.com> <4C5B1695.6070704@gmx.de> <F8E2F702-9F74-4316-B3B2-D5A731409ABF@apple.com> <AANLkTin=gO9D8K5NVhqCRKki-jrDmTYqF-gBjp9X41GN@mail.gmail.com> <4C5BF15E.1090608@noemax.com> <AANLkTinXLPmBACd3ji0V9wkAWmxOR7qBMED19KKMvJrd@mail.gmail.com> <AANLkTi=RWdqDDgy24C6qtUSr+5R5p=P15B=+aUZuE16Q@mail.gmail.com> <4C5C07D6.1030208@noemax.com>
From: John Tamplin <jat@google.com>
Date: Fri, 06 Aug 2010 10:17:19 -0400
Message-ID: <AANLkTimj9RvzL8E+FmH=vT_TeECVNmDPXY0ymPnvBHSZ@mail.gmail.com>
To: "hybi@ietf.org" <hybi@ietf.org>
Content-Type: multipart/alternative; boundary="000e0cd48e1c6d068b048d28549f"
X-System-Of-Record: true
Subject: Re: [hybi] hum #3: Message
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: Fri, 06 Aug 2010 14:17:12 -0000

Ok, does this summarize the various positions regarding chunking and
lengths?


   - We want to have a length of the complete message when it is available
   to make buffer management simpler for the receiver
   - We want to be able to fragment messages to avoid extra buffering when
   the length of the entire message is not known up front, such as when sending
   dynamic content, compressing frames, etc.
   - We want to keep small frames having small overhead (though there is a
   limit on how much this matters given TCP/IP overhead)
   - We want to be able to send very large files in a single fragment so we
   can just hand it off to sendfile or equivalent

What about the following:

   - 1 bit - Initial fragment
   - 1 bit - Final fragment
   - 1 bit - reserved
   - 5 bits - opcode
   - 8 bits - short length
   - [if length = 255: 8 bytes - length]
   - [if Initial = 1 and Final = 0: 8 bytes - overall message length, with 0
   meaning "unknown"]
   - length bytes of payload

This could be extended with any of the extension or padding proposals out
there, just trying to get the basic idea of having initial/fragment bits
with an optional overall message length up for discussion.  The length could
be a variable-length integer as in v76 if you prefer, likewise for the
message length.

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