Re: [hybi] Requirement: extensions and sub protocols

KOMATSU Kensaku <kensaku.komatsu@gmail.com> Sun, 07 March 2010 20:06 UTC

Return-Path: <kensaku.komatsu@gmail.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 695493A8D97 for <hybi@core3.amsl.com>; Sun, 7 Mar 2010 12:06:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[AWL=-0.600, BAYES_00=-2.599, J_CHICKENPOX_43=0.6, J_CHICKENPOX_45=0.6]
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 eL9IeDjhjCq4 for <hybi@core3.amsl.com>; Sun, 7 Mar 2010 12:06:23 -0800 (PST)
Received: from mail-pz0-f195.google.com (mail-pz0-f195.google.com [209.85.222.195]) by core3.amsl.com (Postfix) with ESMTP id 6DF9E3A8ABA for <hybi@ietf.org>; Sun, 7 Mar 2010 12:06:23 -0800 (PST)
Received: by pzk33 with SMTP id 33so402799pzk.5 for <hybi@ietf.org>; Sun, 07 Mar 2010 12:06:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=XZbCR3YZw6tKN2vfxGty8EKtIN1wY4gvF3HiqWZZwMQ=; b=Q/TeQDmZKIXGf3Y7sVWRFURRHAcRexPDbFXuk+u8Zxzyjx9nYG5+EscnyP8oucpp1K NE2m3iUootKg9BC/aBYEAelElMDGYSdhbCVEGJv/KwXn/TkaCQftmh1DYwhuFF973624 5QKj3h3ydkdVSjNQwV2mh60vo7SVN5URyJaso=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=fY//pWLeICDU0cNZRZCFkFGq5PsWcRqYe9bM9NsqACqMTxQLoYvnyI3V2XP5H4vPhJ O39ofBv5UuX424zaSkt745PYZX9LltiOChK/p64j+cHJhdsUOsuNM/Em/U/+Vo1lcLPI bHvgIFJ/d7HfXY0eQL1mqhIBNZuYDeuPq9dcQ=
MIME-Version: 1.0
Received: by 10.140.55.9 with SMTP id d9mr2530752rva.179.1267992384196; Sun, 07 Mar 2010 12:06:24 -0800 (PST)
In-Reply-To: <20100305190937.GC31182@shareable.org>
References: <4B8ECA2D.4050303@ericsson.com> <8e7c686d1003031732wa39f448k1d9286585517c0d8@mail.gmail.com> <20100305005716.GB9244@shareable.org> <8e7c686d1003042218q63b34131j946080d1dc53ce95@mail.gmail.com> <20100305190937.GC31182@shareable.org>
Date: Mon, 08 Mar 2010 05:06:24 +0900
Message-ID: <8e7c686d1003071206q3072047eyf5ee30f3cb20f71b@mail.gmail.com>
From: KOMATSU Kensaku <kensaku.komatsu@gmail.com>
To: Jamie Lokier <jamie@shareable.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Requirement: extensions and sub protocols
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: Sun, 07 Mar 2010 20:06:24 -0000

2010/3/6 Jamie Lokier <jamie@shareable.org>:
> KOMATSU Kensaku wrote:
> That was true a few years ago, but things have changed.
>
> I believe Windows later than XP, i.e. Vista and Windows 7, now
> automatically enlarge the receive window according to heuristic
> measurements.
>
> Current Linux also does the same thing.  It will set the receive
> window up to 3.4Mbyte on my laptop, for example, if it thinks the path
> needs that much for throughput.
>
> It is for exactly the reason you've described: the old 64k window
> limit was too small to get good throughput on 10Mbps links with 50ms
> latency, which are getting common.
>
> For that reason, there's no benefit to having several parallel TCPs
> any more on that sort of link, on current OSes.
>
> However your point still applies to WebSocket usage on older OSes, and
> it may be necessary to use multiple TCPs based on RTT and window size
> measurements to get the full throughput on them.
>
> It's a good reason for applications to be able to flag some WebSockets
> as "should not be combined with others".  Since there are proxies in
> development which automatically combine multiple WebSocket
> connections passing through them, it probably should have a way to be
> signalled in the handshake, too.
>
> Then again, wouldn't it be even better to multiplex everything
> together, and then have a multi-TCP protocol to carry the whole
> together when beneficial, so that even one application WebSocket could
> get the full link bandwidth?
>
>> I also agree with multiple connections are confortable for web
>> application developer,
>> because it offeres an appropriate speed in most cases without
>> bothersome control.
>> But this manner requires more connection resources than necessary.
>>
>> Number of TCP connection affects to connection-sensitive equipment,
>> global-NAT, proxy, firewall,load-balancer, servers, .... If we use
>> appropriate number of connection and multiplexing frames for web
>> applications, the system cost can be made low-priced. And I hope that
>> this senario will also pleased network providers.
>> To achieve this senario, preparing some libraries, defining
>> sub-protocol or extentions and making it easier to use will be
>> important. That's why I mentioned this-topic before.
>
> Exactly, I agree with all of that.
>
> But I think having the WebSocket implementations automatically choose
> a number of TCP connections based on dynamic RTT measurement (which
> will vary for different destinations, and vary over time) and the
> negotiated window size might be simply too difficult.
>
> I think it's better to use OSes which extend the window size
> dynamically - they are in a much better position to make the right
> measurements, and also to take into account memory used.  It's much
> simpler that way too.

Thanks a lot!!. I agree with your comment, so I'll choose multiple frames in one
TCP connection in current OSes. I'm sorry my lack of survey.

And, I'll keep challenge automatically choose # of TCP connections based on
RTT measurement for OLD OSes(those don't support above features). Yes, I
know this is hard challenge, but I can't disregard those share.

>> For other case, It'll be useful for video service. Because it'll be
>> useful for the decision of the bandwidth of contents automatically.
>
> I don't understand that.  To determine bandwidth, something has to
> measure the bandwidth.  Counting connections won't do that.  Can you
> explain a bit more how you think it will help video delivery?

Sorry for mis-wording... I meant content's bit rate.

It is based on my old experience... About 7 years before, I served
hi-vision video
services via http/rtsp-tcp streaming. 6Mbps contents worked well when
RTT was small,
but I found that video service(30fps) fall down to picture story(2 or
5 fps) when RTT got
larger. But in those situation, 3Mbps contents was fine(due to tcp
flow control). So,
automatically choose contents-bit rate based on RTT measurement was useful.

But, with your comment, I understand above story is old one.

Sincerly
---
Kensaku KOMATSU