UDP NAT トラバーサルに関する情報の多くは、パブリック エンドポイントを両方のクライアントに伝達するための中間サーバーに関係しています。パブリック エンド ポイントがクライアント用に事前構成されている場合、これをショートカットすることは可能ですか?
NAT の背後にある 2 つのクライアントが、UDP トラフィックを互いのパブリック IP:Port に送信して、穴を開けることができますか? パブリック エンドポイントの通信以外に中間体が必要ですか?
UDP NAT トラバーサルに関する情報の多くは、パブリック エンドポイントを両方のクライアントに伝達するための中間サーバーに関係しています。パブリック エンド ポイントがクライアント用に事前構成されている場合、これをショートカットすることは可能ですか?
NAT の背後にある 2 つのクライアントが、UDP トラフィックを互いのパブリック IP:Port に送信して、穴を開けることができますか? パブリック エンドポイントの通信以外に中間体が必要ですか?
私は権威と話すことはできません (または情報源を提供することもできません) が、先月 STUN および TURN プロトコルを使用して収集したものから:
NAT がポートを割り当てる方法は多数あります (以下を参照)。フルコーン NAT は 1 対 1 のマッピングであるため、NAT がポートをマッピングすると、外部ホストは同じマッピングを使用してプライベート ホストにパケットを送信できます。ただし、たとえば、NAT タイプが対称の場合、異なる外部 IP へのパケットは異なるポート マッピングを持ちます。
特定の NAT タイプ (例: フル コーン) では、STUN サーバーを使用して NAT ポート マッピングを決定できます。この STUN サーバーは、あなたが言及した中間サーバーの一般的な例です。一部のより制限的な NAT タイプ (対称型など) では、STUN サーバーの使用が不可能になり、直接のピア ツー ピア接続が不可能になります。これは、STUN サーバーが NAT ポート マッピングが外部 IP に依存しないと想定しているが、対称 NAT が異なる外部 IP に異なるポート マッピングを割り当てるためです。
特定のアドレス変換 (ルーターがポート番号をマップする方法) アルゴリズムは、特定のルーターに依存します (私の推測)。一部のルーターはランダムなポート割り当てを使用するため、中間の公開サーバーがこの決定 (STUN) を行うことなく、クライアントが事前に接続を確立することは不可能です。
通常、いいえ、中間サーバーを削除することはできません。NAT がどのように機能するかについて内部的な知識がない限り (ルーターの特定のモデルに依存する場合があります)、中間サーバーを使用する必要があります。