TCP的三次握手和四次挥手
三次握手
1.建立连接时,客户端发送SYN包到服务器,并置发送序号seq=x,进入SYN_SENT状态,等待服务器确认;
2.服务器收到客户端,必须确认客户端的SYN,同时自己也发一个SYN包,即SYN+ACK(ACK=x+1)包,并置发送序号seq=y,此时服务器进入SYN_RECV状态;
3.客户端接收到服务器的SYN+ACK包,向服务器发送确认包(ACK=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,连接成功。
四次挥手
1.客户端向服务器发送FIN报文,并置发送序号为seq=u,客户端进入FIN_WAIT_1状态,表明客户端已经没有数据发送给服务器;
2.服务器收到客户端发送的FIN报文,向客户端回复一个ACK报文段(ACK=u+1),并置发送序号seq=v,服务器进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态,服务器告诉客户端,我同意你的关闭请求,此时为半关闭状态;
3.服务器向客户端发送FIN报文,并置发送序号seq=w,请求关闭连接,服务器进入LAST_ACK状态,客户端进入TIME_WAIT状态;
4.客户端收到服务器发送的FIN报文,向服务器发送ACK报文段(ACK=w+1),客户端处于TIME_WAIT状态,服务器