建立 TCP 连接时 server 与 client 会经历三次握手
- 浏览器向服务器发送 TCP 数据:SYN(seq = x)
- 服务器向浏览器发送 TCP 数据:ACK(seq = x + 1) SYN(y)
- 浏览器向服务器发送 TCP 数据:ACK(seq = y + 1)
关闭 TCP 连接时 server 与 client 会经历四次挥手
- 浏览器向服务器发送 TCP 数据:FIN(seq = x)
- 服务器向浏览器发送 TCP 数据:ACK(seq = x + 1)
- 服务器向浏览器发送 TCP 数据:FIN(seq = y)
- 浏览器向服务器发送 TCP 数据:ACK(seq = y + 1)
Q:为什么步骤2、3不合并起来?
A:步骤2、3之间服务器可能还有数据要发送,不能提前发送 FIN。