[Standards-JIG] What happened to the ACK proposal?

David Chisnall theraven at sucs.org
Sat Aug 13 09:13:29 UTC 2005


On 13 Aug 2005, at 02:16, Gaston Dombiak wrote:
> Hey guys,
>
> I noticed that under certain circumstances Java is not able to  
> detect that a
> connection was closed.

The problem is not with Java, it is with TCP.  If a connection is  
closed properly, then both parties are notified.  If the connection  
is dropped, then they are not - the only way to detect that a TCP  
connection is dropped it to send some data and then wait for the TCP  
ACK for a specified timeout - if the ACK is not received then the  
connection is dropped (although it could just be really laggy - I've  
seen RTTs of over two minutes in the past, on really congested  
networks).

A good implementation of a TCP API would throw an exception (or  
invoke a callback) when this occurred, passing the unsent data (i.e.  
the data for which no ACK has been received) as an argument.   
Unfortunately, I have never seen a good TCP API (everyone  
standardised on the Berkley socket API which is brain-dead in so very  
many ways).



More information about the Standards mailing list