Re: [hybi] GET+Upgrade as emended by Greg (was Re: handshake status)

Zhong Yu <zhong.j.yu@gmail.com> Thu, 11 November 2010 20:00 UTC

Return-Path: <zhong.j.yu@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 44EC03A6AC5 for <hybi@core3.amsl.com>; Thu, 11 Nov 2010 12:00:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.142
X-Spam-Level:
X-Spam-Status: No, score=-2.142 tagged_above=-999 required=5 tests=[AWL=-0.143, BAYES_00=-2.599, J_CHICKENPOX_37=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 6z3TADY8RkNS for <hybi@core3.amsl.com>; Thu, 11 Nov 2010 12:00:16 -0800 (PST)
Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by core3.amsl.com (Postfix) with ESMTP id 6C6513A6AAD for <hybi@ietf.org>; Thu, 11 Nov 2010 12:00:13 -0800 (PST)
Received: by wyb35 with SMTP id 35so1283538wyb.31 for <hybi@ietf.org>; Thu, 11 Nov 2010 12:00:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=1dtWqRUVyKKjRPmurrlGPx4FE2rnlwwCHkRVbEkoKDs=; b=o5IUm0SE3N0ntXdu4rc7ODNAm6mneuIoyeEPHrhULY++beRR65qCA1pBxgC4NyB3Bk AKQSwWV/FHh7+H9++66PLVztIqUixjEUzsCUzpg5f8luOE71ckyVIZGBjCvc2K6XHGfS aaU3bWIp5QTX60Y6Y4+qSJRyKa/OOEE9QEoiM=
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=f9dodulQigLAmlDgAT80dThi1IXezn8VY0htI6qG1jb45gIm3zo6dLGMqjXCaX48Jx WzX1WEivkQaCCet0TNORnxa48b6m4LKZ7bj3SLwXzGAjR+MhG+XPVHq+FOfTpUfMoGyO DRfJ50Esza+WKYh5xjHEeHHicCqxv7ujSaxY0=
MIME-Version: 1.0
Received: by 10.216.159.195 with SMTP id s45mr1156561wek.43.1289505643328; Thu, 11 Nov 2010 12:00:43 -0800 (PST)
Received: by 10.216.51.132 with HTTP; Thu, 11 Nov 2010 12:00:43 -0800 (PST)
In-Reply-To: <AANLkTinMRs54tX94Uop68pTq2jqJAWnM9Qowh2QWfCNB@mail.gmail.com>
References: <AANLkTikJusOZVSgNtzRYsD=VFOVuS-mJ83V9QZzTNeGt@mail.gmail.com> <4CD09185.4070208@caucho.com> <AANLkTi=gvWo-Uz-5AX6tTpXryQbMHpmcESni8y+OB7Qh@mail.gmail.com> <AANLkTinQxUVnaX0G0JHvz=jtu=BMOdqG-D27yPhp2B+b@mail.gmail.com> <AANLkTikvfgEePwe5a=zqAbA-bw+qPCT1-wSk7jdbHsLo@mail.gmail.com> <4CD67E37.2060706@ericsson.com> <20101107103902.GU4627@1wt.eu> <4CD6D86F.2010504@ericsson.com> <AANLkTinMUdxpPG+iH3VXSFdAJGQK2K-fDsFAMHQeMNUL@mail.gmail.com> <AANLkTinMRs54tX94Uop68pTq2jqJAWnM9Qowh2QWfCNB@mail.gmail.com>
Date: Thu, 11 Nov 2010 14:00:43 -0600
Message-ID: <AANLkTimQD+TnzdMjOFFUDT5048R0unBHAOLoHu5q-wfz@mail.gmail.com>
From: Zhong Yu <zhong.j.yu@gmail.com>
To: Greg Wilkins <gregw@webtide.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] GET+Upgrade as emended by Greg (was Re: handshake status)
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, 11 Nov 2010 20:00:17 -0000

On Wed, Nov 10, 2010 at 10:01 PM, Greg Wilkins <gregw@webtide.com> wrote:
> Zhong,
>
> I think there are always going to be failure modes with any handshake
> were this is going to be a problem.  Even with perfectly good
> intermediaries, networks may still fail and clients can be left with
> the belief that they have a connection when they do not.    There is
> no solution that does not eventually need some form of keep alive to
> check the connection has not silently failed immediately after the
> handshake or at any time after it has been established.

Still, we can contemplate which is relatively better, Client-Server
hello, or Server-Client hello.

If exchange of hellos is not completed within a time window, say 5
second, connection is aborted in either case. However there are still
significant differences.

In the Client-Server case, the client spends 5 seconds waiting for
completion. UI can display a busy icon so the user knows it is trying
to establish a connection. After 5 seconds, the client closes the
connection (in the TCP sense)

The server simply waits for client Hello. It doesn't need to set a
timeout, the client will close the connection after 5 seconds
anyway(assuming TCP FINs are delivered at light speed). If the server
got the client Hello, it will assume that the connection is
established, which is false. The *server* got the wrong impression. It
may even immediately send some app data to client (none of which will
be delivered to client app), then the connection is closed in 5
seconds. Poor Server.

In the Server-Client case, If the client got the server Hello
immediately, it assumes that the connection is established, which is
false. The *user* got the wrong impression. The app seems working at
first, then stops working in 5 seconds. Poor User.

The server isn't deceived though. It never assumed that the connection
is established. It closes the connection after 5 seconds.

Compare the two cases, I think the first one is better from user's
point of view.

The second case is better for servers, but who cares about servers?
Servers have no feelings.

- Zhong