6

私は少し読んだことがあります.iPhoneネットワーキングは初めてですが、NATを介して2台のiPhoneを接続するためにTCPホールパンチが可能かどうか疑問に思っていました. また、uPnP とヘアピニングについていくつかの役立つ情報を読みましたが、それらにまったく慣れていないので、これが可能かどうかについて誰かがアイデアを持っている場合.

私の目標は、広い範囲で複数の iPhone を接続できるようにすることです (そのため、ある種の GPSR に切り替える方がよいかもしれません)。仮説。

4

2 に答える 2

10

nat traversalは、ランデブーサーバーを使用して2つのノードを直接接続するために使用される一般的な用語です。ノードは、コンピューター、スマートフォン、その他のデバイスのいずれでもかまいません。3g​​に関する限り、データを転送する媒体の1つです。

一部のルーターはCiscoルーターなどのヘアピンをサポートしていないため、同じNAT下のピアデバイスがパブリックIPを使用して相互に接続している場合、ヘアピンがわかります。これは、パブリックIPの代わりにプライベートIPを使用すると克服できます。私はあなたのネットワークに関する技術的な詳細を知らないので、あなたの場合のヘアピンについて何か言ってください。

使用している3gの種類などの技術的な詳細で質問を更新します。その後、3gでのヘアピン留めについて言えるのは私だけです。

2gを使用してudp/tcpホールパンチングを実装しました.3台のPC(1台のランデブーサーバーと2台のノード)を使用してこれを実行しました。

  1. 1台のPCで実行されるランデブーサーバープログラムを開発します。プログラムは、2台のiPhoneデバイスのパブリックIPを交換できる必要があります。

  2. iphoneにインストールするクライアントプログラムを開発します。iphoneをサーバーに接続します。これにより、iphoneのパブリックIPがserver.repeat2番目のiphoneに公開されます。これで、サーバーはパブリックIP/ポートを両方のiPhoneに交換します。これで、それぞれが同時に互いにパケットの送信を開始します。これにより、NATに穴が開けられます。

穴あけの詳細については、このhttp://www.brynosaurus.com/pub/net/p2pnat/を参照してください。

開発が容易なUDPホールパンチングを試してみてください。TCPホールパンチングは少し注意が必要です。UDPホールパンチングを実装すると、TCPホールパンチングを簡単に実装できます。

STUN、ICE、NATタイプ、NATマッピングについて学ぶ

https://www.rfc-editor.org/rfc/rfc5389
http://en.wikipedia.org/wiki/Network_address_translation

于 2011-06-22T06:06:24.370 に答える
0

セルラー ネットワークは、大規模な NAT を使用します。それを回避する方法は3つしかありません。

  1. セルラー ネットワークを使用したり、セルラー ネットワークに接続されたホーム/Wifi を使用したりしないでください。

  2. TURN サーバーを取得します。

  3. マルチ UDP ホール パンチング (高度な手法) を使用します。マルチ UDP ホール パンチングについては、 https ://drive.google.com/file/d/0B1IimJ20gG0SY2NvaE4wRVVMbG8/view?usp=sharing を試してください。

于 2015-08-14T17:16:22.693 に答える