当前位置: 首页 > news >正文

tcp连接的11种状态及常见问题。

tcp链接整体流程,如下图所示:
在这里插入图片描述

TCP协议在连接的建立和终止过程中涉及11种状态,这些状态反映了连接的不同阶段。以下是每种状态的详细说明:


1. CLOSED

  • 初始状态,表示没有活动的连接或连接已完全关闭。
  • 当应用程序关闭连接或终止后进入此状态。

2. LISTEN

  • 服务器端状态,表示正在等待客户端的连接请求(SYN报文)。
  • 服务器通过调用listen()进入此状态,准备接受新的连接。

3. SYN_SENT

  • 客户端状态,客户端发送SYN报文后进入此状态,等待服务器的SYN-ACK响应。
  • 触发条件:客户端调用connect()发起连接。

4. SYN_RECEIVED (SYN_RCVD)

  • 服务器端状态,服务器收到客户端的SYN报文后,发送SYN-ACK并等待客户端的ACK确认。
  • 若未收到ACK,服务器可能重传SYN-ACK。

5. ESTABLISHED

  • 连接已建立,双方可以自由传输数据。
  • 客户端收到服务器的SYN-ACK后进入此状态;服务器收到客户端的ACK后也进入此状态。

6. FIN_WAIT_1

  • 主动关闭方(如客户端) 发送FIN报文后进入此状态,等待对方的ACK或FIN响应。
  • 可能直接进入FIN_WAIT_2(收到ACK)或CLOSING(同时收到FIN)。

7. FIN_WAIT_2

  • 主动关闭方 已收到对FIN的ACK,等待对方发送FIN报文以终止连接。
  • 此时仍可能接收数据,但不再发送数据。

8. CLOSE_WAIT

  • 被动关闭方(如服务器) 收到对方的FIN报文后进入此状态,发送ACK确认,并等待应用程序关闭连接。
  • 应用程序需调用close()发送FIN以进入后续状态。

9. CLOSING

  • 罕见状态,双方同时发起关闭(均发送FIN报文),等待对方的ACK。
  • 当双方同时处于FIN_WAIT_1并交换FIN时进入此状态。

10. LAST_ACK

  • 被动关闭方 发送自己的FIN报文后进入此状态,等待对方的最终ACK确认。
  • 收到ACK后进入CLOSED状态。

11. TIME_WAIT

  • 主动关闭方 收到对方的FIN并发送ACK后进入此状态,等待2MSL(最大报文生存时间)以确保所有报文消失。
  • 防止旧连接的延迟报文干扰新连接。

状态转换图

  • 连接建立(三次握手)
    CLOSED → SYN_SENT → ESTABLISHED(客户端)
    CLOSED → LISTEN → SYN_RCVD → ESTABLISHED(服务器)

  • 连接终止(四次挥手)
    ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT → CLOSED(主动关闭方)
    ESTABLISHED → CLOSE_WAIT → LAST_ACK → CLOSED(被动关闭方)


关键点

  • TIME_WAIT 是主动关闭方的最终状态,确保可靠终止。
  • CLOSINGLAST_ACK 处理异常关闭场景。
  • 实际应用中,可通过netstat命令查看TCP连接状态。

理解这些状态有助于诊断网络问题(如连接泄漏、端口占用等)。

相关文章:

  • Layui 列表中switch按钮的使用
  • 负载均衡 方式
  • 聚焦工控物联网网关
  • Vue3项目,蛋糕商城系统
  • 基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)
  • 【mysql部署】在ubuntu22.04上安装和配置mysql教程
  • python和pycharm 和Anaconda的关系
  • 基于 Spring Boot 的社区居民健康管理系统部署说明书
  • Qt:多元素控件
  • 根据CAN通讯矩阵使用CANoe生成DBC
  • Ubuntu20.04安装IsaacSim4.5与IsaacLab2.0
  • C++中的.*运算符
  • 23种设计模式 - 抽象工厂模式
  • 23种设计模式 - 工厂方法模式
  • 智能选路+NAT实验
  • Linux驱动学习(二)--字符设备
  • 力扣-二叉树-700 二叉搜索树中的搜索
  • Springboot接口返回的时间和数据库差了八小时
  • ctfshow web入门 web11-web24
  • Android GreenDAO 适配 AGP 8.0+
  • 甘怀真:天下是神域,不是全世界
  • 央行行长:债券市场“科技板”准备工作基本就绪,目前近百家市场机构计划发行超三千亿科技创新债
  • 体坛联播|国米淘汰巴萨晋级欧冠决赛,申花击败梅州避免连败
  • 上海国际电影节特设“走进大卫·林奇的梦境”单元
  • 《蓦然回首》:现代动画的践行与寓言
  • 工信部:加强通用大模型和行业大模型研发布局