美文网首页
TCP状态转换

TCP状态转换

作者: 是一动不动的friend | 来源:发表于2017-11-27 20:10 被阅读21次
image.png
(1)CLOSED:

起始点,在超时或者连接关闭时进入此状态。

(2)LISTEN:

Server端在等待连接时的状态,Server端为此要调用Socket、bind、listen函数,就能进入此状态。这称为应用程序被动打开(等待客户端来连接)。

(3)SYN-SENT:

客户端发起连接,发送SYN给服务器端。如果服务器端不能连接则直接进入CLOSED状态。

(4)SYN-RCVD:

与3对应,服务器端接受客户端的SYN请求,服务器端由LISTEN状态进入SYN-RCVD状态。同时服务器端要回应一个ACK,发送一个SYN给客户端;另外一种情况是,客户端在发起SYN的同时接收到服务器端的SYN请求,客户端回由SYN-SENT转换到SYN-RCVD状态。

(5)ESTABLISHED:

服务端和客户端在完成3次握手后进入状态,说明已经可以开始传输数据了。

(6)FIN-WAIT-1:

主动关闭的一方,由状态5进入此状态。具体动作是发送FIN给对方。

(7)FIN-WAIT-2:

主动关闭的一方,接收到对方的FIN ACK,进入此状态。由此不能再接收对方的数据,但是能够向对方发送数据。

(8)CLOSE-WAIT:

接收到FIN以后,被动关闭的一方进入此状态。具体动作是在接收到FIN的同时发送ACK。

(9)LAST-ACK:

被动关闭的一方,发起关闭请求,由状态8进入此状态。具体动作是发送FIN给对方,同时在接收到ACK时进入CLOSED状态。

(10)CLOSING:

两边同时发起关闭请求时,会由FIN-WAIT-1进入此状态。具体动作是接收到FIN请求,同时响应一个ACK。

(11)TIME-WAIT:

这个状态比较复杂,也是我们最常见的一个连接状态。有3个状态可以转化为此状态。

-由FIN-WAIT-2转换到TIME-WAIT,具体情况是:在双方不同时发起FIN的情况下,主动关闭的一方在完成自身发起的关闭请求后,接收到被动关闭一方的FIN后进入的状态。
-由CLOSING转换到TIME-WAIT,具体情况是:在双方同时发起关闭,都做了发起FIN的请求,同时接收到了FIN并做了ACK的情况下,这时就由CLOSING状态进入TIME-WAIT状态。
-由FIN-WAIT-1,具体情况是:同时接收到FIN(对方发起)和ACK(本身发起的FIN回应),它与CLOSING转换到TIME-WAIT的区别在于本身发起的FIN回应的ACK先于对方的FIN请求到达,而由CLOSING转换到TIME-WAIT先到达。

相关文章

  • TCP客户端和服务端相关状态说明

    TCP连接的状态 首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素...

  • tcp状态转换

    tcp状态转换 三次握手: 1.服务端处于listen状态2.客户端处于closed状态,发送syn报文,然后状态...

  • TCP状态转换

    (1)CLOSED: 起始点,在超时或者连接关闭时进入此状态。 (2)LISTEN: Server端在等待连接时的...

  • TCP状态转换

    一、TCP状态转换 端口一开始都是关闭状态 服务器调用accept()函数会把端口从CLOSTED变为LISTEN...

  • TCP状态转换图

  • TCP连接的建立和终止

    目录(1)三次握手(2)四次挥手(3)TCP状态转换图(4)TCP连接三次握手+四次挥手+状态转换 一:三次握手 ...

  • day 27 操作系统基础网络章节

    TCP/UDP协议说明 TCP协议三次握手过程原理 TCP协议四次挥手过程原理 问题: TCP十一种状态集转换 三...

  • TCP UDP协议两个重要的网络原理

    TCP UDP协议 01. TCP协议中11种状态集转换 三次握手的过程中有哪些状态第一步:服务端 开启网络服务,...

  • TCP状态转换过程图

    自己绘制了一份TCP三次握手,数据读写,四次挥手期间的状态转换过程图,感觉比较清晰。后续如果有时间再补一些说明。

  • TCP连接建立和断开

    面试了几家公司,发现TCP是常问的内容,总结一波。说得不对的地方,欢迎评论指出。 1. TCP状态转换图 这张图在...

网友评论

      本文标题:TCP状态转换

      本文链接:https://www.haomeiwen.com/subject/oworbxtx.html