三次握手
- Client发送连接,请求报文
- Sever端接受连接后回复ACK报文,并为此次连接分配资源。
- Client端接受到ACK报文后也向Sever端发送Ack报文,并分配资源,这样Tcp连接就建立了。
四次挥手
- CLIENT端发起中断请求,也就是发送FIN报文,即:Client端表示没有数据发送到服务端了,但是如果服务端还有数据没有发送完,就不着急关闭了。可以继续发送数据。
- Sever端发送ACK,告诉SEVER端,你的请求我收到了,但是我还没有准备好,请继续等到我的消息。这个时候SEVER端就进入了等待状态,继续等待SEVER端的FIN报文。
- 当SEVER端确定数据已发送完成可就向SEVER端发送FIN报文告诉Sever端:“我已经准备好了,准备好关闭连接了”。
- Client收到Fin报文后,就可以关闭连接了,但是它还是不相信网络,怕SEVER端不知道关闭请求,所以发送ACK进入wait状态,如果SEVER端没有收到Ack可以重传。Sever端收到Ack后就知道可以断开连接了。当Client端等待了2ms后依然没有收到回复则证明Sever端已经关闭了,OK,那我也关闭了。