首页/网络/抓包与流量分析速查/TCP 超时与拒绝的区别
TCP 流分析82 条

TCP 超时与拒绝的区别

超时=没有任何回应(路径丢弃/黑洞),需要等待重试周期;拒绝=RST 快速返回(端口问题)。两者在抓包上的表现与排查路径完全不同。

超时与拒绝的区别

建连失败只有两种典型形态:超时是发出 SYN 后完全没有回应,需要等待重试与超时周期,成因多为策略丢弃、路由黑洞或目标不可达;拒绝是 SYN 之后立即收到 RST,说明路径可达但端口没有监听或被显式拒绝。两者在抓包上的表现与排查路径完全不同,先分类再深入效率最高。

基本信息

分类依据首个 SYN 之后是否有应答,以及应答出现的时间
超时表现SYN 反复重传,全程无回应
拒绝表现SYN 之后立即收到 RST
超时成因策略丢弃、路由黑洞、目标不可达
拒绝成因端口未监听、策略显式拒绝

典型使用场景

  • 快速判断「连不上」是网络路径问题还是服务问题
  • 区分防火墙 DROP 与 REJECT 策略的差异
  • 排查应用日志报超时但实际是建连被拒绝的情况
  • 评估跨网络访问失败的定位优先级
  • 给他人反馈时用统一术语描述失败形态

区分方法

区分方法
timeout 5 bash -c 'cat < /dev/tcp/10.0.0.9/80' && echo ok || echo fail   # 快速探测连通性
tcpdump -nn -i eth0 'host 10.0.0.9 and tcp port 80' -c 20                 # 同时抓包
ss -lnt | grep ':80'                                                      # 服务端确认是否监听
# 结果为 fail 时看抓包:SYN 重传为超时,SYN 后立即 RST 为拒绝

对比与排查

现象抓包表现排查方向
超时SYN 重传、无任何回应策略是否 DROP、路由是否黑洞
拒绝SYN 后立即 RST端口监听与显式拒绝策略
偶发超时多数成功、少数重传后失败统计频率与目标分布
秒连秒断RST 很快返回服务状态与负载均衡健康检查
应用日志里的「超时」可能实际是建连被拒绝后被库层包装的结果,判定以抓包为准。
偶发失败先统计发生频率与目标分布,再决定是查设备策略还是查服务状态。

补充要点

  • 先分类再深入:两类失败的后续排查步骤几乎没有交集
  • 超时场景优先核对策略设备的丢弃计数与路由表项
  • 拒绝场景优先确认服务监听状态与访问控制规则
  • 偶发失败先统计发生比例与目标分布,避免按个案调整配置
同一目标上两种失败同时存在时分别统计次数,通常能看出是路径与端口两类问题叠加。

易错点

  • 凭应用日志判定失败类型:库层会统一包装成超时,与抓包结果可能矛盾
  • 只在一端抓包:超时可能需要两端对照才能确认是路径丢弃还是目标主机问题
  • 把策略 DROP 改成 REJECT 以求「快点失败」,却忽略了 REJECT 会向扫描方暴露端口状态

数据来源与参考

  • RFC 9293(RST)
  • RFC 1122(连接语义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌