开局一张图:
![](https://img.haomeiwen.com/i1692043/85d52900ae6fdd17.jpg)
内容全靠。。。
我们知道 TCP 采用三次握手策略让发送端和接收端都能确认双方收发功能OK,以此保证可靠传输。
为何断开却要四次?
注:
FIN 表示关闭连接
ACK 表示确认
因为当服务端收到客户端的 FIN 数据包后(第一次挥手),服务端不会立即close,为什么不立即close?因为可能还有数据没发完,服务端会先将 ACK 发过去告诉客户端我收到你的断开请求了(第二次挥手),但请再给我一点时间,这段时间用来发送剩下的数据报文,发完之后再将 FIN 包发给客户端表示现在可以断了(第三次挥手)。客户端收到 FIN 包后发送 ACK 确认断开信息给服务端(第四次挥手)。
个人理解:
A: 我准备断了
B: 可以,等我把剩下的数据发完就断
过了一会儿~
B: OK,发完了,断吧
A: OK
网友评论