Re: [tcpm] draft-ietf-tcpm-tcp-uto-02

Ted Faber <faber@ISI.EDU> Fri, 16 December 2005 21:27 UTC

Received: from localhost.cnri.reston.va.us ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EnN6v-0004ZF-0w; Fri, 16 Dec 2005 16:27:29 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EnN6r-0004X8-Af for tcpm@megatron.ietf.org; Fri, 16 Dec 2005 16:27:27 -0500
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id QAA20703 for <tcpm@ietf.org>; Fri, 16 Dec 2005 16:26:24 -0500 (EST)
Received: from boreas.isi.edu ([128.9.160.161]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1EnN8W-00014m-47 for tcpm@ietf.org; Fri, 16 Dec 2005 16:29:09 -0500
Received: from hut.isi.edu (hut.isi.edu [128.9.168.160]) by boreas.isi.edu (8.11.6p2+0917/8.11.2) with ESMTP id jBGLQYe02092; Fri, 16 Dec 2005 13:26:34 -0800 (PST)
Received: (from faber@localhost) by hut.isi.edu (8.13.4/8.13.4/Submit) id jBGLQJ3c074429; Fri, 16 Dec 2005 13:26:19 -0800 (PST) (envelope-from faber)
Date: Fri, 16 Dec 2005 13:26:19 -0800
From: Ted Faber <faber@ISI.EDU>
To: Fernando Gont <fernando@gont.com.ar>
Subject: Re: [tcpm] draft-ietf-tcpm-tcp-uto-02
Message-ID: <20051216212619.GB66551@hut.isi.edu>
References: <BF9BD734.4234%gorry@erg.abdn.ac.uk> <6.2.0.14.0.20051201035418.0323fc48@localhost> <4390569C.6050004@erg.abdn.ac.uk> <6.2.0.14.0.20051202201002.048b5de8@localhost> <20051208222808.GB22920@hut.isi.edu> <6.2.0.14.0.20051208164304.041ead70@localhost> <20051209182531.GC1177@hut.isi.edu> <6.2.0.14.0.20051209201513.05519d10@localhost> <20051214171952.GC20929@hut.isi.edu> <6.2.0.14.0.20051216101920.04459230@localhost>
Mime-Version: 1.0
In-Reply-To: <6.2.0.14.0.20051216101920.04459230@localhost>
User-Agent: Mutt/1.4.2.1i
X-url: http://www.isi.edu/~faber
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: faber@hut.isi.edu
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 6d95a152022472c7d6cdf886a0424dc6
Cc: gorry@erg.abdn.ac.uk, Lars Eggert <lars.eggert@netlab.nec.de>, tcpm@ietf.org, "mallman@icir.org" <mallman@icir.org>
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1185978879=="
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

On Fri, Dec 16, 2005 at 10:32:00AM -0800, Fernando Gont wrote:
> At 09:19 a.m. 14/12/2005, Ted Faber wrote:
> 
> >> The point is that if you;re really concerned about data being delivered,
> >> you should be implementing an application layer timeout mechanism.
> >> If there's no TCP timeout, it does not mean that the data were delivered.
> >
> >I understand the difference between a transport ack and acknowledgements
> >from higher layers.  Some applications (correctly!) use transport state
> >to synchronize application state.
> 
> Well, I'm not sure to what extent this is "correct".

Correct is hard to dispute.  If TCP behaves properly and the application
behaves as I specified, both ends know if the transfer succeeds or
fails; that's correct.

I think you mean that you find it distasteful. :-)  I can't argue with
that.

> 
> For example, if BGP connections were "decoupled" from the underlying TCP 
> connection, then we'd not care about reset attacks against TCP, for 
> example. (Or, well, at least we'd not be so "scared")

I understand that you can incorrectly use code an application using TCP.
That doesn't mean you can't code an application that uses it correctly.

> >Consider a file transfer appliaction that opens a TCP connection for
> >each file.  The connection is closed when the file is saved to disk.  A
> >transmitter knows the file has been delivered correctly if and only if
> >the receiver closes its connection correctly.  The receiver knows the
> >whole file has been transmitted when the sender closes its side of the
> >connection (a receiver never closes its connection before a sender
> >does).  Voila, application synchronization using TCP signalling.
> 
> This assumes that the underlying transport protocol allows each direction 
> of the connection to be closed independently of the other.

That's why I identified the transport as TCP, which has this property.
The inclusion of that property is intentional.  Depending on
non-existant properties is certainly a bad design. :-)

> I'd not put such a requirement on the underlying transport protocol if I 
> were to design an application layer protocol.

There are good reasons for an engineer not to design an app the way I
suggested.  I don't think it's particularly clean myself, but I do think
it's correct and I do think it's done.  And it has the benefit of not
having to redesign TCP's state synchronization machinery at the
application.

> 
> 
> >Such an application may well want to use TCP's existing UTO mechanism as
> >a timeout.
> 
> The timeout may help in some scenarios, but still does not solve the usual 
> requirement of the application layer.
> 
> If the point of using the TCP timeout is just to avoid waiting forever, 
> okay. But, in the more general case of an application wanting to know what 
> the result of the last command sent was, you will still need the 
> application-layer thing.

Again, I'm not arguing that all applications must be designed the way I
layed out.  There are certainly applications that can't be.  You said
that the app must be broken w/o additional application layer processing,
which I took to mean that breaking applications w/o that processing by
changing UTO semantics was acceptable to you.  I presented a single
instance of an application that used TCP signalling to signal
application level state as a counter example.  I just want those sorts
of applications taken into account when we discuss UTO changes.  That's
my whole point.

-- 
Ted Faber
http://www.isi.edu/~faber           PGP: http://www.isi.edu/~faber/pubkeys.asc
Unexpected attachment on this mail? See http://www.isi.edu/~faber/FAQ.html#SIG
_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www1.ietf.org/mailman/listinfo/tcpm