Re: [hybi] Extensibility mechanisms?

Roberto Peon <fenix@google.com> Tue, 20 July 2010 22:33 UTC

Return-Path: <fenix@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 3B7613A6892 for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 15:33:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.976
X-Spam-Level:
X-Spam-Status: No, score=-105.976 tagged_above=-999 required=5 tests=[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 BfYbuYY7x3TM for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 15:33:42 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id C6F813A6809 for <hybi@ietf.org>; Tue, 20 Jul 2010 15:33:41 -0700 (PDT)
Received: from kpbe16.cbf.corp.google.com (kpbe16.cbf.corp.google.com [172.25.105.80]) by smtp-out.google.com with ESMTP id o6KMXv8b003211 for <hybi@ietf.org>; Tue, 20 Jul 2010 15:33:57 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1279665237; bh=6bMQp1tNjSx0zGbunOIwPckVbug=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=bmN4UJh3s9Z555oEZ5FmxzGXatj4jnlIONL+nkdS5vP5XqtKdP59Pl7VLebegEF+M qDXoANK+CRE8puYi+g0Wg==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=Z8GfQQAITzopW643bS74mmcQ7W/xJXiONrS9cIlr1UrT5r2Nd3AK6RBjYbRR9z2uI glvPKcWsfkNF64Mod9Gvg==
Received: from gwb10 (gwb10.prod.google.com [10.200.2.10]) by kpbe16.cbf.corp.google.com with ESMTP id o6KMXehl017716 for <hybi@ietf.org>; Tue, 20 Jul 2010 15:33:56 -0700
Received: by gwb10 with SMTP id 10so3805535gwb.12 for <hybi@ietf.org>; Tue, 20 Jul 2010 15:33:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.116.1 with SMTP id t1mr1083016ybm.329.1279665235754; Tue, 20 Jul 2010 15:33:55 -0700 (PDT)
Received: by 10.150.59.4 with HTTP; Tue, 20 Jul 2010 15:33:55 -0700 (PDT)
In-Reply-To: <Pine.LNX.4.64.1007202204270.7242@ps20323.dreamhostps.com>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <4BCB7829.9010204@caucho.com> <Pine.LNX.4.64.1004182349240.751@ps20323.dreamhostps.com> <4BCC0A07.9030003@gmx.de> <Pine.LNX.4.64.1004190753510.23507@ps20323.dreamhostps.com> <4BCC111C.90707@gmx.de> <Pine.LNX.4.64.1004190837570.23507@ps20323.dreamhostps.com> <4BCC204D.30004@gmx.de> <z2gad99d8ce1004190822ne4dd36b6v54d63efcc448e840@mail.gmail.com> <Pine.LNX.4.64.1007202204270.7242@ps20323.dreamhostps.com>
Date: Tue, 20 Jul 2010 15:33:55 -0700
Message-ID: <AANLkTikm2xEgttTJFtnhCQcs7zNeDoyl8e0daKiAYaCa@mail.gmail.com>
From: Roberto Peon <fenix@google.com>
To: Ian Hickson <ian@hixie.ch>
Content-Type: multipart/alternative; boundary="001e680f13b8cf03f2048bd947e9"
X-System-Of-Record: true
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Extensibility mechanisms?
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, 20 Jul 2010 22:33:45 -0000

On Tue, Jul 20, 2010 at 3:14 PM, Ian Hickson <ian@hixie.ch> wrote:

>
> (By the way, I spoke to Joe and he suggested that I post an e-mail to each
> thread to which I was replying, rather than replying to all threads in one
> bulk e-mail or replying to all the e-mails I'm replying to individually. I
> hope this compromise works for everyone; I know there was some controversy
> when I replied in bulk a few months ago. I apologise in advance if this
> causes a spike in traffic to the list.)
>
> On Mon, 19 Apr 2010, Roberto Peon wrote:
> > On Mon, Apr 19, 2010 at 2:20 AM, Julian Reschke wrote:
> > > > On 19.04.2010 10:48, Ian Hickson wrote:
> > > > >
> > > > > There are many many implementations of HTTP. Some fast, some not
> > > > > so.  Some complete, some not so.
> > > >
> > > > I think we can get orders of magnitude more complete implementations
> > > > of Web Sockets than of HTTP if we keep the protocol trivial.
> > >
> > > Yes. That's a given. Make it less complex, and it will be easier to
> > > completely implement.
> >
> > This isn't true! Make it (the protocol) less complex and it will be easy
> > to implement something which *conforms to the spec*, but not necessarily
> > something which scales and is robust, reliable, and scalable in the face
> > of all the stuff that happens out there.
>
> Not all implementations have to scale to a million QPS or withstand DDOS
> attacks for weeks at a time. Most implementations of Web Sockets will
> likely be for small amateur projects that are lucky if they average 1 QPH,
> let alone 1 QPS.
>
>
> > The latter part is what really worries me. We really need to be sure
> > that the protocol that we create allows for an implementation of a
> > server to do these things.
>
> I agree that we shouldn't make the protocol impossible to scale. If there
> are specific features in the protocol that make it impossible to scale,
> please do raise these as issues. However, one doesn't have to make a
> protocol complex to make it scale.
>

We need browser-owned connections with a security model that allows multiple
tabs to share the connection safely.
This is probably the most important requirement for scalability as far as
I'm concerned. This requires fewer keep-alives (both because of fewer TCP
connections and because the TCP connection is more likely to have real
content sent on it instead of near-zero value'd keep-alives), it requires
fewer file descriptors, it requires fewer handshakes.

-=R


>
>
> > If the (hopefully small) added complexity is too much for the amateur
> > programmer, then they should use the API level.
>
> What I'm interested in personally is writing a protocol that amateur
> programmers can implement easily. If we say they have to use someone
> else's code to do this, then that's a failure, IMHO. (Though as I've
> mentioned before, if people have different goals or priorities, I have no
> problem with separate protocols also being designed to address those --
> Web Sockets doesn't have to be everything for everybody.)
>
> --
> Ian Hickson               U+1047E                )\._.,--....,'``.    fL
> http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
> Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
>