【図解】初心者にも分かるマルチキャストの仕組み~UDPの理由、メリット・デメリット、マルチキャストアドレス一覧~

マルチキャストの仕組み

マルチキャストとは、1つの送信元から、複数の宛先へ、同じデータを送る通信のことです。送信元(Sourceと言います)から送出したパケットは、ルータやスイッチで複製され、やがて受信端末(Receiverと言います)たちに届きます。

マルチキャストの主な利用シーンは、リアルタイム映像配信PCへのOSイメージ配信などです。以下にリアルタイム映像配信の例のイメージを示します。

スポンサーリンク

マルチキャストパケットにおいて、送信元IPアドレスは、通常のIPアドレスを使いますが、宛先IPアドレスとしては、クラスDの『224.0.0.0〜239.255.255.255』のレンジが使われます。

ただし、受信端末(Receiver)側ではOS等に設定するIPアドレスを変える必要はありません。その代わり、OSではなく映像受信ソフト等のアプリケーションがマルチキャストアドレスを管理します。つまり、OSで管理するユニキャスト用のIPとは別に、マルチキャストを受信したいアプリケーションが個別にマルチキャストアドレスを持ちます。1つのアプリで複数のマルチキャストアドレスに参加することも可能です。

受信端末(Receiver)は、そのマルチキャストアドレスの受信をIGMPというプロトコルで、同セグメントのルータに要求し、そのルータはPIM等のマルチキャストルーティングプロトコルで他のルータと情報を交換し、どこにマルチキャスト通信を届ければよいかを知ることができます。

一方、送信元(Source)からマルチキャストパケットを受信すると、やはりPIM等のマルチキャストルーティングプロトコルが動作し、受信端末へ向けてのルートを確保するようになります

マルチキャストは1対複数通信を想定しているため、トランスポート層として1対1を想定しているTCPを使うことはできません。トランスポート層ではUDPを使います。

一般的に使われるマルチキャストの種類には、EthernetのL2マルチキャストIPのL3マルチキャストがありますが、以降、単に『マルチキャスト』と呼ぶ場合はL3マルチキャストを指すこととします

マルチキャストのメリット・デメリット

マルチキャストを利用することで、以下のメリットがあります。

  • 1つのパケットで複数の端末へ通信できるため、送信元の負荷が軽く、さらに回線効率が良い。例えば宛先として100台が対象なら、ユニキャストの場合は100パケット必要なところ、マルチキャストであれば1パケットでよい。
  • 宛先のアドレス管理が楽。例えば先の例で、受信端末を他のセグメントに持って行った場合、ユニキャストであればIPカメラ側も宛先IPアドレスを変更しなければならないが、マルチキャストであれば特に設定変更は必要ない

逆に以下のデメリットがあります。

  • ユニキャストと比べてマルチキャストルーティングは実装されることが少なく、学習の機会も少ないため、理論や設計・設定が複雑だと誤解されやすい。ゆえにさらに実装されることが少なくなる。
  • TCPには使えない(基本的に片方向通信でしか使えない)。※ただし、上位プロトコルで受信有無を確認し、受信していない場合はユニキャストで要求する、といった実装の工夫は可能(例えば OSPF の LSACK がそうなっている)

L2マルチキャスト

L2マルチキャストは主に管理系プロトコルで使われます(例えばSTPやLLDP等)。これらのプロトコルはそれぞれ独自のL2マルチキャストMACアドレスを持っています。代表的なものを以下の表に示します。

MAC address規格備考
01:00:0c:cc:cc:ccCDP/VTP
01:00:0c:cc:cc:cdPVSTPPer VLAN
01:80:c2:00:00:00IEEE802.1DSTP/RSTP/MSTP
01:80:c2:00:00:01IEEE802.3Xフロー制御(PAUSE)
01:80:c2:00:00:02IEEE802.3ahSlow Protocol(LACP/EFM OAM)
01:80:c2:00:00:03IEEE802.1xEAP
01:80:c2:00:00:0ELLDP
01:80:c2:00:00:10-(All Switch) すべてのスイッチ
01:80:c2:00:00:14IS-IS Level1
01:80:c2:00:00:15IS-IS Level2
01:80:c2:00:00:30

01:80:c2:00:00:3F
IEEE802.1agCFM(L2ping/L2traceroute)
01:00:5E:XX:XX:XXIPv4下23bit(詳細は次章)
33:33:XX:XX:XX:XXIPv6下32bit

スポンサーリンク

L2マルチキャストにはルーティング機能はないため、L2ブロードキャストと比べて到達可能範囲は変わりません。このケースにおいて、L2ブロードキャストと異なる点は何でしょうか。

それは受信側の負荷です。

L2ブロードキャストMACアドレスは、全端末がフレームの中身を理解しなければならないため、全端末でNICからCPUへ情報が渡されます。その内容が自分と関係なければその内容を破棄します。

一方、L2マルチキャストMACアドレスは、受信端末はそのMACアドレスだけで自分が受信すべきかどうかを判断し、必要であればCPUに渡します。

L2マルチキャストとL3マルチキャストの関係

L3マルチキャストをEthernetで運ぶ場合、L2マルチキャストMACアドレスは、最初の24bitは『01005e』となり、その次の1bitは『0』になる、というのが規格で決まっています。残りの23bitは、L3マルチキャストIPアドレスの下23bitです。

スポンサーリンク

こうすることで、受信端末は、MACアドレスだけを見て、かなりの確率で不要なマルチキャストアドレスを見抜くことができ、CPU負荷を抑えることができます。たまたま重複すると、不要なマルチキャストをCPU処理させてしまうことはありますが、この部分は仕方のないものとして諦めます。

マルチキャストアドレスのレンジと用途

マルチキャストアドレスはレンジによって用途が違います。具体的には以下のようになっています。

レンジ用途備考
224.0.0.0~224.0.0.255リンクローカルマルチキャストルーティングしない
224.0.1.0~231.255.255.255グローバルインターネット上でマルチキャストルーティングする
232.0.0.0~232.255.255.255SSMソース指定のマルチキャスト
233.0.0.0~233.255.255.255GLOPAS番号を保持した組織固有のアドレス
234.0.0.0~238.255.255.255グローバルインターネット上でマルチキャストルーティングする
239.0.0.0~239.255.255.255プライベートプライベートNW上でマルチキャストルーティングする

スポンサーリンク

224.0.0.0~224.0.0.255 (リンクローカル)

RIP/OSPF/EIGRP等で利用される、宛先が224.0.0.0〜224.0.0.255のマルチキャストアドレスは、基本的にはTTL=1で動作する、送信元IPと宛先IPが同セグメント内でのマルチキャスト通信に限られます。(例外的に、VRRPやHSRP、GLBPは同セグメント内のみの通信であることが前提ですが、なぜかTTLは25であること、と定められています)

代表的な予約されたリンクローカルアドレスを以下の表に示します。

224.0.0.1全ホスト(ルータ含む)
224.0.0.2全ルータ(PIMv1やIGMPv1/v2、HSRPv1もこのアドレスを利用)
224.0.0.4全DVMRPルータ
224.0.0.5全OSPFルータ
224.0.0.6OSPF DR/BDRルータ
224.0.0.9RIPv2
224.0.0.10EIGRP
224.0.0.13PIMv2
224.0.0.18VRRP
224.0.0.22IGMPv3
224.0.0.102HSRPv2 / GLBP
224.0.0.251multicast DNS
224.0.0.252Link-Local Multicast Name Resolution

224.0.1.0~231.255.255.255 / 234.0.0.0~238.255.255.255 (グローバル)

一般用途のマルチキャストアドレスです。これも一部予約アドレスがあります。

224.0.1.1NTP multicast
224.0.1.39Auto-RP-Announce
224.0.1.40Auto-RP-Discovery

232.0.0.0~232.255.255.255 (SSM)

Source Specific Multicastの略で、ソース(送信元)があらかじめ決められていなければならないマルチキャストアドレスです。クライアント側ではIGMPv3による要求が必要です。(ただし、ソース指定せず、他のグローバルマルチキャストアドレスと同じ使い方もできます)

233.0.0.0~233.255.255.255 (GLOP)

AS番号(16bit: 0~65535)を保持する組織が自由に使えるマルチキャストアドレスです。第2,第3オクテットの16bitが、AS番号になります。例えばAS番号10000を持つ組織は、10000=[39*256 + 16] なので233.39.16.0~233.39.16.255のアドレスが自由に使えます。

239.0.0.0~239.255.255.255 (プライベート)

社内NWなどのプライベートNW内で利用されるマルチキャストアドレスです。代表的な予約アドレスとしてUPnP(Unisersal Plug and Play: 239.255.255.250)があります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする