0

Java を使用してホスト間で p2p ファイル転送を行うアプリケーションを構築しようとしています。パブリック IP を持つホストでは問題なく動作しますが、自宅のコンピューターでテストすると失敗しました。

次に、家のすべてのコンピューターが同じ IP を持っていることがわかりました。したがって、私の ISP は NAT オーバーロードを使用していると結論付けます。私の ISP がそれを行う場合、他の多くの ISP も NAT を行う可能性があります。アプリケーションが NAT の背後でも機能することを望みます。

いくつかの調査を行ったところ、UDP ホール パンチングは TCP ホール パンチングよりもはるかに優れているため、この場合は UDP の方が適している可能性があることがわかりました。本当ですか?正直に言うと、私は TCP を使用することを好みますが、UDP がうまく機能する場合は、UDP を使用する必要があります。(UDP が信頼できないことはわかっています。UDP の上にいくつかの rdt プロトコルを構築する必要があります。) または、見逃した他の優れたアルゴリズムはありますか?

4

3 に答える 3

1

この目的のためにUDTを簡単に使用できます。これは、UDP の上に記述されたオープン ソースの高性能で十分にテストされたプロトコルです。基本的に、P2P 接続をサポートし、高性能データ転送用に特別に最適化された信頼性の高い UDP です。

実際の UDT プロジェクトは、 http: //udt.sourceforge.net/でホストされています。

UDT の Java バージョンは、 http: //sourceforge.net/projects/udt-java/ にあります。

于 2013-07-09T09:50:36.793 に答える
0

STUNメソッドのいずれかを使用してみましたか?

于 2013-07-07T04:43:02.990 に答える
0

サーバーがあなたのものでなくても、2つのピア間でサーバーを使用することをお勧めします-GoogleドライブまたはDropboxでしょうか?

于 2013-07-07T04:37:35.800 に答える