使用tcpdump的硬件时间戳

时间:2016-06-08 13:07:40

标签: linux pcap tcpdump timestamping

(提前告诉我糟糕的英语。我不是母语人士)

我目前正在攻读我的学士论文。 我的项目的目标是准确和精确地为时间戳打包(它必须至少精确到十分之一微秒范围内)。

我正在尝试用tcpdump完成硬件时间戳,但是我遇到了一些问题。

我的设置:

2个直接连接相同的服务器。

  

Linux:Debian 3.16.7
  网络接口:Intel i350-T4

使用tcpdump命令:

sudo /usr/sbin/tcpdump -i eth4 -s 59 port 33333 -x -n -tt -v -j adapter_unsynced --time-stamp-precision=nano -w name.pcap

现在,我的结果本身是有意义的,并且会给我想要的结果,但是它们对它们有很大的抵消。准确地说是36秒。

-j adapter_unsynced选项的结果抖动约为10μs, 如果我使用-j adapter选项,我会得到~100μs的抖动(对于我的应用来说太不精确),但不是36秒的偏移。

据我所知,所有时钟都是同步的。 系统时钟都是同步的,而且NIC的PHC时钟也是如此。

作为测试运行,我更改了其中一台服务器的系统时钟,并在使用-j adapter_unsynced时显示结果更改。

所以我的问题是:我做错了什么,我想用tcpdump做什么呢?

我感谢任何建议。

问候, 基督教

1 个答案:

答案 0 :(得分:1)

36秒听起来像是UTC和TAI之间的差异(自2015年6月以来已经过了36秒,并且应该在2016年12月的闰秒中变为37秒)。

所以我看看你是如何同步两个PHC的,以及双方用来做这个的软件是否同意时基:UTC或TAI,因为两者在使用闰秒方面存在差异,目前恰好相差36秒。