[e2e] A simple scenario. (Basically the reason for the sliding window thread ; -))

David Borman david.borman at windriver.com
Thu Jan 11 09:11:43 PST 2007

Hi Detlef,

TCP does not provide any mechanism to tell that all the data has been  
delivered to the application.  TCP can only tell you that all the  
data has been received by the TCP at the remote end.  The application  
itself on both ends of the connection will need to determine whether  
or not all the relevant data has been received by the application.   
That is really the only place where it can take place reliably.  For  
example, even if TCP could let the other side know that the  
application has read all the data, that doesn't mean that the  
application has actually processed the data, or gotten it to stable  
storage, or whatever else it is doing with the data.

TCP provides a reliable byte stream, it is up to the application to  
decide how to use the data that is transferred over that stream.

			-David Borman

On Jan 11, 2007, at 4:07 AM, Detlef Bosau wrote:

> I apologize if this is a stupid question, but from the RFC I  
> understood that the receiving socket sends an acknowledgement when  
> all data was received. That´s CLOSE ACK.
> Is there an explicit acknowledgement which tell´s the sender that  
> all data has been delivered to the _application_? Can this even be  
> achieved in finite time? An application may crash or hang!
> To my understanding the Fin/FinACK/..... is to shut down a TCP  
> connection knowing about the two army problem and the fact that  
> this cannot be solved in finite time?
> I apologizse when this is a misconception...
> Detlef

More information about the end2end-interest mailing list