14

インターネットに接続された 2 台のコンピューターが、事前に互いのことを何も知らない場合、1 台のコンピューターがメッセージをブロードキャストして、2 台目のコンピューターがメッセージを受信して​​応答できるようにすることは可能でしょうか?

UDPブロードキャストが存在することは知っていますが、それらは通常、実際のインターネットに到達する前にISPによってフィルタリングされると思います. これは本当ですか?

4

9 に答える 9

12

集中調整なしでマルチノード ネットワークを実現する現在の最善の方法は、分散ハッシュ テーブルを使用することです。そのリンクは少し説明し、活用できるさまざまな実装へのリンクです。

とはいえ、少なくともいくつかのピアと調整するには、各マシンが必要です。中央サーバーと調整する必要がないというだけです。両方の (すべての) 参加マシンを認識する中央サーバーを使用するソリューションも機能しますが、匿名性とスケーラビリティにさらなる制限が課せられます。Napster に何が起こったかを思い出してください。

于 2008-11-13T07:14:05.257 に答える
7

ブロードキャストのような方法でメッセージを配信できる、両者が知っている中間のサードパーティが必要です。

于 2008-11-13T07:10:23.347 に答える
4

この問題 (どのピアも相手の最終アドレスを知らない場合) の解決策は、IM プロトコルに依存している可能性があります。

特に、XMPP プロトコルは拡張可能でオープンであり、Google Talk などの多くのプロバイダーで使用されています。ライブラリはほとんどの言語に存在し、両方のホストが NAT ボックスの背後にある場合でも (ゆっくりとサード パーティのサーバーを経由して) 動作できるという利点があります。

通信に別のチャネルを使用する必要がある場合は、XMPP を使用して IP アドレスを交換し、標準のソケット ルートに進むことができます (ただし、メッセージを暗号化する場合は、サード パーティのサーバーを経由しても問題はないはずです。つまり、すべてのパケットが送信されます。信頼されていないサードパーティのルーターを経由するため、機密データがある場合はとにかく暗号化する必要があります..)。

お役に立てれば。

于 2008-11-13T07:38:56.613 に答える
2

コードまたはペストリーのアルゴリズムを見てください。これは、検出メカニズムが関与するオーバーレイ ネットワーク (DHT ベース) です。これは、P2P (ピア 2 ピア) ルーティング アルゴリズムです。

于 2009-08-23T11:49:21.687 に答える
2

いいえ、インターネットでそのように放送することはできません。パケットをどのアドレスに送りたいかを知る必要があります。

于 2008-11-13T07:05:39.503 に答える
2

考えられる解決策は、動的 DNSサービスを使用することです。

アプリケーションは、他のホストが使用するホスト名を事前に知る必要がありますが、このサービスは少なくとも、他のコンピューターが使用している IP アドレスが正確にわからないという事実を回避します。

これは、2 つのホスト間のファイアウォールがパケットをブロックするという潜在的な問題を解決しないことに注意してください。これを回避する唯一の実用的な方法は、両方のホストが中央ホストへのアウトバウンド接続を開き、中央ホストがそれらの間でデータを中継できるようにすることです。

于 2008-11-13T09:21:32.800 に答える
1

コンピューターが Windows を実行している場合は、PNRPの使用を検討します。

于 2009-04-25T14:46:18.643 に答える
1

UDP は行き止まりです。パケットが受信される順序がそれほど重要ではなく、WANS 経由のルーティングに問題があるプロトコルです。おそらくエンドポイントが動き回るなどして、「インターネット」上の2台のコンピューターを接続したいとおっしゃいました。唯一の方法は、中央サーバーをレジスタ/ディレクトリとして使用することです。各エンド ポイントが Web サービスか何かであり、現在の IP アドレスと名前を定期的に登録すると、他のエンド ポイントはこのサービスを使用して他のエンド ポイントの IP アドレスを検索できます。(独自の DNS サーバーをホストし、この DNS に登録するエンドポイントをコーディングできますか?)

問題の 1 つは、IP アドレスを持っていても、1 つまたは複数のノードがファイアウォールまたは NAT ルーターの背後にあることです。トラフィックをプロキシするサーバーをホストする必要があります。最良の例は SKYPE です - それがどのように機能するかを調べてください。文書化されており、非常に興味深いものです。

単純な答えは、メッセンジャー、スカイプ、ビット トレントなどの既存のサービスに飛びつくことかもしれません。

サイモン

于 2008-11-13T07:47:07.297 に答える
-2

マルチキャストも可能なソリューションです。企業ネットワークでは確かに実現可能です

于 2009-04-25T14:16:03.913 に答える