本篇文章分析两种场景,进程退出和机器宕机时,之前已经成功的TCP连接该如何断开
我们使用两台机器进行实验,一台192.168.0.112作为服务端,一台192.168.0.104作为客户端,服务端机器使用...机器上将 telnet 进程 kill 掉, 即 kill -9 ,模拟进程崩溃退出的情况...., 如下,连接正常处于TIME_WAIT状态
总结
进程崩溃退出时,TCP连接可以正常四次挥手
被关闭一方要调用 client.close()
机器宕机的场景
对端机器宕机之后,对于本机来说,分为两种情况...,本机不发送数据,设置了TCP KEEPALIVE, 过段时间, 连接会关闭....而如果没有设置TCP KEEPALIVE, 且对端宕机了, 本机又不发送数据, 那么本机的连接就会一直存在.
END