网络协议深度解析:除了四次挥手,TCP还有哪些断开连接的方式?原理+流程图+场景全解

张开发
2026/4/6 20:16:06 15 分钟阅读

分享文章

网络协议深度解析:除了四次挥手,TCP还有哪些断开连接的方式?原理+流程图+场景全解
网络协议深度解析除了四次挥手TCP还有哪些断开连接的方式原理流程图场景全解一、前言二、前置知识四次挥手优雅关闭回顾2.1 标准四次挥手优雅关闭三、TCP 非四次挥手断开连接的 4 种方式必考3.1 方式1RST 强制复位最常用、最重要3.1.1 什么是 RST 报文3.1.2 RST 关闭流程图3.1.3 触发场景3.1.4 特点3.2 方式2进程异常退出崩溃/断电/杀进程3.2.1 触发场景3.2.2 关闭流程3.2.3 特点3.3 方式3TCP Keep-Alive 超时断开保活机制3.3.1 原理3.3.2 流程图3.3.3 适用场景3.4 方式4半关闭Half-Close单向关闭3.4.1 流程3.4.2 特点四、5 种 TCP 断开连接方式对比表面试必背五、高频面试题直接背诵5.1 TCP 如何实现强制关闭5.2 进程kill -9会触发四次挥手吗5.3 RST 关闭有什么特点5.4 除了挥手还有哪些关闭方式六、总结6.1 核心结论6.2 一句话记忆文末小贴士The Begin点点关注收藏不迷路一、前言在TCP连接关闭的知识体系中四次挥手优雅关闭是我们最熟悉的标准方式但它并非TCP断开连接的唯一手段。在实际开发与网络环境中进程崩溃、网络中断、强制关闭、异常退出等场景都会触发非四次挥手的连接断开方式。这些方式统称为强制关闭/异常断开是面试、网络排查、服务稳定性优化中的高频考点。本文将带你全面掌握TCP除了四次挥手之外的所有断开连接方式包含原理、流程图、适用场景、优缺点彻底打通TCP连接关闭全知识。二、前置知识四次挥手优雅关闭回顾2.1 标准四次挥手优雅关闭FINACKFINACK主动关闭方被动关闭方TIME_WAIT特点安全、可靠、数据不丢失、双方协商关闭。适用正常业务结束、程序正常退出。但在异常、紧急、故障场景下TCP提供了更粗暴、更快速的关闭方式。三、TCP 非四次挥手断开连接的 4 种方式必考3.1 方式1RST 强制复位最常用、最重要这是除四次挥手外最核心的关闭方式属于强制立即断开。3.1.1 什么是 RST 报文标志位RST1含义复位连接、强制关闭、立即释放资源无需ACK、无需协商、直接生效3.1.2 RST 关闭流程图RST 复位报文发送方接收方立即关闭连接释放资源无TIME_WAIT3.1.3 触发场景端口未监听收到连接请求收到不存在的连接报文程序调用强制关闭SO_LINGER置0队列数据丢弃拒绝接收3.1.4 特点✅极速关闭无等待、无TIME_WAIT✅立即释放端口与资源❌可能丢失未发送完的数据❌粗暴不可靠3.2 方式2进程异常退出崩溃/断电/杀进程程序不是正常退出而是意外终止内核会强制接管关闭连接。3.2.1 触发场景程序crash崩溃kill -9强制杀进程服务器断电、死机、重启虚拟机/容器强制销毁3.2.2 关闭流程渲染错误:Mermaid 渲染失败: Parse error on line 4: ... C -- D[发送RST给对端 | 直接断开] D -- E[ -----------------------^ Expecting SQE, TAGEND, UNICODE_TEXT, TEXT, TAGSTART, got PIPE3.2.3 特点无FIN报文、无四次挥手由内核强制清理对端会报Connection reset by peer数据可能丢失3.3 方式3TCP Keep-Alive 超时断开保活机制双方都不发FIN但连接早已死亡TCP靠保活定时器自动清理。3.3.1 原理开启TCP保活后连接空闲一段时间内核自动发送探测包无响应 → 连续探测全部失败 →内核强制断开3.3.2 流程图是连接空闲保活计时器触发发送探测包无响应?多次重试重试超时内核强制关闭连接3.3.3 适用场景客户端意外断网、死机、离线网络中断但未发送任何报文死连接、僵尸连接3.4 方式4半关闭Half-Close单向关闭只关闭发送方向不关闭接收方向不是完全断开属于特殊关闭方式。3.4.1 流程一方调用shutdown()发送FIN关闭自己的发送通道仍然可以接收对方数据对方发完数据再发FIN才完全关闭3.4.2 特点只关闭单向数据流常用于文件上传、大传输不属于完全断开但也是挥手之外的标准关闭API四、5 种 TCP 断开连接方式对比表面试必背关闭方式报文可靠性速度TIME_WAIT场景四次挥手FINACK最高优雅慢有正常关闭RST复位RST低强制极快无强制关闭、异常进程崩溃内核处理无立即无崩溃、断电、kill -9KeepAlive探测包中慢无死连接、离线半关闭FIN高中有单向关闭五、高频面试题直接背诵5.1 TCP 如何实现强制关闭发送RST复位报文或设置SO_LINGER0。5.2 进程kill -9会触发四次挥手吗不会内核直接回收发送RST或直接断开。5.3 RST 关闭有什么特点无TIME_WAIT、极速、强制、可能丢数据。5.4 除了挥手还有哪些关闭方式RST复位、进程崩溃、保活超时、半关闭。六、总结6.1 核心结论四次挥手是优雅关闭但不是唯一方式TCP支持RST强制复位、崩溃关闭、保活超时、半关闭RST是最常用的强制关闭手段生产环境大量异常断开RST、保活超时、进程崩溃理解这些方式才能真正掌握网络排障6.2 一句话记忆四次挥手是“礼貌再见”RST是“直接挂电话”崩溃是“突然断电”保活是“没人说话自动挂断”。文末小贴士在Wireshark中过滤查看RST报文tcp.flags.reset 1你会发现线上服务大量连接都是RST关闭而非四次挥手。The End点点关注收藏不迷路

更多文章