マルチキャストは、1台の配信サーバから複数の受信端末へ、同じデータをまとめて届ける「1対多」の通信です。はじめて聞くと、マルチキャストアドレスが通常の IP アドレスと何が違うのか、わかりにくいかもしれません。この記事では、マルチキャストを「テレビのチャンネル」にたとえて、考え方の第1歩をつかみます。
- ユニキャストと比べて、マルチキャストでは配信サーバやネットワークの負担が減ること
- マルチキャストアドレスは、1台の機器ではなく「チャンネル番号」を表すこと
- 見たい端末の要求が、IGMP と PIM で配信サーバの方向へ伝わる流れ
マルチキャストとは
マルチキャストのトラフィックは、機器どうしの1対多の通信です。受信端末が複数あっても、配信サーバは1つのビデオ動画(下の図では 10Mbps)を1つだけ送ります。ルータの間では、必要なリンクにだけ動画が1つずつ流れ、枝分かれする地点(下の図では R2)でルータがコピーします。最後のルータのセグメントでは、その動画を見たい端末だけが受け取り、それ以外の端末は破棄します。
もしユニキャストで同じことをすると、配信サーバは受信者の数だけ同じ動画を送らなければいけません。受信者が3台なら 10Mbps × 3 = 30Mbps です。受信者が増えるほど、配信サーバとネットワークの負担が大きくなります。
マルチキャストの考え方
マルチキャストアドレス
マルチキャストの通信では、宛先にマルチキャストアドレスを使います。IPv4 では、クラス D のアドレス空間 224.0.0.0/4(224.0.0.0〜239.255.255.255)がマルチキャストアドレスです。例えば、配信サーバはマルチキャストアドレス 239.1.1.1 宛てにビデオ動画を送り、受信端末は 239.1.1.1 宛ての通信が来たら受け取ります。
マルチキャストアドレスは「チャンネル番号」
192.168.1.1/24 のような通常の IP アドレスは、1台の機器(のインターフェース)を表します。マルチキャストアドレスも IP アドレスの一種ですが、1台の機器ではなく、「このデータを受け取りたい機器のグループ」を表します。そのため、通常の IP アドレスとは扱いが違います。
| 項目 | 通常の IP アドレス (ユニキャスト) | マルチキャストアドレス |
|---|---|---|
| 表すもの | 1台の機器 | 受信したい機器のグループ |
| 端末への設定 | インターフェースに設定する | インターフェースのアドレスとしては設定しない |
| 送信元アドレス | なる | ならない(宛先にだけ使う) |
| サブネットマスク・ブロードキャストアドレス | ある | ない |
イメージをつかむには、テレビのチャンネル番号を思い浮かべるとわかりやすいです。例えば関東では、日本テレビは4チャンネル、フジテレビは8チャンネル、というように、番号はどの番組を見るかを選ぶためのものです。マルチキャストアドレス 239.1.1.1 での配信なら、「239.1.1.1 チャンネル」だと思ってください。
ではなぜ、チャンネル番号に IP アドレスの形を使うのでしょうか。マルチキャストのデータも IP パケットとしてルータを経由して届けるので、宛先が IP アドレスの形をしていれば、ルータは通常の IP パケットと同じように宛先を読み取って転送できるからです。
見たいチャンネルが届くまで
配信サーバが、4チャンネル(239.1.1.1)で動画を流している場合を考えます。
まだ誰も見ていない
4チャンネルを見たい端末は、まだ1台もありません。このときは、ルータは動画を先へ流しません。
見たい端末が要求する
ここで、1台の端末が4チャンネルを見たくなったとします。テレビならリモコンで4チャンネルのボタンを押すところです。端末は、一番近いルータ(R4)に「4チャンネルを配信してください」と要求します。
要求を受けた R4 には、まだ4チャンネルの動画が流れてきていません。そこで R4 は、配信サーバの方向にある R3 へ「4チャンネルを配信してください」と要求します。同じように、要求は R3 から R2、R2 から R1 へと、配信サーバの方向へ順に伝わります。
このとき、端末からルータへの要求には IGMP、ルータどうしの要求には PIM というプロトコルを使います。
動画が届く
要求が R1 まで届くと、R1 には4チャンネルの動画が流れてきているので、R1 はそれを R2 へ転送します。同じように R3、R4 へと転送され、最後に要求した端末まで届きます。
このように、ルータを経由してマルチキャストを流すことを、マルチキャストルーティングといいます。
ここでは、ルータが配信サーバの方向を知っている前提で説明しました。実際には、どの配信サーバが流しているのかがわからない場合もあります。そのときは、まず「ランデブーポイント(RP)」という待ち合わせ場所のルータへ要求を送り、配信サーバのアドレスがわかったあとで、配信サーバの方向へ改めて要求する方法(PIM-SM)を使います。
まとめ
| 項目 | 内容 |
|---|---|
| マルチキャスト | 1対多の通信。配信サーバは受信者の数に関係なく、データを1つだけ送る |
| マルチキャストアドレス | 224.0.0.0/4。1台の機器ではなく、グループ(チャンネル番号)を表す。宛先にだけ使う |
| IGMP | 端末が一番近いルータに、受信したいグループを伝える |
| PIM | ルータどうしで、配信サーバの方向へ要求を伝える |
マルチキャストの通信では、イーサネットヘッダの宛先 MAC アドレスも、マルチキャストアドレスから決まった規則で作ります。これは次の記事で説明しています。
>> 参考:【マルチキャスト】MACアドレスへのマッピング
コメント