tcp keepalive

tcp keepalive用于检查两者之间的链路是否正常,或防止链路断开。

一旦建立了TCP连接,该连接被定义为有效,直到一方关闭它。一旦连接进入连接状态,它将无限期地保持连接状态。但实际上,这种联系不会无限期地持续下去。如果在一段时间内没有任何活动,许多防火墙或NAT系统将关闭连接。Keep Alive信号可以用来欺骗中间主机,使其不会因为不活动而关闭连接。也有可能是一台主机不再监听(例如应用程序或系统崩溃)。在这种情况下,连接被关闭,但没有发送FIN。在这种情况下,可以使用KeepAlive包来询问连接,以检查它是否仍然完好无损。

大多数支持TCP的主机也支持TCP Keepalive。每台主机(或对等体)定期向对方发送一个TCP包,请求对方作出响应。如果发送了一定数量的keepalive并且没有收到响应(ACK),则发送主机将从其端终止连接。如果一个连接由于TCP Keepalive超时而终止,并且另一个主机最终会为旧连接发送一个数据包,终止连接的主机将发送一个设置了RST标志的数据包,以通知另一个主机旧连接不再活跃。这将迫使另一个主机终止它的连接,以便建立一个新的连接。

Ref

  1. https://en.wikipedia.org/wiki/Keepalive

你可能感兴趣的:(net,tcp/ip,网络,服务器)