来自Java的PCAP纳秒分辨率 上下文 现状

来自Java的PCAP纳秒分辨率 上下文 现状,java,pcap,libpcap,tcpdump,jnetpcap,Java,Pcap,Libpcap,Tcpdump,Jnetpcap,对于性能分析,我的公司对纳秒分辨率感兴趣。到目前为止,我们一直在使用硬件时间戳,纳秒的支持很快被入侵到C库中 现在,对纳秒的支持似乎已添加到库中(请参阅其他堆栈溢出答案),上的最新版本提供了以下方法: pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf); 未来 问题是,C已经证明自己很难维护,很难扩展,而且由于我们只将捕获用于分析,我们觉得我们可以从使用Java中获益。在性能

对于性能分析,我的公司对纳秒分辨率感兴趣。到目前为止,我们一直在使用硬件时间戳,纳秒的支持很快被入侵到C库中

现在,对纳秒的支持似乎已添加到库中(请参阅其他堆栈溢出答案),上的最新版本提供了以下方法:

pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf);
未来 问题是,C已经证明自己很难维护,很难扩展,而且由于我们只将捕获用于分析,我们觉得我们可以从使用Java中获益。在性能分析方面,能够使用适当的IDE、Maven、构建web服务等似乎比执行速度更重要

我最初希望能够使用libpcap,但我不知道如何使用libpcap的Java绑定来支持纳秒分辨率


问题: jNetPcap 有人知道使用jNetPcap以纳秒精度读取Pcap文件的简单方法吗

更新:我刚刚在jNetPcap的Javadoc中发现了一个enum。我将尝试使用它,稍后更新我的答案

注意:我还直接询问了关于纳秒分辨率的问题,如果我得到这方面的任何答案,我将更新我的问题

其他解决方案 有人知道另一种从Java生态系统中获利的方法,同时仍然能够以纳秒的精度读取PCap文件吗



谢谢!:)

我知道这个问题由来已久,但为了以防万一,其他人也有这个需要——如果使用jNetPcap不是必须的,那么我似乎支持它

要打开盖子:

PcapHandle h = Pcaps.openOffline(fname, PcapHandle.TimestampPrecision.NANO);
要读取数据包和时间戳:

Packet nextPacket = h.getNextPacket();
Timestamp timestamp = h.getTimestamp();

希望有帮助

我还没有读完整篇文章,但是你在搜索什么呢?一点也没有,呵呵!将给出最精确的可用计时器值。它只允许在给定Java程序中进行性能分析。阅读文章的其余部分:在我的例子中,我在一个PCAP文件中有一个硬件时间戳,我想计算延迟,因为没有阅读整个文章。如果LGPL对您来说不是一个问题,那么您只需分叉jNetPcap项目并添加纳秒精度。如果我理解正确的话,这只是一个包装。