> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> 
> 
> Thanks for clarifications.
> 
> On the other hand, TCP knows that packet is delivered or not.
> 

Not true. TCP knows if a packet was delivered. It does not know if a
packet was not delivered. The best it can do is resubmit the packet if
the ack fails to arrive within specific timeout. But if the packet is
sent, and I cut the line just after the packet goes there is no way for
TCP to know if that packet arrived and was processed by the high level
application or not, as there is no way for the ack to arrive.

> And it seems socket API does not do anything with this info (no
exception)
> 

The socket does not have this info, in general. Socket gives you a
virtual communication channel just like your phone gives you one when
you make a call. But there is no guarantee that the line will not fail
and you will loose contact.

> This mandates application acknowledge if you really want to be sure
> messages
> have been delivered. In this case, why does bring TCP over UDP? Only
> ordering?

Try to implement all the guarantees of TCP/IP on your own, with all the
cases, and then let us know if you want to do this over and over on
every application you write.

Jose Alberto

Reply via email to