[英]PCAP nanosecond resolution from Java
对于性能分析,我公司对纳秒分辨率感兴趣。 到目前为止,我们一直在使用硬件时间戳 ,纳秒的支持很快就被攻入了C libpcap库。
现在似乎已经将对纳秒的支持添加到库中(请参阅此处的其他Stack Overflow答案),并且git存储库上的最后一个版本使以下方法可用:
pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf);
问题是,C已经证明自己很难维护,难以扩展,而且由于我们只使用捕获进行分析 ,我们觉得我们可以从使用Java中获益。 在性能分析方面,能够使用适当的IDE,Maven,构建Web服务等似乎比执行速度更重要。
我首先希望能够使用jNetPcap但我无法找到如何使用libpcap的Java绑定来支持纳秒分辨率。
有没有人知道使用jNetPcap读取具有纳秒级精度的Pcap文件的简单方法?
更新:我刚刚在jNetPcap的Javadoc中提到了TimestampResolution
枚举。 我会尝试使用它并稍后更新我的答案。
注意: 我还直接在jNetPcap的支持论坛上询问了纳秒分辨率,如果我得到任何答案,我会更新我的问题......
有没有人知道从Java生态系统中获利的另一种方式,同时仍然能够以纳秒精度读取PCap文件?
谢谢! :)
我知道这个问题已经过时了,但万一其他人有这种需要 - 如果使用jNetPcap不是必须的, pcap4j似乎支持它。
打开上限:
PcapHandle h = Pcaps.openOffline(fname, PcapHandle.TimestampPrecision.NANO);
要读取数据包和时间戳:
Packet nextPacket = h.getNextPacket();
Timestamp timestamp = h.getTimestamp();
希望有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.