首页/网络/抓包与流量分析速查/重复查询与 ID 变化判读
应用层报文判读71 条

重复查询与 ID 变化判读

DNS 无连接:同一问题的多次出现靠事务 ID 与时间区分——ID 相同多为重传,ID 不同是新查询;重传放大常用于评估解析器重试策略。

重复查询怎么区分

域名查询走的是无连接的用户数据报,同一问题的多次出现只能靠事务标识与时间戳来区分:标识相同通常属于超时重传,标识不同则更可能是应用层发起了新的查询。这个区分直接影响故障率统计——把应用重试也算进协议重传,会显著高估解析器的超时率。观察时把同一查询名的请求按时间排列,比较标识是否重复、响应是否出现多份,就能判断出重传形态。协议重传的间隔通常呈退避特征,而应用层重试的间隔由业务代码决定,形态更规律。

基本信息

协议依据RFC 1035(事务标识)
抓包字段dns.id、dns.qry.name、frame.time_relative
判别原则标识相同多为重传,标识不同多为新查询
统计影响混淆两类会高估解析超时率
常见诱因链路丢包、解析器过载、上游无响应

典型使用场景

  • 超时率统计:把协议重传与应用层重试分开计算
  • 解析器评估:通过重传间隔推断其重试策略
  • 故障定位:确认失败来自丢包还是上游不响应
  • 客户端行为分析:观察应用层重试的频率与规律
  • 容量评估:重传放大明显时重新评估解析器承载能力

排列与判读

排列与判读
dns.qry.name == "api.example.com"
# 按事务标识与相对时间排列同一问题的多次出现
# 标识相同、间隔递增 → 超时重传
# 标识不同 → 应用侧发起了新查询

重复查询判读

形态含义注意
相同标识多次出现协议层超时重传间隔通常呈退避特征
不同标识连续出现应用层重试间隔由业务代码决定
一次请求收到多份响应存在多条响应路径需结合网络结构判断,不宜直接判为重复
连续出现相同标识也可能是负载均衡之后两条响应路径各自回包,先看响应数量再定性,不要直接判定为重复查询。
统计超时率时必须把应用层重试剔除,否则被高估的故障率会误导容量规划与解析器选型。

易错点

  • 把应用层重试与协议重传混在一起统计会明显高估超时率,两类指标必须拆开
  • 看到相同标识就判定为重传可能误判:多路径或负载均衡场景下会出现多份响应
  • 忽略间隔特征就难以区分两类重试,协议重传呈退避而应用重试更规律,这是最省事的判别点
  • 只统计失败次数而不看重传放大比例,无法判断解析器是否处于过载状态

数据来源与参考

  • RFC 1035(事务 ID)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌