(提前告诉我糟糕的英语。我不是母语人士)
我目前正在攻读我的学士论文。 我的项目的目标是准确和精确地为时间戳打包(它必须至少精确到十分之一微秒范围内)。
我正在尝试用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做什么呢?
我感谢任何建议。
问候, 基督教
答案 0 :(得分:1)
36秒听起来像是UTC和TAI之间的差异(自2015年6月以来已经过了36秒,并且应该在2016年12月的闰秒中变为37秒)。
所以我看看你是如何同步两个PHC的,以及双方用来做这个的软件是否同意时基:UTC或TAI,因为两者在使用闰秒方面存在差异,目前恰好相差36秒。