Re: [hybi] Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard

Willy Tarreau <w@1wt.eu> Mon, 25 July 2011 04:58 UTC

Return-Path: <w@1wt.eu>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8D67821F87C5 for <ietf@ietfa.amsl.com>; Sun, 24 Jul 2011 21:58:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.491
X-Spam-Level:
X-Spam-Status: No, score=-4.491 tagged_above=-999 required=5 tests=[AWL=-2.448, BAYES_00=-2.599, HELO_IS_SMALL6=0.556]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y0tYasWpZxYS for <ietf@ietfa.amsl.com>; Sun, 24 Jul 2011 21:58:29 -0700 (PDT)
Received: from 1wt.eu (1wt.eu [62.212.114.60]) by ietfa.amsl.com (Postfix) with ESMTP id 8192221F86FF for <ietf@ietf.org>; Sun, 24 Jul 2011 21:58:28 -0700 (PDT)
Received: (from willy@localhost) by mail.home.local (8.14.4/8.14.4/Submit) id p6P4wLWT028438; Mon, 25 Jul 2011 06:58:21 +0200
Date: Mon, 25 Jul 2011 06:58:21 +0200
From: Willy Tarreau <w@1wt.eu>
To: David Conrad <drc@virtualized.org>
Subject: Re: [hybi] Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard
Message-ID: <20110725045821.GN22405@1wt.eu>
References: <20110721163910.GA16854@1wt.eu> <CAP992=FrX5VxP2o0JLNoJs8nXXba7wbZ6RN9wBUYC0ZSN_wbAg@mail.gmail.com> <9031.1311270000.588511@puncture> <CALiegf=pYzybvc7WB2QfPg6FKrhLxgzHuP-DpuuMfZYJV6Z7FQ@mail.gmail.com> <B2C17B21-EA8A-4698-8C41-F55A9AA140D4@gbiv.com> <CALiegfkshhJVUHzTD1Kka5+RjGwZ5CS2J=Qk92jfSBg6Z0VfOQ@mail.gmail.com> <C9CD680E-8D68-4380-A76F-70F41F30F877@gbiv.com> <CALiegfkFnKjP09Vijo3c_DFYn4=UZm9M-4mVuZUyBk8rzwmDCw@mail.gmail.com> <20110724191641.GC22405@1wt.eu> <644A437E-BB0D-45E9-B6C3-5EF66A811986@virtualized.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <644A437E-BB0D-45E9-B6C3-5EF66A811986@virtualized.org>
User-Agent: Mutt/1.4.2.3i
X-Mailman-Approved-At: Mon, 25 Jul 2011 08:06:07 -0700
Cc: IETF-Discussion <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jul 2011 04:58:29 -0000

On Sun, Jul 24, 2011 at 03:49:33PM -1000, David Conrad wrote:
> [I haven't been following hybi and haven't read the draft, but as this is posted to the ietf list and there are a bunch of assertions here about the DNS I consider ... odd, I thought I'd chime in]
> 
> On Jul 24, 2011, at 8:59 AM, Willy Tarreau wrote:
> > A lost UDP packet is not retransmitted nor signaled as lost, so the browser has to retry.
> 
> This sounds like a seriously broken resolver.  All resolvers I'm aware of have timeouts and retry if no response is received within the timeout. A resolver that gives up after a first time out is equivalent to a TCP stack that doesn't retransmit a SYN.  A bug should be filed with the vendor.

What are you saying ? Your browser embeds the resolved as a library, so when
I'm saying that "the browser has to retry", I mean the resolver part of the
browser has to retry.

> On Jul 24, 2011, at 9:16 AM, Willy Tarreau wrote:
> > CNAME is the exact equivalent of SRV.
> 
> No. According to the RFCs and most implementations, you can't have CNAME with other data (A, MX, SOA, NS, etc).  With SRV, you can have anything at the same label.

This does not change anything, because the CNAME is on the hostname while
the SRV is on the service name, so there is nothing wrong with having both.

> On Jul 24, 2011, at 9:29 AM, Willy Tarreau wrote:
> > DNS provides geolocation and proposes you the closest working datacenter.
> 
> >> Anyhow, don't forget that SRV is not just for failover, but also for load-balancing
> 
> > This is already addressed by DNS round robin and used by a lot of sites.
> 
> Only at the grossest level. What a client get back from a query depends on who has queried the same cache and authoritative server and what policy the authoritative server has for returning answers.  In reality, 'round robin' is 'random'.

Yes but in practice, this randomness offers very smooth distribution.

>  This is qualitatively different than the prioritization offered by SRV.

Indeed this is different, but this does not mean there is a huge need for
the minor improvements provided by SRV in this context.

I'm not saying that SRV is useless but that it adds little value to HTTP
and even smaller to WS without HTTP, and comes at a non-zero cost, whatever
people are saying. I'm also certain that if a new record were to be invented
(eg: report the server's load in real time), there would be major proponents
to make it mandatory for everything because it would be what would save the
world from an upcoming disaster.

I'm convinced we can find good use cases for SRV combined with either HTTP
or WS once we admit it is optional and the user controls this option. Try
to imagine what you could do if you knew that 50% of your visitors would
consider your SRV records. Maybe you could use them to progressively test
service updates. You could possibly get a better distribution, or serve
a maintenance page to some of them during maintenance operations instead
of leaving them in the dark. You have to think what the benefit can be
for the user to enable the option, not how to push it down his throat.

Regards,
Willy