[EME] Re: TCP close semantics

Joe Touch <touch@ISI.EDU> Sat, 18 November 2006 18:25 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1GlUsd-0002y0-Nw; Sat, 18 Nov 2006 13:25:31 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1GlUsb-0002xp-Vq for eme@irtf.org; Sat, 18 Nov 2006 13:25:29 -0500
Received: from vapor.isi.edu ([128.9.64.64]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1GlUsZ-0001bY-PV for eme@irtf.org; Sat, 18 Nov 2006 13:25:29 -0500
Received: from [127.0.0.1] (pool-71-106-94-15.lsanca.dsl-w.verizon.net [71.106.94.15]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id kAIIPI0O010469; Sat, 18 Nov 2006 10:25:19 -0800 (PST)
Message-ID: <455F500E.9050503@isi.edu>
Date: Sat, 18 Nov 2006 10:25:18 -0800
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 1.5.0.8 (Windows/20061025)
MIME-Version: 1.0
To: Rémi Després <remi.despres@rd-iptech.com>
References: <E6F7A586E0A3F94D921755964F6BE00662575C@EXCHANGE2.cs.cornell.edu> <455B48BD.5050201@isi.edu> <455B56C9.7080307@rd-iptech.com> <455B6358.4000703@isi.edu> <455C38AC.1090306@rd-iptech.com> <455CDFFF.8000500@isi.edu> <455D9BD5.7000900@wanadoo.fr> <1163775763.8736.114.camel@sioux.systems.cs.cornell.edu> <c70bc85d0611170827t36b9443fm2b5581721142b769@mail.gmail.com> <455DE7D1.6030805@isi.edu> <c70bc85d0611170940s26d906aak4241fe728be5590d@mail.gmail.com> <455DFF44.9060208@isi.edu> <455EEB37.1020504@rd-iptech.com>
In-Reply-To: <455EEB37.1020504@rd-iptech.com>
X-Enigmail-Version: 0.94.0.0
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 5a9a1bd6c2d06a21d748b7d0070ddcb8
Cc: eme <eme@irtf.org>
Subject: [EME] Re: TCP close semantics
X-BeenThere: eme@irtf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: end-middle-end research group <eme.irtf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/eme>, <mailto:eme-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/eme>
List-Post: <mailto:eme@irtf.org>
List-Help: <mailto:eme-request@irtf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/eme>, <mailto:eme-request@irtf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0898325560=="
Errors-To: eme-bounces@irtf.org


Rémi Després wrote:
> Joe Touch wrote :
>> ...
>> Doing that means keeping TCP semantics, which means that a FIN/ACK means
>> what a FIN/ACK means - that the -endpoint- got the data, not that a
>> middlebox somewhere else did.
>>   
> Sorry to insist that AFAIK this statement is inaccurate, at least if, as
> I understand it, the endpoint refers to the application that uses TCP.
> 
> YES, when an application receives a FIN, it _does mean_ that it has
> received all its incoming data have been received.
> But NO, after an application has sent a FIN, reception of the ACK for
> that FIN by its TCP stack _doesn't mean_ that all its outgoing data have
> been received  by the far end application.

It does mean that the TCP stack has received all outstanding data that
preceded the FIN.

> AFAIK _the application that sends a FIN is not even informed that the
> FIN has been acknowledged _ (no provision for this at its socket API
> with its TCP stack). .

There are no async signals to the app; it's always the app's
responsibility to check the state. The app must issue a READ on the
connection after issuing a CLOSE until the response is that there is no
data and the request returns a status "CLOSED".

Joe

_______________________________________________
EME mailing list
EME@irtf.org
https://www1.ietf.org/mailman/listinfo/eme