SO_TIMESTAMP/SO_TIMESTAMPNS 可以获取硬件时间, 前提是内核和网卡支持该功能能

http://www.cs.fsu.edu/~baker/devices/lxr/source/2.6.31.13/linux/Documentation/networking/timestamping/timestamping.c

https://www.kernel.org/doc/Documentation/networking/timestamping.txt

 

一般来说,对UDP更有意义,因为UDP是packet, 每个packet有一个时间戳。但是对于TCP,就不太准确了,因为TCP的数据,有拆包、合并、重传,可能一段数据中所有Byte的收到的时间不相同。

 

或者直接重载recvmsg函数获取

https://blog.csdn.net/photon222/article/details/104841343

 

Logo

更多推荐