三次握手
第一次握手:客户端给服务端发送一个SYN报文,并指明客户端的初始化序列号,此时客户端处于SYN_SENT状态
第二次握手:服务端收到客户端的SYN报文之后,会回复SYN报文作为应答,并且也指定了自己的初始化序列号,和一个确认报文段ACK表示自己已经收到了客户端的SYN,此时服务器处于SYN_RVCD状态
第三次握手:客户端SYN报文后,同样会发送一个确认报文段ACK表示自己已经收到了服务端的SYN报文,此时客户端处于ESTABLISHED状态,服务器收到ACK报文后,也处于ESTABLISHED状态,此时,双方已经建立连接。
四次挥手
第一次挥手:客户端发送一个FIN报文,报文中会带有一个序列号,此时客户端处于FIN_WAIT1状态
第二次挥手:服务端收到FIN报文之后,会**发送确认报文段ACK,**此时服务端处于CLOSE_WAIT状态,此时TCP处于半关闭状态,客户端收到服务端的确认后,进入FIN_WAIT2状态,等待服务端发出的连接释放报文段
第三次挥手:如果服务端要断开连接,那么会向客户端发送一个FIN报文并且指定一个序列号,此时服务端处于LAST_ACK状态
第四次挥手:客户端收到FIN之后,发送一个确认报文段ACK作为应答,此时客户端处于TIME_WAIT状态;服务器收到了对结束报文段确认的ACK,进入CLOSED状态,断开连接。而客户端需要等待2MSL(规定是MSL为2分钟)的时间,才会进入到CLOSED状态