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

Yangwoo Ko <newcat@icu.ac.kr> Fri, 17 November 2006 06:43 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1GkxS6-0005y8-26; Fri, 17 Nov 2006 01:43:54 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1GkxS5-0005y3-8U for eme@irtf.org; Fri, 17 Nov 2006 01:43:53 -0500
Received: from sniper.icu.ac.kr ([210.107.128.51]) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1GkxS2-0002Sh-Bq for eme@irtf.org; Fri, 17 Nov 2006 01:43:53 -0500
Received: (snipe 2740 invoked by uid 0); 17 Nov 2006 15:45:00 +0900
Received: from newcat@icu.ac.kr with Spamsniper 2.96.00 (Processed in 0.027156 secs);
Received: from unknown (HELO ?192.168.10.132?) (Z???own@210.107.250.150) by unknown with SMTP; 17 Nov 2006 15:45:00 +0900
X-RCPTTO: touch@ISI.EDU, remi.despres@rd-iptech.com, eme@irtf.org
Message-ID: <455D5A15.6050503@icu.ac.kr>
Date: Fri, 17 Nov 2006 15:43:33 +0900
From: Yangwoo Ko <newcat@icu.ac.kr>
User-Agent: Thunderbird 1.5.0.4 (Windows/20060516)
MIME-Version: 1.0
To: Joe Touch <touch@ISI.EDU>
Subject: Re: [EME] Re: transport recovery at the APP layer ?
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: 8bit
X-Spam-Score: 0.0 (/)
X-Scan-Signature: d185fa790257f526fedfd5d01ed9c976
Cc: eme@irtf.org
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

Please pardon my very rude interrupt.

Are these on-topic? It is really interesting to re-consider
what successful delivery in transport layer means and how
much we can be assured by just looking at packets. But, I
think that this is useful only when this RG (implicitly or
explicitly) decides to make middleboxes do the right things
by watching these packets.

Regards

Joe Touch wrote:
> 
> 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.
> 
> An ACK is generated - but if there is outstanding data, it will not ACK
> the seq num of the FIN.
> 
> The ACK _of the FIN_ means that all subsequent data has been received
> correctly (as determined by the TCP checksum, which is not strong) by
> the TCP at the other end.
> 
> As per below, there are other steps I should have noted to ensure that
> the app has _read_ the data. As you and Paul observe, that may be
> semantically insufficient - even if the app reads the data, if you want
> to know if the app acted on it (e.g., a bank transaction), knowing that
> the item was delivered or even received by the app is insufficient.
> 
>>  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.
> 
> 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.
> 
>>> ... 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).
> 
> I've tried to show how this is ensured above. Please indicate where that
> is incorrect. I admit I'm not absolutely sure of the mechanistic
> details, but a successful close means the application has _read_ the
> data you sent (which again may be insufficient).
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> EME mailing list
> EME@irtf.org
> https://www1.ietf.org/mailman/listinfo/eme


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