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

Rémi Després <remi.despres@wanadoo.fr> Thu, 16 November 2006 15:11 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gkiu8-0004nY-1r; Thu, 16 Nov 2006 10:11:52 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gkiu6-0004nN-Nn for eme@irtf.org; Thu, 16 Nov 2006 10:11:50 -0500
Received: from smtp20.orange.fr ([193.252.22.29] helo=smtp-msa-out20.orange.fr) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Gkiu5-0000TO-2T for eme@irtf.org; Thu, 16 Nov 2006 10:11:50 -0500
Received: from [127.0.0.1] (APuteaux-152-1-27-65.w82-120.abo.wanadoo.fr [82.120.89.65]) by mwinf2013.orange.fr (SMTP Server) with ESMTP id 315DA1C000A6; Thu, 16 Nov 2006 16:11:47 +0100 (CET)
X-ME-UUID: 20061116151147202.315DA1C000A6@mwinf2013.orange.fr
Message-ID: <455C7FB5.80206@wanadoo.fr>
Date: Thu, 16 Nov 2006 16:11:49 +0100
From: Rémi Després <remi.despres@wanadoo.fr>
User-Agent: Thunderbird 1.5.0.8 (Windows/20061025)
MIME-Version: 1.0
To: Paul Francis <francis@cs.cornell.edu>
Subject: Re: [EME] Re: transport recovery at the APP layer ?
References: <E6F7A586E0A3F94D921755964F6BE00662592C@EXCHANGE2.cs.cornell.edu>
In-Reply-To: <E6F7A586E0A3F94D921755964F6BE00662592C@EXCHANGE2.cs.cornell.edu>
X-Spam-Score: 0.1 (/)
X-Scan-Signature: 0e9ebc0cbd700a87c0637ad0e2c91610
Cc: eme@irtf.org, Joe Touch <touch@ISI.EDU>
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="===============0301237871=="
Errors-To: eme-bounces@irtf.org

Not relying on sequence preservation by TCP would be IMO going too far.
Credible mechanisms are present in TCP to ensure it.
On the other hand, TCP hasn't credible mechanisms guarantee delivery to 
the destination application for data that are acknowledged by the 
destination TCP stack, even at the end of a connection.

The E2E _guarantee _that TCP provides, _application-to-application,_ is 
_data integrity_, with neither permutation nor duplication nor 
deletion,  _from the first data transmitted to the last data  
*received*_*. *
Aat the end of a connection, the destination application can know, from 
the transport layer, that it has received all transmitted data , but the 
source application cannot be sure, from the transport layer, that all 
the last data it has sent have been received.

RD

Paul Francis wrote:
> I have long held the view that the application should assume very 
> little from TCP.  If the app needs an ack of some sort, then the app 
> should provide it.  If the app really really cares about in-order 
> bytes, it should do its own checksums.   To do anything else is to 
> ignore the end-to-end principle.  If nothing else, writing apps this 
> way saves you from having to understand the minute details of TCP 
> implementations! 
>  
> PF
>
> ------------------------------------------------------------------------
> **Rémi Després wrote:
>
> Joe Touch wrote:
>> Rémi Després wrote:
>>   
>>> ... A transport layer acknowledgement (TCP ACK) doesn't mean that the
>>> destination application has seen the data.
>>>     
>> It never did. But receiving an ACK to a FIN does.
>>   
> However regrettable it may be :'( , it's no true in all cases either.
>  If a FIN is received by a TCP stack, it MUST be acked within 0.5 s to 
> conform to RFC1122  -  4.2.3.2.
>  It MAY be acked long before that. .
>  If the application hasn't absorbed all buffered data before the ACK 
> is sent, remaining data MAY never be received by the app.
>
>  Since changing all TCP stacks would not be realistic, this fact of 
> life has to be faced.
>>> I guess what is meant by "E2E" should be clarified: transport stack 
>>> to transport stack, or app to app?
>>>  TCP provides only the former.
>>>  What TCP does guarantee is that all received data have been sent, in
>>> the same order and with no intermediate omission.
>>>     
>> when the connection closes, the app HAS received the data.
>>   
>  See above.
>
>> ... if the TCP
>> connection closes it knows that the other application has received the
>> data. That's no longer true in spliced connections.
>>   
> It's NEVER true (see above).
> Making clearer in IETF what the apps can expect from the TCP transport 
> service would IMO be useful.
>
> RD
_______________________________________________
EME mailing list
EME@irtf.org
https://www1.ietf.org/mailman/listinfo/eme