TCP其实是双通道(双工)的连接,服务端向客户端发送数据有一个链接,客户端向服务端发送数据也有一个连接。
三次握手
CLOSED:一开始服务端和客户端都是处于关闭状态。
LISTEN:服务器从关闭到客户端给他发出建立连接信号这段时间称为LISTEN监听状态。
SYN-SENT:客户端给服务端发出一个建立连接请求,服务端给客户端响应的这一段时间,称为SYN-SEN建立连接。
SYN-RECVD:服务端接收到客户端的建立连接请求之后,至服务器应答建立连接请求,客户端发送确认请求到服务端这段时间称为SYN-RCVD。
ESTAB-LISHED:当三次握手完之后,服务器和客户端都进入已建立连接状态。
四次握手
ESTABLISHED
双方已建立好了连接。
FIN-WAIT-1
客户端向服务器主动发送关闭请求到服务器给出响应的这段时间。
FIN-WAIT-2
当经历过FIN-WAIT-1的状态之后,服务器会给出一个关闭连接请求的响应,FIN-WAIT-1到服务器给客户端发送关闭报文的这段时间,客户端称为FIN-WAIT-2。而在服务器端,这段时间称为CLOSE-WAIT。
客户端等待服务端到客户端段的连接关闭。
LAST-ACK
服务器端向客户端发出关闭报文到客户端给出关闭应答的这个过程称为LAST-ACK。
TIME-WAIT
客户端在最后一次给服务端给出关闭应答,给出关闭应答之后,有可能服务端没有收到,所以客户端还并不能关闭,还需要重发。
客户端就设置了一个自动关闭策略,一般是1至4分钟。
上图来自计算机网络第七版,如涉及到版权问题,可联系我删除本篇文章。