TCP系列-状态机

  • 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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容