マルチキャストの用途

マルチキャストの用途として、次のようなものがあげられます。

  • 同じデータの同報
  • 共通のプロトコルを動作させているルータやホストへのデータ送信

同じデータの同報

株価情報や監視カメラの映像、テレビ会議システムの映像や音声データなど、同じ内容のデータを複数の宛先に送信するためにマルチキャストを利用します。

共通のプロトコルを動作させているルータやホストへのデータ送信

RIPv2、OSPF、EIGRPなどのルーティングプロトコルを動作させているルータにルート情報を送信するときにマルチキャストを利用することが多いです。他にはHSRPやVRRPなどでもマルチキャストを利用します。この場合、マルチキャストのグループアドレスさえわかっていれば、個々のル
ータのインタフェースやホストのIPアドレスを知っておく必要はありません。

2番目の用途の[共通のプロトコルを動作させているルータやホストへのデータ送信]の用途は、同じサブネット内を想定しています。同じサブネット
内で共通のプロトコルを動作させているルータやホストに対してさまざまな制御情報をマルチキャストで送信するわけです。

1番目の用途の[同じデータの同報]は同じサブネット内のみではなく、サブネットを越えたネットワーク全体も対象にして同じデータの同報を行うことができます。ただし、サブネットを越えた、つまりルータやレイヤ3スイッチを経由する場合にはマルチキャストルーティングを行う必要があります。

説明上、用途を2つに分けて説明していますが、2番目の用途は1番目に含まれていると考えることもできます。つまり、マルチキャストの主な用途は同じデータの同報であるということができます。

同じデータの同報の仕組み

同じデータを複数の宛先に同報するのは、マルチキャストだけでなくユニキャストでもブロードキャストでも可能です。ただし、ユニキャスト、ブロードキャストではあまり効率よく行うことができません。マルチキャストによって最も効率よく同じデータの同報を行うことができます。その様子を3種類のデータ送信で比較して見ましょう。

ユニキャストでのデータの同報

まず、ユニキャストでのデータの同報を考えます。以下のネットワーク構成でホストAからホストC、ホストDに対して同じデータを送信する場合を考えます。ホストAからホストC、ホストDに対して同じデータをユニキャストで送信するためには、データを2つコピーしてそれぞれのアドレス情報としてホストC、ホストDのアドレスを指定して送信すればいいです。

図 ユニキャストでのデータの同報
図 ユニキャストでのデータの同報

この例では宛先のホストが2台のみなので、たいした問題はありませんが、宛先のホストが増加するとユニキャストによる複数の宛先へのデータの同報には、次のような問題が起こってきます。

  • 送信元ホストの負荷が増大する
    送信元ホストが宛先のホストの数だけデータをコピーして送信しなければいけないため、送信元ホストの処理負荷が増大します。
  • ネットワーク帯域を過剰に消費する
    宛先のホストごとに同じデータを送信するため、ネットワーク帯域の消費が大きくなります。特に送信元が接続されているセグメントの帯域消費が非常に大きくなります。
  • 宛先ホストのアドレスの管理が大変になる
    ユニキャストでデータを送信するためには、あらかじめ宛先ホストのアドレスを把握しておかなければいけません。宛先ホストの数が増えると、アドレスの管理が煩雑になってしまいます。

ブロードキャストでのデータの同報

次にブロードキャストを利用してホストAからホストC、ホストDへ同じデータを同報する場合を考えます。ホストAからはデータのアドレス情報をブロードキャストアドレスにして1つだけ送信します。すると、レイヤ2スイッチがフラッディングすることで、データがコピーされサブネット上のすべてのホストにデータが届きます。

図 ブロードキャストによるデータの同報
図 ブロードキャストによるデータの同報

ユニキャストによるデータの同報に比べると、送信元ホストではデータを1つだけ送信するので、送信元ホストの負荷が増大することがありません。データのコピーはレイヤ2スイッチで行われています。送信元ホストでデータを1つしか送信しないので、送信元ホストのセグメントでの帯域消費も過剰にはなりません。また、データの送信先ホストのアドレスをあらかじめ把握しておく必要はありません。ブロードキャストアドレスを指定してデータを送ればそのデータは受信されることになります。

ただし、ブロードキャストを利用した同報では、本来データを送信したいホスト以外にもデータが届き、そのデータを受信します。結果として、関係のないホストの処理負荷が大きくなってしまいます。また、ブロードキャストは同じサブネット内のホストにしかデータを送信できません。

マルチキャストでのデータの同報

ここまで解説したようにユニキャスト、ブロードキャストでも同じデータの同報は可能ですが、あまり効率がよくないことがわかります。ユニキャスト、ブロードキャストでの問題点を解決し、より効率よいデータの同報を行うことができるのがマルチキャストです。

ホストAからホストC、ホストDに同じデータを同報するには、先ほどもみたようにホストC、ホストDでマルチキャストグループを作成し、そのマルチキャストグループアドレスを指定してデータを送信します。

図 マルチキャストでのデータの同報
図 マルチキャストでのデータの同報

送信元ホストのホストAでは、データを1つだけ送信します。このときの送信先アドレスはマルチキャストアドレスです。複数の宛先へ同報するためのデータのコピーはレイヤ2スイッチのフラッディングで行われます。フラッディングされるので、データのあて先ではないホストBにもデータが届きますが、ホストBはデータを受信しません。マルチキャストグループに参加しているホストC、ホストDのみがこのデータを受信し処理を行います。

マルチキャストを利用すると、ユニキャストでの以下の問題点が解消できます。

  • 送信元ホストの負荷が増大する
  • ネットワーク帯域を過剰に消費する
  • 宛先ホストのアドレスの管理が大変になる

また、ブロードキャストでの以下の問題点が解消できます。

  • 宛先ホスト以外に負荷がかる

さらに、ブロードキャストの場合はサブネットを越えて転送することができないのですが、マルチキャストではマルチキャストルーティングの設定が行われていれば、サブネットを越えてネットワーク全体でのデータの同報が可能になります。

IPマルチキャストの仕組み