[e2e] A simple scenario. (Basically the reason for the sliding window thread ; -))
david.borman at windriver.com
Thu Jan 11 09:11:43 PST 2007
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.
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...
More information about the end2end-interest