TCP的11种时序状态与C/S连接过程对应
Posted 清水寺扫地僧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP的11种时序状态与C/S连接过程对应相关的知识,希望对你有一定的参考价值。
|
|
**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_WAIT
到TIME_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连接过程对应的主要内容,如果未能解决你的问题,请参考以下文章