簡體   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