TCP三次握手:"握手"是为了建立连接
第一次握手:建立连接时,客户端发送SYN包(seq=x)到服务端,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务端的SYN+ACK包,向服务端发送确认包ACK(ack=y+1),此时发送完毕,客户端和服务端进入ESTABLISHED状态,完成三次握手.
- TCP的四次挥手:"挥手"是为了终止连接
- 第一次挥手:客户端发送了一个FIN,用来关闭客户端到服务端的数据传输,客户端进入FIN_WAIT_1状态;
- 第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态;
- 第三次挥手:服务端发送一共FIN,用来关闭服务端到客户端的数据传输,服务端进入LAST_ACK状态;
- 第四次挥手:客户端收到服务端的FIN后,进入TIME_WAIT状态,同时给服务端发送一个ACK,确认序号为收到的序号+1,服务端进入CLOSED状态,完成四次挥手.
转载于:https://www.cnblogs.com/lisongyu/p/10803666.html