> > You are missing something fundamental here - if a TCP > > connection breaks (isn't closed cleanly) then the two > > endpoints can get out of sync regarding how much data was > > delivered. You can't fix this at higher layers without an > > unacceptable amount of complexity and overhead. This has > > nothing to do with the app/transport interface being a sacred > > invariant - it happens any time you try to layer something on > > top of transport that has to survive breakage of the transport layer. > > And apps are in exactly that position today. This is still not a valid > reason to insist on adding complexity into the transport or IP layers. Okay, well you've just demonstrated that you're insane.