簡體   English   中英

在一台計算機上模擬p2p網絡流量

[英]Simulate p2p network traffic on a single computer

在Java中模擬網絡的最佳方法是什么?

我正處於網絡對等項目的早期階段,並確定客戶端的一些必要特性,我希望能夠在我的PC上同時模擬100多個實例。

理想情況下,我想創建一個套接字的“模擬”版本,它們有自己的輸入和輸出流。 最后,我將使用這些流進行數據傳輸,而不是僅僅在java對象之間移動數據,所以我想要模擬的是那種延遲,數據丟失以及您在實際網絡中可能遇到的其他錯誤。

理想情況下,這些模擬方法將非常接近java.net.*的實際流標准,因此我不需要進行大量重寫以便從模擬轉移到實際客戶端。

誰能指出我正確的方向?

你可以使用Akka在一台機器上創建數百萬個Actors,然后在它們之間組織類似於“真實”網絡的通信。

這是一個示例項目: https//github.com/adelbertc/scalanet

嗯,你真的不需要使用任何工具,但你的大腦更好地設計它。

您需要用於下層通信框架的接口。

您需要的是在對接口進行編碼后,使用虛擬實現來模擬/替換實際實現。這種虛擬實現可以引入延遲,虛擬數據等功能。

您可以使用spring容器。您可以在容器中編寫一些虛擬服務器套接字來模擬多個實例之間的對話,或者更好地使用Web容器來消除您的頭痛。

出於模擬目的,您可能需要檢查Omnet ++ ,我非常適合使用內置數據分析/統計工具進行大規模模擬。 寫作與c ++類似,請參閱教程,這非常簡單。

示例6托管網絡(摘自Omnet ++教程)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM