首页/网络/协议速查/FIN 与 RST 对比:正常关闭 vs 异常终止
TCP 与 UDP54 条

FIN 与 RST 对比:正常关闭 vs 异常终止

FIN 是礼貌分手(等对方处理完),RST 是当场掀桌(立即释放缓冲);负载均衡与代理场景尤其要分清两者影响。

协议速查网络更新于 2026-10-12

对比项

对比项FIN 关闭RST 终止
语义我不再发数据,仍可收立即放弃连接
对端表现读到 EOF,可优雅收尾read 报 ECONNRESET,未读数据丢失
缓冲数据正常发送可能直接丢弃
典型场景正常 close()端口拒绝、崩溃、SO_LINGER 0、重置

抓包区分

抓包区分
tcpdump -nn 'tcp[tcpflags] & (tcp-fin|tcp-rst) != 0' -c 20
HTTP/1.1 客户端收到 RST 会丢失未读完的响应体,这是「偶发响应截断」的常见来源。

易错点

  • 代理转发时后端提前 close(未读完请求体)会回 RST,前端应保持连接读到响应结束再关

数据来源与参考

  • RFC 9293 §3.5
  • man 7 socket

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌