标签:epoll sockets nio linux java
即时间A =电压击中NIC;时间B = Java NIO包中的选择器能够为I / O选择套接字通道.
解决方法:
使用SO_TIMESTAMP,找到一个实际上支持时间戳的NIC和一个支持分辨率优于毫秒的NIC.然后,如果可以让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支持.
标签:epoll,sockets,nio,linux,java 来源: https://codeday.me/bug/20191105/1996166.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。