特定の複数あての送信に使われるのがマルチキャストです。マルチキャストは通常のユニキャストとはまた違う方式で伝送されます。そのため,専用のアドレッシング,ルーティングが必要になります。今回はマルチキャストの伝送の基本と,アドレッシングについて学びましょう。

マルチキャストの基礎

 複数のあて先に同時にデータを送信する必要がある場合などに使用されるのがマルチキャストです。例えばビデオ会議や動画のストリーミング配信,OSイメージ・データの配信などに使われています。マルチキャストは,個々のあて先にデータが送られるユニキャストと比べて,回線の帯域消費を少なくできるという利点があります(図1)。

 図1 ユニキャストとマルチキャスト

 複数マシンあての通信に使う通信方式としてはブロードキャストもあります。ただブロードキャストはネットワーク全体にパケットが転送されてしまうため,広い範囲のネットワークでは使いにくい上,無関係のマシンに対してもパケットが届いてしまいます。よって,特定の複数のマシンあてた通信では,マルチキャストを使うのが最善です。

 ただし,マルチキャスト・パケットはUDPを使って転送されます。そのため,そのままでは通信の信頼性が低くなってしまいます。具体的には,UDPにはTCPのようなフロー制御機能(スライディングウィンドウやスロースタートアルゴリズムなど)のしくみがないため,パケットの輻輳や廃棄による通信品質の低下を引き起こします。こうした欠点は,マルチキャストアプリケーション側の機能,QoS機能,ネットワーク構成の工夫などで対応することになります。

 マルチキャストの伝送には次の技術が必要となります。

  • マルチキャストアドレッシング ・・・ マルチキャスティング用のIPアドレス,MACアドレス
  • IGMP ・・・ ルータが接続されているサブネットにマルチキャストグループのホストが存在するか確認する
  • マルチキャストルーティングプロトコル ・・・ マルチキャストをルーティングするための専用ルーティングプロトコル

 マルチキャストでは,マルチキャストを受け取るマシンは「マルチキャストグループ」に所属します。このマルチキャストグループあてのパケットを各マシンが受け取ります。つまり,マルチキャストは,マルチキャストアドレッシングにより識別されるマルチキャストグループを作ることから始まります。ルータはネットワーク上のマルチキャストグループを認識し,マルチキャストルーティングプロトコルを使ってマルチキャスト用の経路情報を把握します。この経路情報を使ってマルチキャストパケットを転送します。

IPマルチキャストアドレス

 マルチキャストで使われるIPアドレスは,クラスDのアドレスです。クラスDは224.0.0.0から239.255.255.255のアドレスです。そのうち,224.0.0.0から224.0.0.255は予約されているWell-Knownアドレスで,TTLが1に設定されるローカルネットワーク用です。主なWell-Knownマルチキャストアドレスは次のものがあります。

アドレスあて先
224.0.0.1全ホスト
224.0.0.2全マルチキャストルータ
224.0.0.4全DVMRPルータ
224.0.0.5全OSPFルータ
224.0.0.6全OSPF DR
224.0.0.9全RIPルータ
224.0.0.10全EIGRP ルータ

 さらに,これら以外のクラスDは次の用途に使われます。

  • 224.0.1.0~238.255.255.255 ・・・ グローバルIPマルチキャストアドレス。インターネットで利用される
  • 239.0.0.0~239.255.255.255 ・・・ 管理用もしくは限定的に利用される

 これらのマルチキャストIPアドレスは,あて先となるマルチキャストグループを指すアドレスです。例えば,あるマルチキャストグループを作り,そのマルチキャストグループに239.0.0.1を割り当てたとします。その場合,このマルチキャストグループに所属するマシンは,239.0.0.1あてのパケットを受け取ることになります。

マルチキャストMACアドレス

 LANで通信するにはMACアドレスが必要です。ユニキャストの場合は,ARPで取得したMACアドレス,ブロードキャストの場合は「ffff.ffff.ffff」というMACアドレスをあて先MACアドレスとして使います。もちろん,マルチキャストで通信する場合もMACアドレスは必要です。マルチキャストグループに割り当てられたIPアドレスに対応するMACアドレスを使います。

 MACアドレスの構造として,アドレスの先頭オクテットの第6ビットと第7ビット(イーサネットではアドレスを読み込む際オクテットの後ろから読み込むため,その観点で言えば第0ビットと第1ビット)でキャストが決まります(図2)。

 図2 MACアドレスの構造
MACアドレスの構造

 IANA(Internet Assigned Numbers Authority)によって規定されているマルチキャスト用のMACアドレスは先頭の25ビットが固定値です。先頭から24ビットが01005e,25ビット目が0で始まるアドレスになります。つまり,0100.5e00.0000~0100.5e7f.ffffがマルチキャスト用のMACアドレスということになります。

 マルチキャストIPアドレスとMACアドレスをどのように対応させるかというと,マルチキャストIPアドレスの後ろから23ビットを,MACアドレスの固定値以外の後半23ビットに入れることにより対応させます。例えば,IPアドレスが239.10.0.1の場合,対応するMACアドレスは次のようになります(図3)。

 図3 マルチキャストMACアドレスの決定
マルチキャストMACアドレスの決定

 図3を見てもわかるように,IPアドレスのうち5ビットは未使用の部分があります。この部分は使わないため,厳密に言うとIPアドレスとMACアドレスの対応は1対1にはなりません(図4)。

 図4 マルチキャストMACアドレスとIPアドレスの対応
マルチキャストMACアドレスとIPアドレスの対応

 例えば上記のように,224.10.0.1,228.138.0.1,236.138.0.1,238.10.0.1など5ビット=25=32個のIPマルチキャストアドレスが0100.5e0a.0001になります。