TCP 三次握手和四次挥手?
三次握手:
第一次握手: 客户端向服务端发送 SYN 包请求建立连接,客户端进入 SYN_SEND 状态;
第二次握手: 服务端收到 SYN 包并确认 SYN 包,服务端发送 SYN+ACK 包,服务端进入SYN_RECV状态;
第三次握手: 服务端收到 SYN+ACK 包后,发送确认包 ACK ,服务器和客户端进入ESTABLISHED状态。
四次挥手:
客户端和服务端都可以主动提出关闭,我们以客户端主动关闭为例。
第一次挥手: 客户端发送 FIN 给服务端,关闭客户端到服务端的数据传输,客户端进入 FIN_WAIT_1 状态;
第二次挥手: 服务端收到 FIN 后,服务端进入 CLOSE_WAIT 状态,然后向客户端发出一个 ACK 包,客户端进入 FIN_WAIT_2 状态;
第三次挥手: 服务端发送 FIN 给客户端,关闭服务器到客户端的数据传输,服务端进入LAST_WAIT 状态;
第四次挥手: 客户端收到 FIN 后,进入TIME_WAIT 状态,然后向服务端发送 ACK 包确认,服务端进入CLOSED 状态,连接断开。