A TCP connection is considered “half-open” when one party thinks the connection has been closed and the other party thinks the connection is still open.
One solution to the half-open connection is the old "When in Doubt, Time Out" rule. That is, if no packets have been sent/received on an existing connection for some preset period of time, unilaterally close the connection. Not elegant, but works great.
The Internet has grown exponentially over time and TCP/IP has become one of those things that are just there and works the way it is supposed to 999.999999 percent of the time. Today's average PC user really doesn't think or care about half-open connections as defined above anymore, or even how TCP/IP does what it does!
Why am I writing about this? Well, over the past week or so connections to two of my web sites has been bouncing, i.e., the monitoring service I use has been reporting intermittent loss of connectivity:
Alert Type: Site Not Available Result: Failed Time: August 11, 2009 10:39:23 HostName/URL: portal.hrpr.com Monitor Name: hrpr.com Service: http
Alert Type: Site is Available Result: Ok Time: August 11, 2009 11:09:24 HostName/URL: portal.hrpr.com Monitor Name: hrpr.com Service: http