12

シナリオは次のとおりです。A と B の 2 台のマシンがあります。 A: クライアント (NAT の背後) B: サーバー (NAT の背後)

B が特定のポートでリッスンできるようにして、A がその特定の TCP ポートを介して B にパケットを送信し、応答を受信できるようにします。両方のマシンが NAT の背後にない場合、プロセスは単純です。ただし、Bがルーターの背後にある場合でも機能するようにするにはどうすればよいですか。ルーターの構成を変更したり、ポート転送を有効にしたりする必要はありません...

たとえば、トレント クライアントのようなピア ツー ピア プログラムは、ユーザーが何も設定しなくてもどのように機能するのでしょうか?

4

4 に答える 4

8

ピア ツー ピア プログラムの例に答えると、一般的には次のようになります。NAT ルーターが背後のクライアントがポートを外部に公開できるようにするために使用できる、ユニバーサル プラグ アンド プレイと呼ばれるテクノロジがあります。これは、他のクライアントが直接接続できるように、bittorrent クライアントが使用できるものです。

于 2009-10-02T20:19:28.303 に答える
1

次のいずれかを行う必要があります。

  1. サーバーの前にある nat ゲートウェイからサーバー ソフトウェアが実行されているマシンへのポート フォワーディングを設定し、クライアントをそのゲートウェイの IP アドレスに接続します。

  2. サーバーとクライアントの両方がそれに接続できるように、2 つの nat ゲートウェイの間にプロキシ サーバーを作成します。サーバーとクライアントの両方が、これら 2 つの接続間でデータを仲介するプロキシへの接続をセットアップする必要があります。

于 2009-10-02T20:15:27.203 に答える
1

ホール パンチングは、UDP 通信ではある程度よく理解されていますが、ピア ツー ピア TCP ストリームのセットアップにも確実に使用できます。TCP と UDP の両方に関する詳細な記事は次のとおりです。

http://www.brynosaurus.com/pub/net/p2pnat/

于 2015-11-25T04:45:54.657 に答える
1

プロキシ サーバーに代わるものとして、マッチメイキング サーバーがあります。マッチ メーカーは、すべてのトラフィックをプロキシする代わりに、ピアが互いに通信できるようになるまでネゴシエートします。これには、ピアの外部パブリック IP を見つけて、ピアが通信を希望していることをファイアウォール/ルーターが認識できるように、それぞれと通信することが含まれます。

これはホール パンチングと呼ばれ、多くの場合、ピア自身ではなくマッチ メーカーが行う必要があります。ただし、穴が開いたら、マッチメーカーはピアにお互いについて伝えることができ、直接通信できます.

于 2009-10-02T20:25:26.513 に答える