首页/网络/抓包与流量分析速查/tcpdump 时间戳格式选项

tcpdump 时间戳格式选项

控制时间戳显示:-t 不打印时间、-tt 打印 Unix 时间戳、-ttt 显示相对上一包的间隔、-tttt 带日期、-ttttt 相对首包。分析时延与重传时相对时间最有用。

时间戳选项在做什么

tcpdump 默认只打印时分秒与微秒,且不带日期。需要更细致的时间语义时用这一组选项:-t 完全不打印时间;-tt 打印 Unix 时间戳(整数秒加小数);-ttt 打印相对上一包的间隔;-tttt 带日期;-ttttt 打印相对首包的耗时。排查时延、重传与空闲间隔时,-ttt 的相对间隔最直观;与业务日志对齐时间必须用 -tttt。

基本信息

-t不打印时间戳
-ttUnix 时间戳,形如 1760000000.123456
-ttt相对上一包的间隔,单位秒
-tttt带日期的完整时间戳
-ttttt相对首包的累计耗时

典型使用场景

  • 看重传间隔:相对时间能立刻暴露是否接近一个重传超时
  • 与业务日志按时间对齐:带日期的时间戳可以直接和日志逐条比对
  • 分析响应时延:请求与响应之间的时间差不用手工计算
  • 排查空闲断连:看最后一次数据与本端关闭之间的间隔
  • 做长时间抓包的时间轴标注:相对首包耗时便于描述事件顺序
  • 导出用于报告:固定格式的时间戳能避免跨时区歧义

常用示例

常用示例
tcpdump -i eth0 -nn -ttt -c 20 port 443      # 每包间隔,判断重传与响应快慢
tcpdump -i eth0 -nn -tttt -c 5               # 完整日期时间
tcpdump -i eth0 -nn -ttttt -c 5              # 相对首包的累计耗时
tcpdump -nn -r a.pcap -tttt -c 10            # 离线读文件同样可用
tcpdump -i eth0 -nn -tt -c 5 port 53         # 统一时间基准,便于与其他工具对齐

时间戳格式对照

选项输出形态适用判断
无13:20:01.123456快速浏览,缺少日期,不适合长周期排查
-t无时间列只关心报文内容与顺序时使用
-tt1760000000.123456需要统一时间基准与其他系统对齐
-ttt0.002145看间隔与重传超时最直观
-tttt2026-10-13 13:20:01.123456与业务日志按时间比对必须用它
-ttttt125.432100描述一段时间内的时序变化
-ttt 的第一个报文没有参照对象,间隔显示为零,属于正常现象。看大间隔时直接扫这一列,比逐个比时间戳快得多。
虚拟机时钟漂移会让时间戳不成线性,跨机器比对时间之前先核对时间同步状态,否则会把时钟误差当成网络时延。

判读要点

  • 握手两个报文的间隔约等于半个往返时延,是判断建连快慢的基线
  • 同一序列号出现的时间差接近一个重传超时,说明发生了超时重传
  • 最后一条数据与本端关闭之间的间隔反映应用处理耗时,不是网络问题
  • 长时间空闲后突然出现间隔很大的报文,要考虑连接保活或会话老化
  • 跨机器之间的时间差只能作参考,没有统一时钟时不要用它计算时延

易错点

  • 默认格式不带日期,跨天分析时容易把不同时段的报文误认为是同一段时间
  • 用虚拟机或容器的时间戳做跨机时延计算会受时钟漂移影响,结论不可靠
  • 把 -tt 的 Unix 时间戳直接拿去和日志的本地时间比较会得到错误的先后关系
  • 只看时间戳不看相对间隔,会漏掉重传与超时这类靠间隔才能识别的现象
  • 抓包机与业务机未校时的情况下做时间对齐,误差可能达到秒级

数据来源与参考

  • man 8 tcpdump(-t 系选项)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌