一、三次握手
发生在服务器和客服端建立连接时,客户端先发起连接请求,等待服务器确认。
第一次握手:客户端向服务器发送 SYN待确认数据包,客户端进入 SYN_SEND状态(待发送状态)
第二次握手:服务器向客户端发送 ACK应答数据包,同时向客户端发送新的SYN待确认数据包,服务器进入SYN_RECV状态(待接收)
第三次握手:客户端给服务器回传一条ACK应答数据包,双方同时建立连接,进入ESTABLISHED状态(连接状态)
二、四次挥手
发生在服务器和客户端断开连接时,可以是客户端先断开连接,也可以是服务器先断开连接,所以用主动方和被动方来进行表示。
第一次挥手:主动方向被动方发送 FIN待确认数据包
第二次挥手:被动方向主动方发送 ACK应答数据包,此时处于半关闭状态(关闭缓冲区),不能进行读写操作,可以发送数据包。
第三次挥手:被动方向主动方发送FIN待确认数据包
第四次挥手:主动方向被动方回传ACK应答数据包,完全关闭,主动方进入TIME_WAIT状态