TCP 状态转换

123 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

全局

在这里插入图片描述

建立连接

在这里插入图片描述

Listen

LISTEN: server处于监听状态,等待client连接。

在这里插入图片描述

SYN-SENT

SYN-SENT:表示client已发送SYN报文,等待server的第2次握手。

在这里插入图片描述

SYN-RCVD

SYN-RCVD:表示server接受到了SYN报文,当收到client的ACK报文后,它会进入到ESTABLISHED状态。 在这里插入图片描述

ESTABLISHED

ESTABLISHED:表示连接已经建立。

释放连接

在这里插入图片描述

FIN-WAIT-1

FIN-WAIT-1:表示想主动关闭连接。向对方发送了FIN报文,此时进入到FIN-WAIT-1状态。

在这里插入图片描述

CLOSED-WAIT

CLOSE-WAIT: 表示在等待关闭。当对方发送 FIN 给自己,自己会回应一个ACK报文给对方,此时则进入到CLOSE-WAIT状态在此状态下,需要考虑自己是否还有数据要发送给对方,如果没有,发送FIN报文给对方。

在这里插入图片描述

FIN-WAIT-2

FIN-WAIT-2:只要对方发送ACK确认后,主动方就会处于FIN-WAIT-2状态,然后等待对方发送FIN报文。

在这里插入图片描述

CLOSING

CLOSING:一种比较罕见的例外状态。表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。如果双方几乎在同时准备关闭连接的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态表示双方都正在关闭连接。

在这里插入图片描述

LAST-ACK

LAST-ACK:被动关闭一方在发送FIN报文后,最后等待对方的ACK报文 。当收到ACK报文后,即可进入CLOSED状态了

在这里插入图片描述

FIN-WAIT-1

如果FIN-WAIT-1状态下,收到了对方同时带FIN标志和ACK标志的报文时 ,可以直接进入到TIME-WAIT状态,而无须经过FIN-WAIT-2状态

在这里插入图片描述

CLOSED

CLOSED: client处于关闭状态。

在这里插入图片描述