0

誰かがこれに対する答えを知っていますか?

私はPracticalJXTAIIを読んでいました(http://www.scribd.com/doc/47538921/Practical-JXTA-IIにもあります)。NATの背後にあるピアとの通信の確立に関する92ページの2番目の段落のステートメントに混乱しています。「そのようなピアは、...またはb)アクセスできないピアがリモートピアへの接続を自発的に確立するまで、アクセスできないままです。」

これは、IPv4ローカルアドレスからパブリックアドレスへのNAT変換が常に同じであることを意味しているようです。ルーターが大きなアドレスのセットを小さなパブリックアドレスのセットにマッピングしている場合、結果は変わりませんか?HTTP応答を受信すると、セッションは終了し、他の誰かがそのパブリックIPを使用できるようになります。HTTPセッションが終了すると、ルーターは使用されたマッピングを記録しなくなります。

アプリケーションの側面がP2PであるWebサービスのアイデアを実装しようとしています(両方のノードがクライアントとサーバーの両方として機能する必要がある場合があります)。中央サーバーはDNSに登録されたアドレスを持つことができますが、さまざまなモバイルノードがNATなどの背後にある可能性があります。これを読んだ後、NATの背後にあるノードが起動時に接続を確立し、中央のDNSレジスタに通知しても大丈夫だと思いました。パブリックアドレスをノード化しますが、アドレスが変更される可能性が高いと考えています。

4

1 に答える 1

0

彼女は、ジェロームが何を意味したかについての私の理解です.

ピア A が WAN から認識され、ピア B がファイアウォールの背後にあるとします。次の場合、ピア A はピア B にデータを送信できます。

  • ピア A とピア B は両方とも、リレー サーバーへのアウトバウンド接続を確立します。ピア A は、(リレーへのピア B 接続の) 同期応答でリレーがピア B に転送するアウトバウンド要求でリレーにデータを送信します。

  • ピア B はピア A への接続を確立し、ピア A は同期応答でデータをピア B に送り返します。「逆呼び出し」メカニズム。

JXTAに関して言えば、ピアはローカルアドレスとオプションでWANアドレスをネットワークに発行します(アドレスはホストとポートの組み合わせです)。NAT を使用してそのピアへの直接接続を確立する場合は、ピアごとに 1 つの WAN アドレスしか存在できません。

中央サーバーを持つことは、P2P ネットワークでは悪い考えです。つまり、単一障害点が作成されます。これは、まさに P2P ネットワークが回避することに長けていることです。

それでも、あなたが示唆しているように、「アドレス/ピアの場所」のレジストリを維持する必要があります。ただし、このレジストリは配布する必要があります。これには本が必要ですが、2 つのアプローチを次に示します。

  • ノード上の分散ハッシュ テーブル (DHT): すべてのノードは、レジストリの一部のコピーを保持し、共有します。JXTA にはそのようなメカニズムがありますが、Wikipedia の Kademlia で非常に成功したアルゴリズムを確認してください。

  • グローバル インデックス ノード アプローチ (Skype に似ていると思います): DHT またはその他のレプリケーション アルゴリズムを使用してレジストリを保持する、限られた数の専用ピア/ノード。ピアは、ファイアウォールに適したプロトコル (HTTP) を使用してアドレスの GIN に接続し、GIN は高速なソケット間接続を使用して互いに通信します (GIN を実装する簡単な方法については、Hazelcast を確認してください)。

于 2012-06-04T15:33:00.900 に答える