微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有可能检测到内核生成epoll和Sun JVM读取它之间的时间差?

即时间A =电压命中NIC; 时间B =来自Java的select器NIO包能够为I / Oselect套接字通道。

移植从Unix到linux的ioctl()调用错误与FIONBIO

EAGAIN是否会返回缓冲区已满以外的任何内容

为什么套接字连接()到它自己的临时端口?

Linux x86_64汇编套接字编程

我在哪里可以看到像Linux的写/读系统API的源代码

使用SO_TIMESTAMP并找到一个实际上支持时间戳的网卡和一个支持时间戳的网卡,其分辨率高于毫秒。 那么你应该有一个机会,如果你能让Java读取传入的cmsg辅助数据。

没有良好的硬件支持,数据包将被内核标记,最有可能的是一个低分辨率的不稳定定时器。

(编辑#1)在C需要2.6.30或更新的内核的代码示例我认为:

http://www.mjmwired.net/kernel/Documentation/networking/timestamping/timestamping.c

(编辑#2)在C:中确定内核到用户空间延迟的示例代码

http://vilimpoc.org/research/ku-latency/

(编辑#3)我建议遵循依赖于高分辨率定时器和数据包延迟测试的J-OWAMP项目。 OWAMP团队一直在推动Linux内核团队,以获得更好的SO_TIMESTAMP支持

http://www.av.it.pt/jowamp/

你需要使用类似于tcpdump的东西,然后关联应用程序日志和“嗅探器”日志之间的时间戳来确定这一点,单靠jvm是不可能的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐