Re: [hybi] Reliable message delivery (was Re: Technical feedback.)

"Thomson, Martin" <Martin.Thomson@andrew.com> Tue, 02 February 2010 02:40 UTC

Return-Path: <Martin.Thomson@andrew.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 2C3AB3A687A for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 18:40:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 8sPG2oVnmTiF for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 18:40:51 -0800 (PST)
Received: from csmailgw2.commscope.com (csmailgw2.commscope.com [198.135.207.242]) by core3.amsl.com (Postfix) with ESMTP id 368633A6877 for <hybi@ietf.org>; Mon, 1 Feb 2010 18:40:51 -0800 (PST)
Received: from [10.86.20.103] ([10.86.20.103]:60259 "EHLO ACDCE7HC2.commscope.com") by csmailgw2.commscope.com with ESMTP id S81836Ab0BBCl1 (ORCPT <rfc822; hybi@ietf.org>); Mon, 1 Feb 2010 20:41:27 -0600
Received: from SISPE7HC1.commscope.com (10.97.4.12) by ACDCE7HC2.commscope.com (10.86.20.103) with Microsoft SMTP Server (TLS) id 8.1.393.1; Mon, 1 Feb 2010 20:41:26 -0600
Received: from SISPE7MB1.commscope.com ([fe80::9d82:a492:85e3:a293]) by SISPE7HC1.commscope.com ([fe80::8a9:4724:f6bb:3cdf%10]) with mapi; Tue, 2 Feb 2010 10:41:21 +0800
From: "Thomson, Martin" <Martin.Thomson@andrew.com>
To: Jamie Lokier <jamie@shareable.org>
Date: Tue, 02 Feb 2010 10:42:28 +0800
Thread-Topic: [hybi] Reliable message delivery (was Re: Technical feedback.)
Thread-Index: AcqjpqTjHGOoNCuvQWSEiW2Q/hOfywACQBpA
Message-ID: <8B0A9FCBB9832F43971E38010638454F032E50667D@SISPE7MB1.commscope.com>
References: <5c902b9e1001292310l5442d476n8375139f3480671b@mail.gmail.com> <26D406E7-2319-476E-9ADF-80D84200C270@apple.com> <5c902b9e1001292333k79569316lf371938c9aa766@mail.gmail.com> <128BFD31-9835-47B1-B7A9-F20F5CDA8D8C@apple.com> <20100130144936.GD19124@shareable.org> <5c902b9e1001301552n6efb7969o34110373e3ab4945@mail.gmail.com> <4B672C9D.9010205@ericsson.com> <op.u7gy9bag64w2qv@annevk-t60> <96935605-E8B8-4718-B60F-570FD2C199E4@apple.com> <8B0A9FCBB9832F43971E38010638454F032E5065ED@SISPE7MB1.commscope.com> <20100202012534.GB32743@shareable.org>
In-Reply-To: <20100202012534.GB32743@shareable.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-BCN: Meridius 1000 Version 3.4 on csmailgw2.commscope.com
X-BCN-Sender: Martin.Thomson@andrew.com
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Reliable message delivery (was Re: Technical feedback.)
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, 02 Feb 2010 02:40:52 -0000

> That is fine for TCP; the 0xff 0x00 is redundant.

What I get from this is that TCP connections haemorrhaging data can be solved without support in the higher layer - all that it requires is that the implementation of the next layer be aware of the limitations of TCP and that it uses shutdown(...) or whatever is necessary.

That's a pretty strong argument against putting specific close semantics in WS.  I don't buy the "let's make our protocol transport-layer-agnostic argument"; that only leads to the protocol picking up unnecessary baggage. 

If an explicit close notification is required for an alternative transport, then let those who are porting the protocol to that environment add a shim for that purpose.

Having text that explains the assumptions of the current solution and maybe even suggests an implementation option (preferably by reference) seems most appropriate to me.

--Martin

 
> Please note: The close-frame is *not* for acknowledgement of prior
> messages.  It is a mechanism to prevent closes from turning into
> "connection reset" TCP errors and the data-discarding behaviour.  It
> would be *most unwise* of an endpoint to refuse to send the
> close-frame (or shutdown) because it was keeping it to acknowledge an
> expected message - because that would force the other end to keep a
> connection open for a long timeout, when receiving close and lack of
> an expected message is precisely a situation when connections should
> be closed quickly because an unrecoverable error has occured.

This too is useful information - but this could be applied to the FIN, rather than the close frame.  That is, if you receive a FIN, that doesn't mean that the other peer received everything that you've already sent.  When you put it like that, it doesn't seem like much of a stretch ;)