TCP的11种时序状态与C/S连接过程对应

Posted 清水寺扫地僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP的11种时序状态与C/S连接过程对应相关的知识,希望对你有一定的参考价值。

C/S连接过程对应
TCP的11种时序状态
**LISTEN**:等待从任何远端TCP 和端口的连接请求。
**SYN_SENT**:发送完一个连接请求后等待一个匹配的连接请求。
**SYN_RECEIVED**:发送连接请求并且接收到匹配的连接请求以后等待连接请求确认。
**ESTABLISHED**:表示一个打开的连接,接收到的数据可以被投递给用户。连接的数据传输阶段的正常状态。
**FIN_WAIT_1**:等待远端TCP 的连接终止请求,或者等待之前发送的连接终止请求的确认。
**FIN_WAIT_2**:等待远端TCP 的连接终止请求。
**CLOSE_WAIT**:等待本地用户的连接终止请求。
**CLOSING**:同时关闭才会发生的情形,等待远端TCP 的连接终止请求确认。
**LAST_ACK**:等待先前发送给远端TCP 的连接终止请求的确认(包括它字节的连接终止请求的确认)
**TIME_WAIT**:等待足够的时间过去以确保远端TCP 接收到它的连接终止请求的确认。
**CLOSED**:不在连接状态(这是为方便描述假想的状态,实际不存在)

TIME_WAIT 两个存在的理由:

  • 可靠的实现tcp全双工连接的终止;
  • 允许老的重复分节(旧的相同端口号IP地址的连接化身(incarnation))在网络中消逝;

FIN_WAITTIME_WAIT状态有三种形式:

  • 正常关闭,主动关闭请求端发送FIN后,依次接收到来自被动端传来的ACK(转为FIN_WAIT2)、FIN,并发送ACK给被动端(转为TIME_WAIT);
  • 同时关闭,主动关闭请求段发送FIN时,相对的被动关闭请求端也申请主动关闭(接收到FIN,回复ACK)(转换为CLOSING),再接受一ACK关闭连接(转为TIME_WAIT);
  • 正常关闭,但被动关闭请求端同时发来了ACK确认和FIN请求,则回复ACK即可,直接跨入TIME_WAIT状态;

对于SYN_RCVD状态下的服务器,其若是接收到设置了RST位的分节,则表明连接搁置,返回到LISTEN状态。


以上是关于TCP的11种时序状态与C/S连接过程对应的主要内容,如果未能解决你的问题,请参考以下文章

[svc]tcp三次握手四次挥手&tcp的11种状态(半连接)&tcp的time-wait

TCP的三次握手和四次挥手(转)

tcp连接listen的backlog剖析

必看浅谈TCP协议连接的11种状态

TCP三次握手和四次挥手以及11种状态

C/S模型-TCP