一、三次握手与四次挥手流程
1)三次握手(TCP建立连接)
1、首先客户端向被服务端发送建立连接的请求(SYN),此时客户端TCP层的状态变为SYN_SENT,等待服务端的响应;
2、服务端再收到客户端的建立连接请求后,向客户端作出应答(SYN),并且向客户端发送ACK,确认其是否具有收发数据的能力,此时服务端的状态为SYN_RCVD;
3、客户端收的到服务端的ACK后,需要向服务端表明,自己具有收发数据的能力,于是向服务端发送ACK进行反馈.此时客户端的状态变为ESTABLISHED;
4、当服务端收到客户端发送的确认应答ACK之后,服务端的状态就变为ESTABLISHED,至此,客户端与服务端的TCP连接建立成功;
2)四次挥手(TCP断开连接)
以客户端为主动断开连接的一方,服务端为被动断开连接的一方为例
1、首先,客户端向服务端发送FIN,请求断开连接,此时客户端状态为FIN-WAIT-1;
2、服务端在收到客户端的断开连接请求(FIN)之后,作出相应,向客户端发送ACK,可理解为已经收到客户端的断开连接请求,此时客户端的状态为FIN-WAIT-2,服务端的状态为CLOSE-WAIT;