11
5
シナリオは次のとおりです。 AとBの2台のマシンがあります。A:クライアント(NATの後ろ)B:サーバー(NATの後ろ)
Aがその特定のTCPポートを介してBにパケットを送信し、任意の応答を受信できるように、Bが任意の特定のポートでlistenできるようにしたい 両方のマシンがNATの背後にない場合、それはかなりまっすぐ進むプロセスです。 しかし、Bがルーターの背後にいるときでも動くようにするにはどうすればいいですか。
たとえば、トレントクライアントのようなピアツーピアプログラムは、ユーザーが何も設定しなくてもどのように機能しますか。
4 Answer
6
ピアツーピアプログラムの例に答えるために、そして一般に:NATルーターがそれらの背後にあるクライアントに公開させるために使用できる Universal Plug and Playと呼ばれる技術があります。外部へのポート。 他のクライアントがそれらに直接接続できるように、それがbittorrentクライアントが使えることです。
1
次のどちらかが必要です。
サーバーの前面にあるNATゲートウェイからサーバーソフトウェアが実行されているマシンへのポート転送を設定し、クライアントにそのゲートウェイのIPアドレスに接続させます。
サーバーとクライアントの両方がそれに接続できるように、2つのnatゲートウェイ間にプロキシサーバーを作成します。 あなたのサーバーとクライアントの両方がそれらの2つの接続間のデータを仲介するそのプロキシへの接続を設定しなければなりません。
0
0
ホールパンチングは、UDP通信ではある程度よく理解されていますが、ピアツーピアTCPストリームの設定にも確実に使用できます。 TCPとUDPの両方に関する詳細な記事は次のとおりです。