繁体   English   中英

来自Java的PCAP纳秒分辨率

[英]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

有没有人知道使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM