TCP的三次握手和四次挥手实质就是指TCP通信的连接和断开
三次握手
- 第一次握手:
客户端发送一个带有SYN标志的数据包给服务端。 - 第二次握手:
服务端成功接收到数据包后,回传一个带有STY标志的数据包确认信息,表示我已经接收到了。 - 第三次握手:
客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。
其中,SYN标志数置1,表示TCP链接;ACK表示验证字段。
示意图:
四次挥手
-
第一次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传输,客户端进入FIN_WAIT_1状态
-
第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态
-
第三次挥手:服务端发送一个FIN给客户端,用来关闭客户端和服务端之间的数据传送,服务端进入LAST_ACK状态
-
第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到的序号+1,服务端进入CLOSED状态,完成四次挥手。
示意图: