Re: [hybi] NAT reset recovery? Was: Extensibility mechanisms?

Vladimir Katardjiev <vladimir@d2dx.com> Mon, 19 April 2010 14:37 UTC

Return-Path: <vladimir@d2dx.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 6BAF128C272 for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 07:37:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.002
X-Spam-Level:
X-Spam-Status: No, score=0.002 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_50=0.001, HTML_MESSAGE=0.001]
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 P5Bi+xdNp43o for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 07:37:56 -0700 (PDT)
Received: from homiemail-a1.g.dreamhost.com (caiajhbdcbbj.dreamhost.com [208.97.132.119]) by core3.amsl.com (Postfix) with ESMTP id C6E8828C1DB for <hybi@ietf.org>; Mon, 19 Apr 2010 07:29:36 -0700 (PDT)
Received: from c-39e6e055.321-1-64736c12.cust.bredbandsbolaget.se (c-39e6e055.321-1-64736c12.cust.bredbandsbolaget.se [85.224.230.57]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by homiemail-a1.g.dreamhost.com (Postfix) with ESMTP id CBEEF119CDD for <hybi@ietf.org>; Mon, 19 Apr 2010 07:29:27 -0700 (PDT)
From: Vladimir Katardjiev <vladimir@d2dx.com>
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: multipart/alternative; boundary="Apple-Mail-7--825095808"
Date: Mon, 19 Apr 2010 16:29:23 +0200
In-Reply-To: <20100419140423.GC3631@shareable.org>
To: Hybi <hybi@ietf.org>
References: <Pine.LNX.4.64.1004181812370.751@ps20323.dreamhostps.com> <4BCB6641.70408@webtide.com> <Pine.LNX.4.64.1004182010070.751@ps20323.dreamhostps.com> <4BCB6FD0.7080003@webtide.com> <j2n5c4444771004181403o81184b00r294f3c3b878f24f6@mail.gmail.com> <20100419091736.GA28758@shareable.org> <p2w2a10ed241004190222ne3a61417i47b021dbe0422f71@mail.gmail.com> <B3F72E5548B10A4A8E6F4795430F841832040920C4@NOK-EUMSG-02.mgdnok.nokia.com> <20100419121000.GG28758@shareable.org> <87764B8E-5872-40EE-AA2F-D4E659B94F63@d2dx.com> <20100419140423.GC3631@shareable.org>
Message-Id: <6959E9B3-B1AC-4AFB-A53D-AB3BA340208C@d2dx.com>
X-Mailer: Apple Mail (2.1077)
Subject: Re: [hybi] NAT reset recovery? Was: 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: Mon, 19 Apr 2010 14:37:57 -0000

On 19 apr 2010, at 16.04, Jamie Lokier wrote:

> Vladimir Katardjiev wrote:
>> - Our hypothetical amateur programmer, testing his websocket
>> connection against localhost, won't see the need for keepalives, but
>> the protocol requiring them will stop his application from failing
>> on the Wild Web. All he needs to do is echo back the bytes the
>> browser sent, and the expert browser programmer handles the rest.
> 
> Keepalives are great, but this isn't a nice way to implement them.
> 
> If they are required by the protocol, then the protocol should
> implement them itself.  (Besides, echo-reply isn't always bandwidth
> efficient, depending on keepalive the needs of client and server).

Yeah, it's not the best but it fulfils the design pattern that has been pre-eminent throughout the WebSocket spec -- that everything should be verifiable by the client, because that is the only "trusted" side. While I don't agree with the assumption that only the client should ever be trusted, it is a sufficient base case and only incurs trivial complexity increase by the server. Better an agreement on _a_ keepalive than no keepalive agreement?
> 
>> So I'd rather say I am having trouble seeing what applications would _not_ want keepalive functionality as part of the base offering of WebSockets.
> 
> Well, there may be disagreement over what type of keepalive, because
> the optimal choice is both application dependent _and_ network link
> dependent.

I'd love to have that discussion. It means there'd be an acceptance of keepalives as part of the WebSocket spec.
> 
> At the moment, it can be implemented by the WebSocket application
> (albeit suboptimally, and any network link dependency has to be known
> to the application as well).

Yeah... question is if this functionality isn't better handled by WebSockets for a majority of the applications, and the rest can opt out of it.

Vladimir