TCP三次握手和四次挥手是什么
建立 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)
为什么步骤2和步骤3不合并起来?
因为步骤2、3中间服务器很可能还有数据要发送,不能提前发送 FIN
。