2014-05-05 23 views
4

我期待實現一個反向QoS系統(因爲我沒有足夠的資源來使我的網絡達到實際的QoS水平)。我所看到的關於使用Java捕獲網絡流量的一切似乎都指向了Jpcap - 一個3年以上的舊圖書館或其他類似的項目。另外,通過閱讀java.net文檔沒有多大幫助,儘管ServerSocket類看起來是正確的。如何使用Java在接口/設備上偵聽網絡通信?

我在找的是實際的庫源代碼,或者更新/支持的框架。我想抓取所有通過網絡傳來的數據包,並將它們放入緩衝區,然後在指定的時間後從緩衝區釋放它們,具體取決於數據包攜帶的協議。

我知道如何創建套接字應用程序,但不知道如何在接口上升級(技術上)。幫助將不勝感激!

回答

2

你要找的僅僅是通用java應用程序的範圍之外。

如果您打算保持特定的操作系統,例如Windows或Linux(我的以下示例),那麼您可以執行一些操作。

對於Windows,如果沒有驅動程序權限,任何給定的應用程序都將無法執行此操作。 WinPCap可能是這種情況下使用最廣泛的工具,這就是jpcap所使用的工具。這是一個「司機」,基本上就是中間人的交通。

對於Linux,看看這個其他職位https://security.stackexchange.com/questions/13267/monitoring-outgoing-network-traffic

我知道這是一個橫盤整理的答案,因爲它沒有給Java代碼,但是這是因爲Java根本不是建立在系統處於這樣的接口。

+0

因此,您建議我先用傳統程序捕獲一些數據,然後將其讀入Java程序以模擬網絡?如果能夠打開更多選項,我也可以在C/C++中執行此操作。 –

+1

這將大大增加您的選擇,特別是在Linux平臺上。但是,對於Windows,請查看使用C++的Winpcap,並且可以實時執行,而不是等待流量被轉儲。 –

相關問題