为什么是四次挥手而不是三次

2020-04-28  本文已影响0人  砂壶

为什么是四次挥手而不是三次?

因为服务端在接收到FIN, 往往不会立即返回FIN, 必须等到服务端所有的报文都发送完毕了,才能发FIN。因此先发一个ACK表示已经收到客户端的FIN,延迟一段时间才发FIN。这就造成了四次挥手。

如果是三次挥手会有什么问题?

等于说服务端将ACK和FIN的发送合并为一次挥手,这个时候长时间的延迟可能会导致客户端误以为FIN没有到达客户端,从而让客户端不断的重发FIN。

参考资料

http://47.98.159.95/my_blog/tcp/003.html#%E8%BF%87%E7%A8%8B%E6%8B%86%E8%A7%A3

上一篇 下一篇

猜你喜欢

热点阅读