2

(提前申请我的英语不好。我不是母语人士)

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

我正在尝试使用 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 秒偏移。

据我所知,所有时钟都是同步的。系统时钟都同步了,网卡的 PHC 时钟也同步了。

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

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

我很感激任何建议。

问候,基督徒

4

1 回答 1

2

36 秒听起来像是 UTC 和 TAI 之间的差异(自 2015 年 6 月以来一直是 36 秒,应该在 2016 年 12 月的闰秒变成 37 秒)。

所以我会看看你是如何同步两个 PHC 的,以及双方用于执行此操作的软件是否在时基上达成一致:UTC 或 TAI,因为两者在闰秒的使用上有所不同,目前完全不同36 秒。

于 2016-08-18T00:51:59.993 回答