[EME] Re: transport recovery at the APP layer ?

Rémi Després <remi.despres@wanadoo.fr> Fri, 17 November 2006 11:24 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gl1pV-0002x0-0I; Fri, 17 Nov 2006 06:24:21 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gl1pT-0002mY-KX for eme@irtf.org; Fri, 17 Nov 2006 06:24:19 -0500
Received: from smtp20.orange.fr ([80.12.242.27] helo=smtp-msa-out20.orange.fr) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Gl1pS-0000LP-6z for eme@irtf.org; Fri, 17 Nov 2006 06:24:19 -0500
Received: from [127.0.0.1] (APuteaux-152-1-23-6.w82-120.abo.wanadoo.fr [82.120.85.6]) by mwinf2009.orange.fr (SMTP Server) with ESMTP id B1A0B1C000A3; Fri, 17 Nov 2006 12:24:06 +0100 (CET)
X-ME-UUID: 20061117112406727.B1A0B1C000A3@mwinf2009.orange.fr
Message-ID: <455D9BD5.7000900@wanadoo.fr>
Date: Fri, 17 Nov 2006 12:24:05 +0100
From: Rémi Després <remi.despres@wanadoo.fr>
User-Agent: Thunderbird 1.5.0.8 (Windows/20061025)
MIME-Version: 1.0
To: Joe Touch <touch@ISI.EDU>, Yangwoo Ko <newcat@icu.ac.kr>, Paul Francis <francis@cs.cornell.edu>
References: <E6F7A586E0A3F94D921755964F6BE00662575C@EXCHANGE2.cs.cornell.edu> <4559FC5C.1090803@rd-iptech.com> <455A14AA.6010007@isi.edu> <455B3DDC.2060903@rd-iptech.com> <455B4094.1080400@isi.edu> <455B472A.9000303@wanadoo.fr> <455B48BD.5050201@isi.edu> <455B56C9.7080307@rd-iptech.com> <455B6358.4000703@isi.edu> <455C38AC.1090306@rd-iptech.com> <455CDFFF.8000500@isi.edu>
In-Reply-To: <455CDFFF.8000500@isi.edu>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Scan-Signature: f4c2cf0bccc868e4cc88dace71fb3f44
Cc: eme@irtf.org
Subject: [EME] Re: transport recovery at the APP layer ?
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>
Errors-To: eme-bounces@irtf.org

This discussion is IMO indeed relevant here (answer to Yangwoo).
The reason is that  part of the subject at hand is what middleboxes 
should do.
This does depend on the E2E functions of protocols on which these 
middleboxes have an action.
Among these protocols, TCP has a prominent position, in particular in 
NAT boxes..
Whether a connection close has to guarantee, or not, delivery to the 
destination application of the last data sent to it, is IMU a 
significant E2E aspect of TCP.
IMU, requirements on NATs do depend significantly on the answer.

I do agree (answer to Paul Francis) that the TCP checksum provides no 
more than what its simple design permits, and harder protections (e.g. 
that of SCTP) would be more appropriate for various applications.
One way to deal with this could be to add at the transport API some 
indication of which level of data integrity guarantee is required..

Concerning what the TCP based transport service does, comments below.

Joe Touch wrote :
> An ACK is generated - but if there is outstanding data, it will not ACK
> the seq num of the FIN.
>   
This is not IMU what the TCP spec says..

> When your side registers a CLOSED state, it means that the other side
> has issued a CLOSE, which means the app has received all the data. It
> may not have acted on it (which would require the app to ACK), but the
> app has it.
>   
True. A host that receives a close knows that he has received all data 
sent to it before the close.
But if a host sends a close, its local transport stack receiving a 
transport layer acknowledgment for the close tells only that a transport 
stack, somewhere on the way to the application, has seen the close.
This is true even if there is no middlebox between the hosts.
Consequently, a NAT or even a TCP relay, doesn't change the nature of 
what applications may expect of the transport layer.

NOTE: In practice, for Request-Response protocols, e.g. . HTTP, a simple 
precaution at the application layer is sufficient to provide the 
desirable guarantee.
The first end to close its transmit direction (active close) must be the 
one that receives the last response of the dialog.
Before doing its active close, this "last receiver"  must be sure, at 
the application layer, that the received response is for its complete 
request..
Then the other end, the "last transmitter" receiving  a close sends a 
close for the other direction (passive close).
This way, the active closer knows that all data it has sent have been 
received (it received an application anwer for all of them).
It also knows also that it received all data sent to it since it 
received the passive close.

RD



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