因为服务端可能还有发送数据,不能立即返回 FIN。

答:其实在 TCP 握手的时候,接收端发送 SYN + ACK 的包是将一个 ACK 和一个 SYN 合并到一个包中,所以减少了一次包的发送,三次完成握手。

对于四次挥手,因为 TCP 是全双工通信,在主动关闭方发送 FIN 包后,接收端可能还要发生数据,不能立即关闭服务端到客户端的数据通道,所以也就不能将服务端的 FIN 包与对客户端的 ACK 包合并发送,只能先确认 ACK,然后服务器待无需发送数据时再发送 FIN 包,所以四次挥手时必须是四次数据包的交互。

https://www.eet-china.com/mp/a44399.html

为什么是4次挥手,而不是3次挥手

tcp为什么要是4次挥手?可以简化为3次吗?一直3次挥手会有什么问题?