用SO_TIMESTAMP/SO_TIMESTAMPNS 可以获取硬件时间, 前提是内核和网卡支持该功能能
https://www.kernel.org/doc/Documentation/networking/timestamping.txt
一般来说,对UDP更有意义,因为UDP是packet, 每个packet有一个时间戳。但是对于TCP,就不太准确了,因为TCP的数据,有拆包、合并、重传,可能一段数据中所有Byte的收到的时间不相同。
或者直接重载recvmsg函数获取
https://blog.youkuaiyun.com/photon222/article/details/104841343
使用SO_TIMESTAMP获取硬件时间

本文介绍了如何利用SO_TIMESTAMP和SO_TIMESTAMPNS获取硬件时间戳,适用于内核和网卡支持的功能。文中指出此方法对UDP协议更为适用,因其每个数据包都有独立的时间戳,而对TCP则因数据拆合可能导致时间戳不精确。此外,还提供了通过重载recvmsg函数获取时间戳的方法。
766

被折叠的 条评论
为什么被折叠?



