计算机网络 -- TCP的四次挥手

计算机网络 -- TCP的四次挥手

参考:https://blog.csdn.net/qq_38950316/article/details/81087809

关于Tcp的四次挥手:

作用: 终止连接。

一)、TCP四次挥手的步骤:

1.刚开始客户端和服务端都处于ESTAB-FILSHED可连接状态

2.客户端主动关闭,服务端被动关闭。

3. 第一次挥手,客户端发送连接释放报文,并停止发送数据,报文头部,FIN =1, seq =u(seq是前边已经传送过的数据的最后一个字节加1), 此时,客户端进入FIN-WAIT-1(终止等待1状态),客户端停止向服务端发送数据。

4.第二次挥手,服务器接收到连接释放报文,并发出确认报文,ACK =1, seq =v, ack =u+1, 此时服务器进入CLOSE-WAIT(关闭等待状态),TCP服务器通知高层应用程序,客户端向服务器的方向就释放了,处于半关闭状态,此时,客户端已经没有数据要发送了,但若服务器有数据发送,客户端仍然可以接收。

5.客户端接收到服务器的确认报文,进入FIN-WAIT-2(终止等待2状态),等待服务端发送连接释放报文,接收服务器发送的最后的数据。

6.第三次挥手,服务器的最后的数据发送完毕,就向客户端发送连接释放报文,FIN = 1, ACK =1, seq =w, (解释一下seq =u,当处于半关闭状态时服务器可能还向客户端送了一些数据 ),此时,服务器处于LAST-ACK(最后确认状态),等待客户端确认。

7.第四次挥手,当客户端接收到服务器的连接释放报文,必须发出确认,ACK =1, seq = u+1, ack = w+1, 客户端进入TIME-WAIT(等待状态),等待时间为2*MSL(最长报文段性命), 当客户端撤掉相应的TCB后,才进入CLOSED状态。

8.服务器只要收到客户端的确认就立即进入CLOSED关闭状态,服务器结束连接的时间要早于客户端结束连接的时间。

二)、简易的描述四次挥手

第一次挥手,客户端向服务器发送连接释放报文,FIN =1,seq =u,服务器进入FIN-WAIT-1(终止等待1状态)

第二次挥手,服务器接收到客户端的连接释放报文,向客户端发送确认报文,ACK =1, seq =v, ack = u+1,此时,服务器进入CLOSED-WAIT(等待关闭状态),客户端接收到服务器的确认报文后进入FIN-WAIT-2(终止等待2状态),此时的连接处于半关闭状态,结束了客户端向服务器方向的数据传送,等待服务器发送连接释放报文,同时接收服务器端传送的数据。

第三次挥手,服务器向客户端发送连接释放报文,FIN =1, seq =w, 此时服务器进入LAST-ACK(最后确认状态)

第四次挥手,客户端接收到服务器的连接释放报文,向服务器发出确认报文,ACK =1,seq =u+1, ack = w+1 ,客户端进入WAIT-TIME(等待状态,一般等待2*MSL,MSL:最长报文段性命),而服务器一接收到确认报文就结束连接,进入CLOSED(结束连接状态)服务器结束连接的时间要早于客户端结束连接的时间

金麟岂能忍一世平凡 飞上了青天 天下还依然
原文地址:https://www.cnblogs.com/Auge/p/12193416.html