問題タブ [nat-traversal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
896 参照

c# - C# での TCP ホール パンチング

一度接続すると、ホストのパブリックエンドポイントを送信する、グローバルにアクセス可能なサーバーがあります。2 つのクライアントを使用して接続し、各クライアントで TcpListener と 2 つの TcpClient を使用して相互接続を試みます。接続が常に拒否されるかタイムアウトになるため、何か間違っている可能性があります。

2 つのクライアントのコードは次のとおりです。

どちらのクライアントも NAT の背後にあり、1 つはホーム ネットワークにあり、もう 1 つはビジネス ネットワークにあります。

Tcp NATトラバーサルの方法については、このドキュメントに従いました。

0 投票する
1 に答える
1963 参照

nat - libutp (µTP) と NAT トラバーサル (UDP ホール パンチング)

ウィキペディアの記事によると、マイクロ トランスポート プロトコルは UDP ホール パンチングを使用した NAT トラバーサルをサポートしています。しかし、libutp のプロジェクト ページを見ると、ヘッダー ファイルにそのような参照が見つかりません。明らかな何かが欠けていますか?または、NAT トラバーサルは別の場所に実装されていますか?

0 投票する
1 に答える
4137 参照

port - P2P の概念を理解するナット パンチスルー

だから、私はNAT-Punchthroughを読んでいます。アイデアは得られたようですが、実装するのに苦労しており、ここで一歩足りないと感じています。インターネットベースの接続に関しては、環境をほとんど制御できないため、この機能をテストするのはちょっと難しいです。

「ファシリテーター」として実行するSQLサーバーがあり、サーバーとクライアントの両方の外部アドレスと、外部から見たポートを保持します。

これまでの手順は次のとおりです: - サーバー/クライアント IP/ポートを格納する Web 要求 (PHP スクリプト) を介して SQL サーバーに接続します - 両方が既知の場合、クライアントとサーバーの両方が接続を試みます (設定されたポート上のサーバー ホスト、設定されたポートを介して接続します) - 重要なことは何も起こりません

ここで不明な点が 2 つありますが、1 点確認したいと思います。NAT パンチスルーでは、その後の手順で接続する予定の正確な (内部/LAN) ポートを使用して最初の手順を実行する必要があるというのは本当ですか?

もしそうなら、私のサーバーが水中でどのように機能するか正確にはわからないので、最初に与えられた静的ポートよりも多くのポートが必要になるかもしれませんが、少なくともヒントは得られます.

誰かがこれについて私よりも多くのドキュメントを持っている場合は、私に知らせてください。

出典:
P2P アプリケーションのプログラミング
http://www.mindcontrol.org/~hplus/nat-punch.html