12

興味深い問題に遭遇しました。基本的に、NAT の背後にある 2 つの携帯電話を持っています。UDP を使用して 2 つのデバイス間で直接通信したいと考えています。

電話からサーバーへの接続を開始した場合、その接続を電話に戻すことができます (つまり、メッセージを受信したのと同じポートから受信したのと同じ IP とポートにデータを送り返します)。 . したがって、両方の電話をサーバーに接続することで、2 つのデバイス間で簡単に通信できます。次に、データをサーバーに送信し、電話に再ルーティングします。これにより、遭遇する可能性のある NAT トラバーサルの問題が回避されます。

ただし、サーバーを使用して2つのデバイスを互いに向け、直接通信させたいと思います。どうすればこれを行うことができますか?uPnPのようなものを使わなくても可能ですか?

どんな助けでも大歓迎です!

編集:私はこのドキュメントを見つけましたhttp://www.brynosaurus.com/pub/net/p2pnat/ヘアピン翻訳が私が求めているものであるように見えますが、広くサポートされているようには見えません. UPnP に対するモバイル ISP のサポートはどれくらい優れているのだろうか?

4

2 に答える 2

4

クライアントが自分の居場所を知ることができるように、メディエーター サーバーが必要です。次に、一方が uPNP でサーバーを開き、もう一方がそれに接続します。

于 2011-02-22T11:55:52.487 に答える
4

探しているのは UDP ホール パンチングです。たとえば、 http: //en.wikipedia.org/wiki/UDP_hole_punchingを参照してください。

基本的な考え方は単純です。各エンドポイントに使用するポートを指示すると、UDP パケットの送信が開始されます。NAT を実行しているデバイスは、最初の発信パケットを確認したときにトラバーサル ルールを設定し、相手側からの次の試みはこのトラバーサル ルールに一致します。

于 2011-02-22T11:56:58.227 に答える