- CLOSED (关闭): 这是所有TCP连接的初始状态,表示没有连接活动。
- LISTEN (监听): 服务器端进入此状态,表示已准备好接受来自客户端的连接请求。它正在监听指定的端口。
- SYN_SENT (发送SYN): 客户端主动打开(Active Open),发送SYN(同步序列号)报文段后进入此状态,等待服务器的SYN-ACK响应。
- SYN_RECEIVED (收到SYN): 服务器端收到客户端的SYN报文段后,发送SYN-ACK(同步-确认)报文段,并进入此状态,等待客户端的ACK响应。
- ESTABLISHED (已建立): 客户端收到服务器的SYN-ACK,并发送ACK报文段后,双方都进入此状态。表示TCP成功建立连接,可以开始双向数据传输。
- FIN_WAIT_1 (等待FIN1): 主动关闭方(通常是客户端)发送FIN(结束)报文段后进入此状态,等待对方的ACK。
- CLOSE_WAIT (等待关闭): 被动关闭方(通常是服务器)收到FIN报文段后,发送ACK报文段,并进入此状态。此时,它会通知应用程序,数据传输已结束,等待应用程序关闭连接。
- FIN_WAIT_2 (等待FIN2): 主动关闭方收到对方的ACK报文段后,进入此状态,等待对方发送FIN报文段。
- LAST_ACK (最后确认): 被动关闭方在应用程序关闭连接后,发送自己的FIN报文段,并进入此状态,等待对方的最后ACK。
- TIME_WAIT (时间等待): 主动关闭方收到对方的FIN报文段后,发送ACK报文段,并进入此状态。这是一个2MSL(Maximum Segment Lifetime,最大报文段生命周期)的等待时间,以确保最后一个ACK报文段能够到达对方,并让旧的重复报文段在网络中消失。
-
CLOSED (关闭): 经过TIME_WAIT后,或在其他异常情况下,连接最终回到CLOSED状态。
image.png
TCP系列-状态机
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. TCP协议 1.1 TCP数据包头 要了解三次握手和四次挥手,首先需要了解下TCP数据包头的结构,如下: 源...
- 1.TCP和UDP的区别 (1)TCP TCP 提供面向连接的服务:在传送数据之前必须先建立连接,数据传送结束后要...