三次握手、四次挥手。
其实是可以变体成如下两种:
- 三次握手、三次挥手
- 四次握手、四次挥手
建立连接时:
- Client 和 Server 都需要 发送自己的 SYN 并确认对方的序列号,如果不合并包需要 4 次,但 Server 将自己的 SYN 与 ACK 合并发送,所以实际只需要 3 次。
关闭连接时:
- client和server都需要发送fin、ack,所以是4次,但server端把ack+fin分开了,所以是4次,若没有数据要处理,直接返回ack+fin就是3次了。
步骤
四次挥手步骤
Client → Server:FIN
Client 说:“我这边发完了,不再发送数据了”
Client 仍然可以接收数据Server → Client:ACK
Server 收到 FIN,确认 Client 发完了。但 Server 可能还在向 Client 发送剩余数据,所以不能立即发 FIN,否则 Client 还没收到所有数据就认为连接关闭 → 数据可能丢失Server → Client:FIN
Server 发完所有剩余数据后,告诉 Client:“我这边也发完了”
Client 接收后才知道 Server 完全关闭Client → Server:ACK
Client 收到 Server 的 FIN,最后确认
至此连接彻底关闭

作者:张三 创建时间:2025-03-27 15:03
最后编辑:张三 更新时间:2026-03-05 17:48
最后编辑:张三 更新时间:2026-03-05 17:48