tcp断开连接需要四次挥手 可以是三次吗?

http://blog.csdn.net/xifeijia...

TCP断开连接为什么需要4次握手?3次不行吗?
有没有这样一种情况:断开连接时,Client和Server都没有数据要发送给彼此了,这时Client发送FIN报文段给Server,Server接收之后直接响应FIN+ACK报文段,之后Client再发送ACK报文段。也就是说,没有第2次握手,没有FIN-WAIT-2和CLOSE-WAIT状态。

阅读 5.2k
1 个回答

试想有一种情况,当Client发送了FIN报文给Server,而Server这时候还想传递一些信息给客户端,如果没有第二次握手,Server这时候直接发送剩下的数据,那客户端怎么知道Server是否收到了自己发送的关闭请求呢?
如果Client知道Server接收到了自己发送的关闭报文,那Client可以大胆的接收Server发送的剩余数据,因为它知道Server不会消耗太多的时间在剩余数据上。如果Client不知道Server有没有真正收到的关闭报文,那它自己难免会忐忑,自己在接收Server传递的剩余数据的同时,要不要再次发送新的关闭报文呢?亦或者一直等待Server端的ACK,那万一Server端没有收到FIN,也不会发送ACK,那是强制关闭还是一直等待呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进