TCP 流分析82 条

TCP RST 来源判断

根据 RST 的上下文(应答的序列号、是否跟随 SYN、TTL 差异)判断 RST 来自服务端内核、中间设备还是另一侧应用;是"连接被重置"定位的关键。

用途判断复位包的实际发出者
手段对比 RST 的 TTL/时延与正常包;结合两端抓包

典型场景

典型场景
建连即 RST:端口未监听或策略拒绝(REJECT)
传输中 RST:进程崩溃/主动 abort/中间设备钳制
疑似中间设备:TTL 与链路时延和正常回包明显不同
RST 精确匹配例:tcp.flags.rst == 1 && tcp.flags.ack == 0(无 ACK 的 RST 多为链路中间原因)。

易错点

  • RST 携带的序列号要跟被拒绝的包对上,随机序列号的 RST 值得怀疑来源
  • 应用层主动 abort(SO_LINGER=0)也会发 RST,只看抓包分不出内核还是应用意图,需结合程序行为

数据来源与参考

  • RFC 9293(RST 处理)
  • Wireshark User's Guide
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌