簡體   English   中英

NAT后面的兩個主機用於P2P文件傳輸的協議是什么?

[英]What protocol to use for P2P file transfer for two hosts behind NAT?

我正在嘗試構建一個使用Java在主機之間進行p2p文件傳輸的應用程序。 對於具有公共IP的主機,它工作正常,但是當我在家用計算機上對其進行測試時,它失敗了。

然后我發現家里的所有計算機都具有相同的IP。 因此,我得出的結論是,我的ISP使用NAT重載。 如果我的ISP這樣做,那么很多其他ISP也會進行NAT。 我希望我的應用程序甚至在NAT之后也可以使用。

我進行了一些研究,發現UDP可能更適合這種情況,因為UDP打孔比TCP打孔好得多。 是真的嗎 老實說,我更喜歡使用TCP,但是如果UDP工作得更好,那么我必須使用UDP。 (我知道UDP是不可靠的。我需要在UDP之上構建一些rdt協議。)或者我錯過了其他好的算法嗎?

為此,您可以簡單地使用UDT。 它是在UDP之上編寫的開放源代碼,高性能和經過良好測試的協議。 基本上,它的可靠UDP支持P2P連接,並針對高性能數據傳輸進行了特別優化。

實際的UDT項目托管在以下位置, http://udt.sourceforge.net/

可在以下位置找到UDT的Java版本: http://sourceforge.net/projects/udt-java/

我建議在兩個同級之間使用一台服務器,即使該服務器不是您的服務器-也許是Google Drive還是Dropbox?

您是否嘗試過使用任何STUN方法?

暫無
暫無

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

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