TCP 的三次握手四次挥手
三次握手的过程如下:
- 客户端向服务器发送 SYN 包,表示请求连接。
- 服务器收到 SYN 包后,向客户端发送 SYN+ACK 包,表示确认请求,并准备好接受数据。
- 客户端收到 SYN+ACK 包后,向服务器发送 ACK 包,表示确认连接已建立。
四次挥手的过程如下:
- 客户端向服务器发送 FIN 包,表示要关闭连接。
- 服务器收到 FIN 包后,向客户端发送 ACK 包,表示确认收到 FIN 包。
- 服务器向客户端发送 FIN 包,表示准备好关闭连接。
- 客户端收到 FIN 包后,向服务器发送 ACK 包,表示确认收到 FIN 包,并关闭连接。
三次握手的目的是为了确保客户端和服务器都已准备好发送和接收数据,并且双方的序列号和确认号都已同步。四次挥手的目的是为了确保数据传输完毕后安全地关闭连接,避免数据的丢失和不完整。
需要注意的是,在 TCP 协议中,连接是双向的,因此每个方向的关闭都需要经过一次挥手过程。所以总共需要四次挥手。