为什么 TCP 断开连接要四次挥手?

2019-08-20  本文已影响0人  Lol刀妹

开局一张图:

图片来自百度百科

内容全靠。。。


我们知道 TCP 采用三次握手策略让发送端和接收端都能确认双方收发功能OK,以此保证可靠传输。

为何断开却要四次?

注:
FIN 表示关闭连接
ACK 表示确认

因为当服务端收到客户端的 FIN 数据包后(第一次挥手),服务端不会立即close,为什么不立即close?因为可能还有数据没发完,服务端会先将 ACK 发过去告诉客户端我收到你的断开请求了(第二次挥手),但请再给我一点时间,这段时间用来发送剩下的数据报文,发完之后再将 FIN 包发给客户端表示现在可以断了(第三次挥手)。客户端收到 FIN 包后发送 ACK 确认断开信息给服务端(第四次挥手)。


个人理解:

A: 我准备断了
B: 可以,等我把剩下的数据发完就断
过了一会儿~
B: OK,发完了,断吧
A: OK

上一篇下一篇

猜你喜欢

热点阅读