Skip to content

TCP三次握手和四次挥手是什么

建立 TCP 连接时 server 与 client 会经历三次握手

  1. 浏览器服务器发送 TCP 数据:SYN(seq=x)
  2. 服务器浏览器发送 TCP 数据:ACK(seq=x+1) SYN(y)
  3. 浏览器服务器发送 TCP 数据:ACK(seq=y+1)

关闭 TCP 连接时 server 与 client 会经历四次挥手

  1. 浏览器服务器发送 TCP 数据:FIN(seq=x)
  2. 服务器浏览器发送 TCP 数据:ACK(seq=x+1)
  3. 服务器浏览器发送 TCP 数据:FIN(seq=y)
  4. 浏览器服务器发送 TCP 数据:ACK(seq=y+1)

为什么步骤2和步骤3不合并起来?

因为步骤2、3中间服务器很可能还有数据要发送,不能提前发送 FIN