TCP三次握手:
先看如何建立
首先:客户端发送SYN 建立链接请求报文。客户端确认链接后回复ACK确认报文,并为这次连接分配资源。客户端接收到ACK报文后也向服务器端发送报文,并分配资源,这样TCP连接就建立了。
4次挥手 断开连接:
为什么连接的时候是三次握手,关闭的时候却是四次握手?
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
参考:https://www.jianshu.com/p/9968b16b607e