从socket手册页中可以看出,可以使用带setsockopt
SO_TIMESTAMP
来度量Linux内核将接收到的networking包传递给用户空间所花费的时间。
这里有一个很好的描述这个function的方法: 测量内核和用户空间之间的Linuxnetworking栈的延迟 。
在内核收到数据包的时候,有没有办法读取tsc
而不是timeval
?
没有。
您可以合理要求的最多的是CLOCK_MONOTONIC
时基中的struct timespec
。 我不认为它存在,但添加并不难。