<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">We need some clarifications on TCP_keepalive . We are facing some issues on our Prod servers related to TCP functionality .<br><br>The issue is like this. <br><br>We
have some machines at one end sending data in real time to another
group of machines on the other hand . Now due to some hardware issues
on the other hand , some of the machines becomes unresponsive/crashes.
The client system which pumps data never came to know that the server
went unresponsive . The connection remains in<br>ESTABLISHED state and
the client always tries to send data thinking that the connection is
alive because of which we are seeing backlog on client sides. <br><br>Our understanding is like this on how TCP will handle the connection.<br><br><br>Q 1) Since the server went down , the client will try to the retransmit the data until it times out. What is the
behavior of TCP after the timeout? Need clarification on<br>the following things.<br>a)
Will the kernel will close the established connection after the timeout
. Looks like no in our case as we still see the connection still in
ESTABLISHED state after around more <br>than 2 hours. <br>b) Are there
any kernel parameters which decides the when the client is timeout after
retransmission fails. What is the behavior of TCP after the client
retransmission timeouts.<br><br><br>Q 2 ) There is something called
tcp_keepalive which if implemented in the kernel , by default it's there
and comes to be around 2 hrs 2 minsutes , i think , the client will
send some TCP probes after the keepalive time ineterval and if it cannot
reach the server , then the established connection in the client side
will be closed by the kernel . This is my understanding. But I can see
that the connection still remains in established after the tcp_keepalive
time . We waited for
around 2 hrs 30 minutes but the connection remains in established state
only. Tried reducing the keepalive time to be around 10 minutes , but
the connection remains in ESTABLISHED state in client side .<br><br><br>Where
I went wrong .Please clarify my doubts raised above . What should we do
to resolve the problem we are seeing above . Any help will be highly
appreciated as we are going through a hard time to resolve the issue . <br><br>Thanks in Advance<br></td></tr></table><br>