keepalive机制

keepalive 是 TCP 协议内的心跳机制,用来维护链接的状态,默认不开启。服务器端每隔一段事件会向空闲两小时以上的链接的对端发送一个 keepalive 包,有以下情形:

  1. 对端回复 ACK,链接保活,再次空闲两小时后重新探测;
  2. 对端的应用程序已经退出,TCP 回复一个 RST包,链接关闭;
  3. 对端的应用程序卡死/无反应,TCP 回复一个 FIN包,来终止链接;
  4. 对端机器无任何反应,服务器端将持续发送 keepalive 包,超时则关闭链接。时间范围半小时到两小时。