建立tcp需要三次握手才能建立,而断开连接需要四次握手。
我们先看一下tcp,是如何建立连接的:
首先client端发送连接请求报文,server 端接收连接后回复ACK报文,并为这次连接分配资源。client 端接收到ACK报文后也向server 端发送ack报文,并分配资源,这样tcp连接就建立了。
那如何中断连接呢?
首先声明:中断连接可以是client 端,也可以是server端。
假设client端发起中断连接请求,也就是FIN报文。server端接到FIN报之后,意思是说:”我的client端没有数据要发给你了“,但是如果你的数据还没有发送完成,则不必急着关闭socket,可以继续发送数据,所以你先发送ack,”告诉client,你的请求我已经收到了,但是我还没准备好,请你继续等我的消息”。这个时候client端进入FIN_wait状态,继续等待Server端FIN报文。当server端确定数据已经发送