双方通信完毕,关闭连接时要进行四次挥手。

  • 第一次挥手,客户端发送一个 FIN 包,申请断开连接,并等待服务器确认。

  • 第二次挥手,服务器回复一个 ACK 确认包,表示接受客户端的关闭连接请求,但是服务器还不能马上去关闭连接,需要检查一下是否还有未处理完毕的数据。

  • 第三次挥手,服务端处理完所有的数据,给客户端发送 FIN 包,表示可以断开连接。

  • 第四次挥手,客户端回复 ACK 包,表示断开连接。