一 TCP状态转换图

服务器和端口端TCP交互图解

二 TCP的各种状态

状态

说明

CLOSED

没有连接,表示初始状态

LISTEN

表示服务器端的某个socket处于监听状态,可以接收连接。服务端收到被动打开,等待SYN

SYN_SENT

客户端socket执行CONNECT连接时,客户端已发送SYN,等待服务端的ACK

SYN_RCV

服务端已发送SYN+ACK,等待客户端的ACK

ESTABLISHED

表示连接已经建立了,数据传送在进行

FIN_WAIT_1

第一个FIN已发送,等待对端的ACK

FIN_WAIT_2

第一个FIN的ACK已收到,等待对端的FIN,实际上该状态下的socket,表示半连接,即有一方要求关闭连接,但另外还告诉对方,我暂时还有点数据需要传送给你,请稍后再关闭连接。

TIME_WAIT

收到对端的FIN,已发送ACK,等待2MSL超时。如果在FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入TIME_WAIT状态,而无需经过FIN_WAIT_2状态

CLOSING

如果双方几乎同时关闭一个socket,那么就出现同时发送FIN报文的情况,就会出现CLOSING状态,表示双方都正在关闭

CLOSE_WAIT

收到第一个FIN,已发送ACK。接下来要考虑的是查看是否还有数据发送给对方,如果没有,就可以关闭socket了,发送FIN报文给对方,即关闭连接。

LAST_ACK

已发送第二FIN,等待ACK

三 连接建立和终止

服务器和端口端TCP交互图解

四 使用三向握手的连接终止

服务器和端口端TCP交互图解

五 同时打开

服务器和端口端TCP交互图解

六 同时关闭

服务器和端口端TCP交互图解

七 拒绝连接

服务器和端口端TCP交互图解

八 异常终止连接

服务器和端口端TCP交互图解

 

相关文章:

  • 2022-12-23
  • 2021-10-05
  • 2022-01-10
  • 2022-12-23
  • 2021-11-08
  • 2021-04-02
  • 2021-07-18
猜你喜欢
  • 2021-09-24
  • 2022-12-23
  • 2021-06-08
  • 2022-02-21
  • 2021-12-06
  • 2021-10-07
  • 2022-01-17
相关资源
相似解决方案