三次握手和四次挥手是 TCP 协议中用于建立和终止网络连接的过程。
三次握手(Three-Way Handshake)的步骤如下:
- 客户端向服务器发送一个 SYN(同步)报文,指示客户端要建立连接。
- 服务器接收到客户端的 SYN 报文后,回复一个 SYN+ACK(同步 + 确认)报文,表示接收到了请求,并同意建立连接。
- 客户端接收到服务器的 SYN+ACK 报文后,再回复一个 ACK(确认)报文,表示客户端也同意建立连接。此时,连接已建立,双方可以开始进行数据传输。
三次握手本质上来说就是解决网络信道不可靠的问题 。
四次挥手(Four-Way Handshake)的步骤如下:
- 客户端向服务器发送一个 FIN(结束)报文,表示客户端要关闭连接。
- 服务器接收到客户端的 FIN 报文后,回复一个 ACK 报文作为确认,表示服务器已接收到关闭请求。
- 服务器完成当前数据的发送后,发送一个 FIN 报文给客户端,表示服务器也准备关闭连接。
- 客户端接收到服务器的 FIN 报文后,回复一个 ACK 报文作为确认,表示客户端已接收到关闭请求。此时,连接已完全关闭,双方不再进行数据传输。
通过三次握手和四次挥手的过程,TCP 协议能够可靠地建立和终止连接,确保数据的可靠传输。三次握手确保了双方都同意建立连接,而四次挥手则确保了双方都能够正确地关闭连接,避免数据丢失或重复传输的问题。这种机制使得 TCP 协议成为一种可靠的传输协议,在互联网中得到广泛应用。