RE: [EME] Re: transport recovery at the APP layer ?
"Paul Francis" <francis@cs.cornell.edu> Thu, 16 November 2006 16:20 UTC
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gkjyu-0000vl-Np; Thu, 16 Nov 2006 11:20:52 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Gkjyt-0000vf-Qt for eme@irtf.org; Thu, 16 Nov 2006 11:20:51 -0500
Received: from exchfenlb-2.cs.cornell.edu ([128.84.97.34] helo=exchfe2.cs.cornell.edu) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Gkjys-0001BZ-Cp for eme@irtf.org; Thu, 16 Nov 2006 11:20:51 -0500
Received: from EXCHANGE2.cs.cornell.edu ([128.84.96.44]) by exchfe2.cs.cornell.edu with Microsoft SMTPSVC(6.0.3790.1830); Thu, 16 Nov 2006 11:20:50 -0500
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: [EME] Re: transport recovery at the APP layer ?
X-MimeOLE: Produced By Microsoft Exchange V6.5
Date: Thu, 16 Nov 2006 11:20:48 -0500
Message-ID: <E6F7A586E0A3F94D921755964F6BE006625972@EXCHANGE2.cs.cornell.edu>
In-Reply-To: <455C7FB5.80206@wanadoo.fr>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [EME] Re: transport recovery at the APP layer ?
Thread-Index: AccJmpabpYRCsCncSw+Z9NHJRd67zAAAE/ZA
From: Paul Francis <francis@cs.cornell.edu>
To: Rémi Després <remi.despres@wanadoo.fr>
X-OriginalArrivalTime: 16 Nov 2006 16:20:50.0174 (UTC) FILETIME=[2E1F69E0:01C7099B]
X-Spam-Score: 0.1 (/)
X-Scan-Signature: 162d87dc0b780d17da9b1934777fd451
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="===============0071983842=="
Errors-To: eme-bounces@irtf.org
TCP has a crappy checksum and you never know when an implementation might have some screwy bug. If I'm transmitting some random HTML page, sure I'll rely on TCP to preserve bytes for me. If I'm transmitting a financial transaction, no way in hell am I going to rely on TCP... PF ________________________________ From: Rémi Després [mailto:remi.despres@wanadoo.fr] Sent: Thursday, November 16, 2006 10:12 AM To: Paul Francis Cc: Joe Touch; eme@irtf.org Subject: Re: [EME] Re: transport recovery at the APP layer ? 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
- [EME] The virtual circuit trap mentioned in the E… Rémi Després
- Re: [Fwd: [EME] The virtual circuit trap mentione… Rémi Després
- RE: [EME] The virtual circuit trap mentioned in t… Paul Francis
- Re: [EME] The virtual circuit trap mentioned in t… Rémi Després
- Re: [EME] The virtual circuit trap mentioned in t… Joe Touch
- Re: [EME] The virtual circuit trap mentioned in t… Scott W Brim
- Re: [EME] The virtual circuit trap mentioned in t… Rémi Després
- RE: [EME] The virtual circuit trap mentioned in t… Paul Francis
- Re: [EME] The virtual circuit trap mentioned in t… Rémi Després
- Re: [EME] The virtual circuit trap mentioned in t… Rémi Després
- Re: [EME] The virtual circuit trap mentioned in t… Rémi Després
- Re: [EME] The virtual circuit trap mentioned in t… Joe Touch
- [EME] transport recovery at the APP layer ? Rémi Després
- [EME] Re: transport recovery at the APP layer ? Joe Touch
- RE: [EME] Re: transport recovery at the APP layer… Henry Sinnreich
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- [EME] Re: transport recovery at the APP layer ? Rémi Després
- RE: [EME] Re: transport recovery at the APP layer… Paul Francis
- Re: [EME] Re: transport recovery at the APP layer… Rémi Després
- RE: [EME] Re: transport recovery at the APP layer… Paul Francis
- [EME] Re: transport recovery at the APP layer ? Joe Touch
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- Re: [EME] Re: transport recovery at the APP layer… Yangwoo Ko
- [EME] Re: transport recovery at the APP layer ? Rémi Després
- Re: [EME] Re: transport recovery at the APP layer… Saikat Guha
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- Re: [EME] Re: transport recovery at the APP layer… Mark Baker
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- Re: [EME] Re: transport recovery at the APP layer… Mark Baker
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- Re: [EME] Re: transport recovery at the APP layer… Mark Baker
- Re: [EME] Re: transport recovery at the APP layer… Saikat Guha
- Re: [EME] Re: transport recovery at the APP layer… Joe Touch
- [EME] Relationship betwen Rémi Després
- [EME] TCP close semantics Rémi Després
- [EME] Re: TCP close semantics Joe Touch
- [EME] Re: TCP close semantics Rémi Després
- Re: [EME] Relationship betwen Lars Eggert