对于性能分析,我公司对纳秒分辨率感兴趣。到目前为止,我们一直在使用硬件时间戳,纳秒的支持很快就被攻入了C libpcap库。
似乎现在已将对纳秒的支持添加到库中(请参阅其他Stack Overflow答案here),git repository上的最后一个版本提供以下方法:
pcap_open_offline_with_tstamp_precision(pathname, PCAP_TSTAMP_PRECISION_NANO, errbuf);
我首先希望能够使用jNetPcap,但我无法找到如何使用libpcap的Java绑定来支持纳秒分辨率。
有没有人知道使用jNetPcap读取具有纳秒精度的Pcap文件的简单方法?
更新:我刚刚在jNetPcap的Javadoc中发现了TimestampResolution
枚举的提及。我会尝试使用它并稍后更新我的答案。
注意: 我还直接在jNetPcap's support forum询问了纳秒分辨率,如果我得到任何答案,我会更新我的问题... 的
有没有人知道从Java生态系统中获利的另一种方式,同时仍然能够以纳秒精度读取PCap文件?
谢谢! :)
答案 0 :(得分:1)
我知道这个问题已经过时了,但万一有其他人有这种需要 - 如果使用jNetPcap不是必须的,pcap4j似乎支持它。
打开上限:
PcapHandle h = Pcaps.openOffline(fname, PcapHandle.TimestampPrecision.NANO);
读取数据包和时间戳:
Packet nextPacket = h.getNextPacket();
Timestamp timestamp = h.getTimestamp();
希望有所帮助!