6

私は最近、IP マルチキャスト (公共のインターネットではうまく機能しないようです) とアプリケーション マルチキャスト (IRC と PSYC で使用されているようです) には違いがあることに気づきました。 /wiki/マルチキャスト)。

アプリケーションレベルのマルチキャストの実装に関する優れたチュートリアルはありますか?

マルチキャストの要点は、一般的なネットワーク セグメントの帯域幅を削減することだと思っていたので、アプリケーション レベルのマルチキャストが何をするのかを理解するのは困難です。

4

2 に答える 2

3

IPレベルのマルチキャストの目的は、多くのユーザーが同じトラフィックを受信したい一般的なネットワークセグメントの帯域幅を減らすことです。通常、これは1つの特定のサブネットに制限されており、IPルーターはマルチキャストをサブネットを超えて伝播しません。これはスケーラビリティの理由で行われます。インターネット上のすべてのIPアドレスに伝播されるマルチキャストパケットを1つのホストが発信できるようにすることはお勧めできません。

「アプリケーションレベル」のマルチキャストについては、さまざまな考え方があります。1つのアプローチは、マルチキャストに参加しているホストコンピューターを使用してマルチキャストツリーを構築することです。ダイクストラのアルゴリズムを使用してこれを行うことができます(ウィキペディアにはこれについての合理的な説明があります)。ただし、参加しているコンピューターのリストを維持し、ツリーを最新の状態に保つことは、ホストがかなりの速度でネットワークに参加およびネットワークから離脱する場合、かなりの量の作業になる可能性があります。また、アプリケーションレベルで利用できるホップコストの適切な見積もりがない可能性があります。

確認する必要があるもう1つのアプローチは、Gnutellaネットワークのクエリルーティングプロトコルで使用されるフラッディングアルゴリズムです。(ウィキペディアにもこれについての適切な説明があります。)このアプローチは、マルチキャストツリーを構築する必要性を軽減しますが、より多くのネットワークトラフィックを生成するという欠点があります。実際、トラフィックはノード数の2乗、つまりO(n ** 2)で増加するため、ネットワークトラフィックは大幅に増加します。

于 2008-11-03T01:20:04.023 に答える
2

アプリケーション マルチキャストのもう 1 つの例は、Amazon EC2またはGoogle App EngineでJGroupsを使用することです。これらは IP マルチキャストをサポートしていませんが、開発者はマルチキャスト機能を使用したいと考えています。

于 2010-02-06T04:49:03.173 に答える