Re: [hybi] hum #3: Message

Maciej Stachowiak <mjs@apple.com> Thu, 05 August 2010 21:17 UTC

Return-Path: <mjs@apple.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 C8D123A6959 for <hybi@core3.amsl.com>; Thu, 5 Aug 2010 14:17:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.533
X-Spam-Level:
X-Spam-Status: No, score=-106.533 tagged_above=-999 required=5 tests=[AWL=0.066, BAYES_00=-2.599, 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 jweKfQRrWCHO for <hybi@core3.amsl.com>; Thu, 5 Aug 2010 14:17:31 -0700 (PDT)
Received: from mail-out3.apple.com (mail-out.apple.com [17.254.13.22]) by core3.amsl.com (Postfix) with ESMTP id D8CE03A67D3 for <hybi@ietf.org>; Thu, 5 Aug 2010 14:17:31 -0700 (PDT)
Received: from relay16.apple.com (relay16.apple.com [17.128.113.55]) by mail-out3.apple.com (Postfix) with ESMTP id CBAA4A1B4D37 for <hybi@ietf.org>; Thu, 5 Aug 2010 14:18:02 -0700 (PDT)
X-AuditID: 11807137-b7c08ae00000377a-5c-4c5b2a8aa160
Received: from gertie.apple.com (gertie.apple.com [17.151.62.15]) by relay16.apple.com (Apple SCV relay) with SMTP id A8.FB.14202.A8A2B5C4; Thu, 5 Aug 2010 14:18:02 -0700 (PDT)
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-type: text/plain; charset="us-ascii"
Received: from [17.151.94.191] by gertie.apple.com (Sun Java(tm) System Messaging Server 6.3-7.04 (built Sep 26 2008; 32bit)) with ESMTPSA id <0L6P00HZ57623130@gertie.apple.com> for hybi@ietf.org; Thu, 05 Aug 2010 14:18:02 -0700 (PDT)
From: Maciej Stachowiak <mjs@apple.com>
In-reply-to: <01098AD0-FBF4-4A61-B565-947C95722BAA@apple.com>
Date: Thu, 05 Aug 2010 14:18:01 -0700
Message-id: <C1A941B9-058C-4E1D-811A-92C94E18CBDE@apple.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> <4C5B2029.90403@gmx.de> <AANLkTim1WeCRfcPxXUNQcVhb4+t_TtDQDv2bXaxOQ=bk@mail.gmail.com> <01098AD0-FBF4-4A61-B565-947C95722BAA@apple.com>
To: Maciej Stachowiak <mjs@apple.com>
X-Mailer: Apple Mail (2.1081)
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: "hybi@ietf.org" <hybi@ietf.org>
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: Thu, 05 Aug 2010 21:17:32 -0000

On Aug 5, 2010, at 2:09 PM, Maciej Stachowiak wrote:

> 
> On Aug 5, 2010, at 1:43 PM, Jack Moffitt wrote:
> 
>>>> Sending a file from disk to the network without processing it in any way
>>>> is more efficient than cutting it into slices and interleaving with headers.
>>>> The IP layer is already going to cut it into slices, in a way that almost
>>>> certainly won't line up with WebSocket-level fragment boundaries.
>>> 
>>> There's no way to "send a file over the network without processing". You
>>> need to read it into memory, and then write it to the network. Of course
>>> adding frame headers *is* overhead, but it's really identical or close to
>>> the overhead on the wire, nothing more.
>> 
>> The kernel's sendfile() is responsible for a lot of the HTTP server
>> optimization for static resources, and for this case, I think it is
>> true that doing any framing that shows up in the middle of the file
>> would lead to a big inefficiency.
>> 
>> I'm not sure how useful this pattern is with dynamic data though. I
>> think people will continue to send most static resources via regular
>> HTTP because it is very, very good at it.
> 
> I think there's definitely use cases for transferring large static resources over WebSocket. Consider syncing a media library where items may have been added on either end.  Sync seems like a pretty likely target for WebSocket. You will want to do large static transfers in both directions, and it seems better to use the existing warmed-up WebSocket TCP connection than to make fresh HTTP connections.

If it's an optional extension that intermediaries could ignore, that makes it unlikely that there will be a default expectation that it should be sent and have a correct value.

Regards,
Maciej