服务端主动关闭连接,经历了[FIN,ACK],[ACK],[FIN,ACK],[ACK],接着服务端报[RST,ACK], 这是啥情况呢?

admin 2026-01-07 02:34:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章解析服务端在四次挥手后仍发RST的原因:高并发场景下TIME_WAIT堆积会耗尽内存,启用LingerTimer可在2秒内强制Reset释放连接,但可能丢数据;timeout=0则直接RST,实现先优雅后暴力快速回收资源。 综合评分: 82 文章分类: 网络安全,安全建设,解决方案,网络协议


cover_image

服务端主动关闭连接,经历了[FIN,ACK],[ACK], [FIN,ACK],[ACK],接着服务端报[RST,ACK], 这是啥情况呢?

原创

车小胖谈网络

车小胖谈网络

2026年1月6日 16:32 上海

第一包服务端主动关闭连接[FIN,ACK], 第4包服务端确认,第4包和第5包时间差为几毫秒。

题主的意思是,既然已经使用了”4-way handshake”完成了断开TCP连接,Server端的TCP为何还要发送Reset报文,将已经断开的TCP连接Reset?

Server主动(active)关闭连接,而Client处于被动(Passive)关闭连接。

依据TCP状态机,当Server发出自己的ACK(图片4th)时,它的状态是什么?

TIME_WAIT

大约多久能够完全释放该TCP连接的所有内存?

60秒-120秒不等。

如果有成千上万的Client,都需要Server端来主动关闭连接,在繁忙的Server上可能会有成千上万的TCP连接处于TIME_WAIT状态,无法得到及时释放。这将严重消耗Server端的内存资源。

可否有一个既能让Server主动关闭连接,但是又能在可控(1-2秒)时间内将TIME_WAIT状态的TCP连接完全释放的解决方案?

有的,它的名字是“Linger Timer”

linger timer = enabled,timeout=2秒。

当Server主动关闭连接时,依然是标准的”4-way handshake”,但是会在发出FIN的时刻,启动linger timer,timeout=2秒。

如果在2秒之内完成正常的关闭连接,自然是最好的,因为Client已经确保收到所有的data。

然后到达2秒时定时器超时,Server端的TCP发出Reset报文。

一方面,Server端的TCP将TIME_WAIT的连接完全释放

另一方面,Server端的TCP将Reset报文发出。

这个Reset报文就是图片中的5th packet。它由linger timer触发并发出。

值得庆幸的是,由于Reset报文到达Client时,TCP连接已经完全释放(closed),故Client端的TCP,用五元组match,结果为NULL,故默默丢弃,丝毫不受影响。

如果不是那么幸运,在linger timer超时并发出Reset报文时,”4-way handshake”没有完成,当Reset报文到达client时,会发成什么?

Client用五元组,matched到该TCP连接,无论socket receive/send queue有没有data,都会清空。这样就会造成数据的丢失。

当然还有更暴力的,linger timer = enabled,timeout=0秒。

当Server主动关闭连接时,直接发Reset报文,不仅释放自己的内存,还释放Client的内存。如果Client还有待Receive/send的数据,这些数据将会丢失。

综述

Linger timer是一种先软(graceful)后硬(rude)关闭TCP连接的方法。其最终目标是尽快释放掉处于TIME_WAIT状态的TCP连接,或者直接Reset。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:车小胖谈网络 车小胖谈网络《服务端主动关闭连接,经历了[FIN,ACK],[ACK], [FIN,ACK],[ACK],接着服务端报[RST,ACK], 这是啥情况呢?》

网络协议—DNS协议 网络安全文章

网络协议—DNS协议

文章总结: 文章以抓包实例拆解DNS完整流程:从浏览器输入域名到本地缓存、递归查询根/顶级域/权威服务器,最终返回IP并建立连接;详细对比请求与响应报文的以太网
评论:0   参与:  0