TCP三次握手 四次挥手

三次握手:

最初,客户端服务器端都处于CLOSED状态
服务器处于LISTEN状态,等待客户端发送请求(SYN=1(标志位,意思是请求连接) seq=x(随机产生的数))
客户端发送请求后,进入SYN-SENT状态,等待服务器确认。
服务器端收到请求,进入SYN-RCVD状态,同时发送给客户端应答信号SYN=1 ACK=1 seq=y ack=x+1
客户端收到应答后,进入ESTABLISHED状态,同时给服务器端回复应答信号 ACK=1 seq=x+1 ack=y+1
服务器端收到应答,进入ESTABLISHED状态。

四次挥手:

 

最初,客户端服务器端都处于ESTABLISHED状态
客户端向TCP发送连接释放报文(FIN=1,序号seq=u),同时停止发送数据,进入终止等待状态1 FIN-WAIT-1
服务器端收到释放报文后,给出回复确认(ACK=1,确认号ack=u+1,序号seq=v),并进入关闭等待状态CLOSE-WAIT
客户端收到了来自服务器的确认,进入终止等待2状态FIN-WAIT-2,等待服务器发出释放报文
等到服务器端没有需要发给客户端的数据后,服务器端发出释放报文(FIN=1,ACK=1,序号seq=w,确认号ack=u+1)并进入最后确认状态,等待客户端的回复
客户端收到来自服务器端的释放报文后,回复确认(ACK=1,seq=u+1,ack=w+1)并进入时间等待状态TIME-WAIT
经过2MSL(最长报文段寿命Maximum Segment Lifetime)时间后,TCP彻底释放,两端再次进入CLOSED状态
用2MSL的时间,是为了保证客户端的最后一个报文ACK能送达服务器

原文地址:https://www.cnblogs.com/qifeng1024/p/11696082.html