【710、TCP 连接和断开连接,为什么使用三次握手,四次挥手。】

103 阅读2分钟

TCP(Transmission Control Protocol)是一种可靠的传输协议,用于在网络上建立可靠的连接,并确保数据的可靠传输。TCP 使用三次握手来建立连接和四次挥手来断开连接,这是为了保证通信的可靠性和稳定性。

三次握手(Three-Way Handshake)用于建立 TCP 连接。它的目的是确保双方都能够收发数据,同时协商初始化序列号和其他参数。以下是三次握手的过程:

  1. 第一步(SYN):客户端向服务器发送一个带有 SYN(同步)标志的数据包,表示请求建立连接,并选择一个初始序列号(随机数)。
  2. 第二步(SYN + ACK):服务器收到客户端的请求后,发送一个带有 SYN 和 ACK(确认)标志的数据包作为响应。服务器也选择一个初始序列号,并确认客户端的请求。
  3. 第三步(ACK):客户端收到服务器的响应后,发送一个带有 ACK 标志的数据包,确认服务器的确认。至此,连接建立成功,双方可以开始进行数据传输。

三次握手的目的是确保双方都能够正确地发送和接收数据,同时避免已失效的连接请求导致资源浪费。

四次挥手(Four-Way Handshake)用于断开 TCP 连接。TCP 是全双工的协议,所以每个方向的数据流都需要单独进行关闭。以下是四次挥手的过程:

  1. 第一步(FIN):一方(通常是客户端)向另一方发送一个带有 FIN(结束)标志的数据包,表示请求关闭连接。
  2. 第二步(ACK):接收到 FIN 的一方发送一个带有 ACK 标志的数据包作为响应,确认对方的关闭请求。
  3. 第三步(FIN):另一方(通常是服务器)发送一个带有 FIN 标志的数据包,表示它也希望关闭连接。
  4. 第四步(ACK):接收到 FIN 的一方发送一个带有 ACK 标志的数据包作为响应,确认对方的关闭请求。此时,连接完全关闭。

四次挥手的目的是确保双方都能够完成数据的传输,并且彻底关闭连接。在挥手过程中,两端都要发送 FIN 和 ACK,以确保对方收到关闭请求并发送确认。这种方式可以保证数据的可靠传输,并防止已失效的连接请求重新被接受。