1.没有开启keepalive,双方无数据交互,客户端主机崩溃:
服务器端一直有一个已建立的状态,知道端服务器重启进程。
2.没有开启keepalive,双方无数据交互,客户端进程崩溃:
内核回收完成进程的资源,向服务器端发送FIN报文,后续的挥手过程仍在内核中,进程不用参与。
3.开启keepalive,双方无数据交互,客户端崩溃:
如果有一段时间双方没有发生与连接相关的时间,服务器会每隔四年发送一个探测报文,如果连续发几个探测报文都没有收到回复,就把错误报告给应用程序,断开连接。
3.双方有数据传输,客户端主机宕机,又迅速重启:
客户端主机宕机,服务器发送的报文一直没有收到回复,服务器就重传发送的报文,如果客户端在短时间内重启,可以收到服务器重传的报文,客户端回复RST报文重置连接。
4.双方有数据传输,客户端主机宕机,但无法重启:
服务器会一直重传报文,知道达到最大重传上线,将错误报告给应用程序,中断连接。