【运维面试向】TCP三次握手和四次断开

 TCP三次握手

【运维面试向】TCP三次握手和四次断开_第1张图片

SYN(同步序列编号),ACK(确认字符),seq(序列号)

1.客户端向服务端发送请求,报文首部带SYN=1标志,同时选择初始序列号seq=x,客户端进入SYN-SENT;

2.服务端收到请求报文后,发出确认字符ACK=1,SYN=1,确认号是ack=x+1,同时为自己初始序列号seq=y,服务端进入SYN-RCVD;

3.客户端收到确认后,再给服务端给出确认,确认报文是ACK=1,ack=y+1,客户端的序列号seq=x+1,客户端进入ESTABLISHED状态;

4.服务端收到确认后,也进入ESTABLISHED状态。

TCP四次断开

【运维面试向】TCP三次握手和四次断开_第2张图片

FIN(关闭连接)

1.客户端发出连接释放报文,报文首部带FIN=1标志,序列号为seq=u,客户端进入FIN-WAIT-1状态;

2.服务端收到释放报文发出确认报文,ACK=1,ack=u+1,生成自己的序列号seq=v,服务器进入CLOSE-WAIT状态;

3.客户端收到服务端确认报文后,客户端进入FIN-WAIT-2状态,等待服务端发出连接释放报文;

4.服务端将最后数据发完后,向客户端发送连接释放报文,FIN=1,ack=u+1,有可能还有数据没有传完,设置序列号为seq=w,进入LAST-ACK(最后确认)状态;

5.客户端收到连接释放报文后,发出确认,ACK=1,ack=w+1,自己序列号seq=u+1,客户端进入TIME-WAIT状态;

6.服务端收到客户端发出的确认报文后,立即进入CLOSED状态。

 

 

你可能感兴趣的:(linux基础,运维面试)